After your handoff
Launch guide.
From your handoff zip to TestFlight or Google Play internal testing and the App Store or Google Play — in plain language. Rewrite gave you native iOS and Android source and artifacts for the scope you approved. Shipping on the App Store or Google Play happens on your Mac (iOS) or in Android Studio (Android) with your developer accounts — certificates, listings, and review are yours to run. This guide is engineering orientation, not legal or compliance advice; get professional help for regulated products (health, payments, kids, etc.).
iOS — Xcode, TestFlight, App Store
1
Get a build you trust in Xcode
- ●Open your project in Xcode (iOS) on a Mac and resolve any remaining wiring (API base URL, OAuth, polish).
- ●Run on the iOS Simulator (Mac), then on a physical device — device builds catch signing and entitlement issues early.
- ●Confirm Bundle ID is what you want long-term — changing it later is painful.
- ●Set Version (user-facing) and Build (must increase for every upload to Apple).
2
Signing (Apple Developer Program)
- ●Enroll in the Apple Developer Program if you haven't ($99/year at time of writing).
- ●In Xcode: Project → Signing & Capabilities → pick your Team, set Bundle Identifier to match App Store Connect.
- ●Prefer Automatically manage signing unless your org uses manual profiles.
- ●Enable only capabilities you need (Push, Associated Domains, etc.) — each can require extra portal setup.
3
Create an archive and upload
- ●Select Any iOS Device (arm64) or a connected iPhone — not Simulator-only — as the run destination.
- ●Product → Archive. When the Organizer opens, Distribute App → App Store Connect (for TestFlight / the App Store).
- ●If upload fails, common fixes: bump build number, refresh signing in Xcode Accounts, fix version conflicts in App Store Connect.
4
App Store Connect — app record and compliance
- ●In App Store Connect, create the app if needed; Bundle ID must match Xcode exactly.
- ●Complete App Privacy (data collection) truthfully — it feeds the App Store nutrition labels.
- ●Plan screenshots and description for the device sizes you support; Apple requires assets per size class you claim.
5
TestFlight (beta)
- ●After upload processing completes, the build appears under TestFlight.
- ●Answer export compliance / encryption questions when prompted (many apps use standard exemptions; read Apple's questionnaire carefully).
- ●Internal testers (your team) can install quickly. External testers may need Beta App Review for the first build of a version.
- ●Install Apple's TestFlight app on devices, accept invites, install builds.
6
Submit to the App Store
- ●When you're ready for production, create a version in App Store Connect, attach the build, and complete required metadata.
- ●Submit for review. Apple's App Review Guidelines apply — allow time for feedback and resubmits.
Android — Android Studio, internal testing, Google Play
7
Get a build you trust in Android Studio
- ●Open your project in Android Studio (the folder with
settings.gradle.kts) and let Gradle sync finish. - ●Run on an Android emulator, then on a physical phone (USB debugging on) — real devices catch problems emulators hide.
- ●Confirm the application id in
app/build.gradle.ktsis what you want long-term — changing it later means a new Play listing. - ●Set versionName (user-facing) and versionCode (must increase for every upload to Google Play).
8
Signing (your release key)
- ●Create a keystore once: Build → Generate Signed App Bundle / APK → Create new…. Back up the file and passwords somewhere safe.
- ●Copy
keystore.properties.exampletokeystore.propertiesand fill in the path and passwords — Gradle picks it up automatically. - ●When you create the app in Google Play Console, accept Play App Signing — Google holds the final key; yours becomes a resettable upload key.
9
Build the bundle and upload
- ●Build a release App Bundle (Build → Generate Signed App Bundle or
./gradlew bundleRelease). Google Play accepts.aabfiles, not raw APKs. - ●In Google Play Console, create the app if needed (one-time $25 developer registration).
- ●Go to Testing → Internal testing → Create new releaseand upload the bundle — Google Play's equivalent of TestFlight.
10
Play Console — listing and compliance
- ●Complete the Data safety form and content rating questionnaire — drafts live in
PlayStore/in your handoff zip. - ●Plan screenshots and store listing copy for the phone sizes you support.
- ●Add yourself as an internal tester, accept the opt-in link on your phone, and install from Play.
11
Internal testing (beta)
- ●After upload processing completes, the build appears under Internal testing.
- ●Install from the tester link on real devices — no separate beta app like TestFlight; it comes from Google Play.
- ●Closed testing (wider group) may be required before a public release for newer personal developer accounts — plan 12+ testers for 14 days if that applies to you.
12
Submit to Google Play
- ●When you're ready for production, promote a tested release to Production and complete any remaining Play Console checks.
- ●Google's Developer Program Policies apply — allow time for review and resubmits.
When something fails
iOS
| Symptom | What to check |
|---|---|
| Signing errors | Team, Bundle ID, cert expiry — Xcode Settings → Accounts to refresh. |
| Upload rejected | Build number already used; bump build and archive again. |
| Processing stuck | Wait; if it fails, read the email from Apple for the specific binary issue. |
| Compliance prompts | Finish encryption / export questions in App Store Connect. |
Android
| Symptom | What to check |
|---|---|
| Gradle sync fails | File → Sync Project with Gradle Files; update Android Studio if it's old. |
| Wrong signing key | Use the same keystore as the first upload, or request an upload-key reset (Play App Signing). |
| Version code already used | Bump versionCode in app/build.gradle.kts, rebuild, re-upload. |
| Release button greyed out | Finish Data safety, content rating, and listing assets in Play Console. |
Deeper reference
- Bundled in every handoff zip:
APP_STORE_GUIDE.md(iOS — this page's first half),PLAY_STORE_GUIDE.md(Android — second half), andREADME.md(condensed Xcode / Android Studio + signing intro). - Apple: App Store Connect Help · Review Guidelines · Distributing your app for beta testing and releases
- Google: Play Console Help · Sign your app · Launch checklist
- Open-source repo: docs/app-store-after-handoff.md (iOS markdown) · docs/play-store-after-handoff.md (Android markdown).
Rewrite supplies code and handoff artifacts; your team owns Apple and Google developer accounts, signing, store listings, and compliance.