SelfieCam/docs/APP_REVIEW_CHECKLIST.md

81 lines
4.3 KiB
Markdown

# App Review Rejection Checklist
Last updated: 2026-02-14
## Current Status
- [x] Investigated rejection reasons and mapped each to implementation/App Store Connect actions.
- [x] Fixed paywall "Continue" no-op behavior when products are unavailable.
- File: `SelfieCam/Features/Paywall/Views/ProPaywallView.swift`
- Added product loading state, retry UI, and explicit error handling path.
- [x] Verified app still builds after paywall fix.
- Debug build: success
- Release build: success
- [x] Resolved UITest build blocker (`Multiple commands produce ... Selfie_Cam.swiftmodule`).
- File: `SelfieCam/SelfieCam.xcodeproj/project.pbxproj`
- Fix: set test target `PRODUCT_NAME = "$(TARGET_NAME)"` and app target `PRODUCT_MODULE_NAME = SelfieCam`.
- Validation: `xcodebuild ... build-for-testing` on iPad Air 11-inch (M3), iOS 26.2 succeeded.
## Guideline 2.1 - App Completeness (IAP not submitted)
- [x] In App Store Connect, ensure all IAPs are fully configured (metadata, pricing, localization).
- Pro Monthly, Pro Yearly (subscriptions), Pro Lifetime (non-consumable) all Ready to Submit.
- Product ID for lifetime: `com.mbrucedogs.SelfieCam.pro.lifetime.purchase`
- [x] Upload required App Review screenshot for each IAP/subscription.
- [ ] Submit all IAP products for review with the app version.
- [ ] Upload a new app binary and submit app + IAPs together.
## Guideline 2.1 - App Completeness (IAP bug: Continue unresponsive)
- [x] Code-side paywall resiliency fix implemented (no silent button failure).
- [x] Run sandbox purchase tests on iPad form factor before resubmission.
- Review device reported by Apple: iPad Air 11-inch (M3), iPadOS 26.2.1
- [x] Confirm Paid Apps Agreement is active.
- Location: App Store Connect -> Agreements, Tax, and Banking
## Guideline 1.5 - Safety (Support URL)
- [x] Update Support URL destination so it clearly provides support contact/help content.
- Current URL: `https://topdoglabs.com/support`
- [x] Ensure support page includes:
- Contact method (email or form)
- App name(s) supported
- Expected response time
- Troubleshooting/help info
- Link to privacy policy
- [x] Re-verify URL loads reliably in browser without requiring app login.
- Verified on 2026-02-12 via direct HTTP fetch: static HTML now includes support email, response time, privacy link, app-specific subject options, and contact details.
## Guideline 5.1.1 - Privacy (Permission Request Button Wording)
Issue reported: pre-permission custom screen uses "Enable Camera" style button text.
- [x] Replace pre-permission button titles with neutral progression text like "Continue" or "Next".
- File: `SelfieCam/Features/Onboarding/Views/OnboardingPermissionView.swift`
- Implemented: pre-permission button now uses localized `"Continue"` across camera/microphone/photo library prompts.
- [x] Update localized strings accordingly in string catalog.
- File: `SelfieCam/Resources/Localizable.xcstrings`
- Existing localized `"Continue"` key is already present for supported locales (`en`, `es-MX`, `fr-CA`), so no new key entries were required.
- [x] Update UI tests that currently look for old button labels.
- File: `SelfieCamUITests/SelfieCamUITests.swift`
- [x] Verify onboarding permission flow still works for camera/microphone/photo library.
- Validation run on 2026-02-14:
- `xcodebuild -project SelfieCam/SelfieCam.xcodeproj -scheme SelfieCam -destination 'platform=iOS Simulator,name=iPad Air 11-inch (M3),OS=26.2' test -only-testing:SelfieCamUITests/SelfieCamUITests/testAppStorePortraitScreenshots`
- Result: `** TEST SUCCEEDED **`
## Resubmission Checklist
- [x] Increment build number and archive a new build.
- Build number: `2` (`CURRENT_PROJECT_VERSION = 2`)
- Archive command:
- `xcodebuild -project SelfieCam/SelfieCam.xcodeproj -scheme SelfieCam -configuration Release -destination 'generic/platform=iOS' -archivePath /tmp/SelfieCam_2026-02-14.xcarchive CODE_SIGN_ALLOW_ENTITLEMENTS_MODIFICATION=YES archive`
- Result: `** ARCHIVE SUCCEEDED **`
- [ ] Upload new build to App Store Connect.
- [ ] Attach submitted IAPs to the app version.
- [ ] Add App Review Notes summarizing fixes:
- Paywall button behavior fixed
- IAPs submitted with required metadata/screenshots
- Support URL updated
- Permission request button wording updated
- [ ] Submit for review.