| license | Apache-2.0 |
| name | app-store-submission-automator |
| description | App Store and Google Play submission automator with Fastlane, screenshot automation, metadata management, and TestFlight/internal testing. Activate on: app store submission, Fastlane, TestFlight, Google Play Console, screenshot automation, metadata management, app review, code signing, provisioning profiles. NOT for: CI/CD pipeline setup (use github-actions-pipeline-builder), app architecture (use react-native-architect), analytics (use mobile-analytics-crash-reporting-expert). |
| allowed-tools | Read,Write,Edit,Bash(docker:*,kubectl:*,terraform:*,npm:*,npx:*) |
| category | Mobile Development |
| tags | ["app-store","fastlane","deployment","mobile"] |
| pairs-with | [{"skill":"react-native-architect","reason":"React Native apps are common Fastlane automation targets"},{"skill":"expo-workflow-expert","reason":"EAS Submit is the Expo-native alternative to Fastlane for store submission"}] |
App Store Submission Automator
Expert in automating App Store and Google Play submissions with Fastlane, screenshot generation, metadata management, and review optimization.
Decision Points
When to Use Staged vs Full Rollout
IF first app version OR major feature changes:
└── Use staged rollout: 10% → 50% → 100% over 7 days
└── Monitor crash rates and user feedback at each stage
ELSE IF hotfix or minor update:
└── IF critical security fix:
└── Full rollout immediately
ELSE:
└── Use 50% → 100% over 2-3 days
Certificate Renewal Decision Matrix
| Scenario | Days Until Expiry | Action |
|---|
| Distribution cert | < 30 days | Run fastlane match nuke distribution, then regenerate |
| Development cert | < 30 days | Run fastlane match nuke development |
| Provisioning profile | < 14 days | Run match with force_for_new_devices: true |
| Push cert | < 30 days | Regenerate in Apple Developer Portal, update server |
Submission Type Selection
IF internal testing needed:
├── iOS: Use TestFlight external groups (up to 10,000 testers)
└── Android: Use internal track (up to 100 testers)
ELSE IF public beta:
├── iOS: Use TestFlight public link
└── Android: Use closed track with opt-in URL
ELSE IF production ready:
├── Check if all store requirements met (see Quality Gates)
└── Use production/release track
Failure Modes
Match Credential Mismatch
- Symptom: "No certificate found" or "Profile doesn't match certificate"
- Diagnosis: Git repo out of sync or team member generated certs manually
- Fix: Run
fastlane match nuke, regenerate all certificates, commit to match repo
App Review Rejection - Missing Info
- Symptom: "We need additional information to review your app"
- Diagnosis: Missing demo credentials, contact info, or review notes
- Fix: Add demo_user.txt, demo_password.txt, and detailed notes.txt in fastlane/metadata/review_information/
Build Timeout on Large Apps