| name | ios-app-review-gate |
| description | Use when preparing, auditing, or debugging 阿衡 iOS App Store review, TestFlight-to-submission readiness, App Review rejection fixes, reviewer account access, screenshot privacy, HealthKit/privacy/medical/payment redlines, or release-pack preflight. |
iOS App Review Gate
Use this skill as the final App Store review gate for mobile/. It converts App Review risk into explicit checks before a build is submitted.
Workflow
- Read
docs/system-map/INDEX.md, docs/release/app-store/submission-pack.md, and docs/release/app-store/adapted-review-checklist.md.
- Confirm scope:
- Pure JS/TS/mobile UI changes can ship by OTA, but App Store submission still needs this gate.
- Native/plugin/Info.plist/HealthKit/Watch changes also need
mobile-testflight-release.
- Run the no-secret gate:
python3 scripts/check_app_store_release_pack.py
python3 scripts/check_ios_app_store_submission.py
- For final submission only, require human materials:
python3 scripts/check_app_store_release_pack.py \
--final-submit \
--screenshot-dir design/screenshots/app-store/<build-id>-ready
python3 scripts/check_ios_app_store_submission.py --require-asc-credentials
- Visually inspect screenshots. Sanitized screenshots from private QA are not ready until
prepare_app_store_screenshots.py --confirm-sanitized-reviewed has been run after human review.
- Verify reviewer access: demo credentials replaced, login succeeds, seeded data exists, and the reviewer can reach every flow named in Review Notes without MFA, risk-control blocks, or blank pages.
- For Health & Fitness or Medical category apps distributed in the US, UK, or EU/EEA, verify the App Store Connect regulated medical device declaration. This release must declare
No; a Yes determination is a stop condition requiring regulatory review and evidence.
Redlines
Read references/app-review-redlines.md when changing visible copy, dynamic cards, action routing, auth, payments, HealthKit, permissions, screenshots, or Review Notes.
High-confidence automated redlines live in scripts/check_app_store_release_pack.py. Do not weaken a rule just to pass a release; either remove the review risk from the product surface or narrow the scanner only when it is catching non-user-visible implementation code.
Dynamic UI Inventory
For Agent Native / DynamicView work, compare the actual executable surface with Review Notes:
mobile/app/** routes and deep links.
- Dynamic cards, action registries, and feature flags.
- HealthKit, camera, microphone, notification, and location permission paths.
- Any generated content that can mention diagnosis, prescription, dosage, payment, or incentives.
If a reviewer can trigger a user-visible flow, the flow must be disclosed or safely reachable during review.
Stop Conditions
Stop before submission when:
- Demo account cannot be verified end-to-end.
- A listed route/action opens a blank page or wrong surface.
- The app contains placeholder/Beta/temporary visible copy.
- iOS-visible UI mentions Android or third-party app stores.
- Any virtual-good/payment/redeem-code language appears without an IAP decision.
- Health guidance implies diagnosis, treatment, prescription, or dosage adjustment.
- Permission denial dead-ends the whole app instead of the specific feature.
- App Privacy responses are unpublished or the regulated medical device declaration is missing.
This skill is based on an internal Kuaishou checklist adapted for 阿衡. Treat that checklist as operational experience, not Apple policy; verify current policy against Apple documentation when changing hard gates.