How to Publish an App to the App Store & Google Play
Step-by-step guide to publish app to App Store and Google Play — accounts, metadata, review tips, and common pitfalls from a studio that ships regularly.

You built the app. Now comes the step most tutorials rush past: how to actually publish app to App Store and Google Play without delays, rejections, or mysterious review holds. We’ve shipped 12+ apps across both platforms and learned — sometimes the hard way — exactly where things go wrong. This guide covers every stage of the submission pipeline in the order you need to execute it.
Before you touch either store: prerequisites
Both Apple and Google require developer accounts before you upload a single byte. Get these sorted early — account verification can take longer than expected, especially for new organizations.
Apple Developer Program
- Cost: $99 USD/year (individual or organization)
- Sign up at developer.apple.com/programs
- Organization accounts require a D-U-N-S number — allow 1–2 weeks for verification
- Gives access to App Store Connect, TestFlight, and code-signing certificates
Google Play Console
- One-time fee: $25 USD
- Individual or organization accounts available
- Identity verification required; new developer accounts may be held for additional review
- Access granted immediately after payment in most regions
Tip: If you are building for a client, they should own the developer account — not the studio. Transferring app ownership after launch is possible but adds friction. Set this up correctly on day one.
How to publish app to App Store: step by step
1. Configure signing in Xcode
Apple uses code signing to verify the identity of every app. You need three things:
- Bundle ID — a reverse-domain identifier (e.g.,
com.company.appname). Create it in the Apple Developer portal under Identifiers. - Provisioning Profile — ties your app ID, certificates, and devices together. Use Xcode’s automatic signing if possible; it handles most of this for you.
- Distribution Certificate — required for the App Store build. Generate it once per account.
With automatic signing enabled in Xcode, most of this happens invisibly. Manual signing is worth learning if you have multiple targets or complex entitlements.
2. Create the app record in App Store Connect
Go to appstoreconnect.apple.com, click + under My Apps, and fill in:
- App name (30 characters max)
- Primary language
- Bundle ID (must match Xcode)
- SKU (internal reference, never shown publicly)
This record is where your metadata, screenshots, pricing, and builds will live.
3. Prepare metadata and screenshots
This is the step most developers underestimate. Apple reviewers are humans checking content against your description and screenshots — inconsistencies cause rejections.
| Field | Limit | Notes |
|---|---|---|
| App name | 30 chars | Avoid keyword stuffing |
| Subtitle | 30 chars | Concise value proposition |
| Description | 4,000 chars | First 3 lines appear before “more” |
| Keywords | 100 chars | Comma-separated, no spaces |
| Promotional text | 170 chars | Can be updated without a new build |
| Screenshots | Up to 10 per device size | Must match the current build |
| App Preview video | Up to 3 per device size | 15–30 seconds, recorded on device |
Required screenshot sizes for iOS in 2026: 6.9-inch (iPhone 16 Pro Max), 6.5-inch (iPhone 14 Plus/15 Plus), and iPad Pro 13-inch if you support iPad. Use Figma or Sketch to create clean framed mockups.
4. Archive, upload, and submit for review
In Xcode: Product → Archive. Once the archive completes, click Distribute App → App Store Connect → Upload. The build appears in App Store Connect under TestFlight within minutes.
In App Store Connect, assign the build to your app version, fill in export compliance questions, add review notes (including login credentials for any gated flows), and hit Submit for Review.
Standard review time in 2026: 24–48 hours. Expedited review requests for genuine launch deadlines are often processed same-day.
How to publish on Google Play: step by step
1. Create the app in Google Play Console
At play.google.com/console, click Create app. You’ll set the default language, whether it’s an app or game, and whether it’s free or paid.
2. Complete the store listing
Google’s store listing is richer than Apple’s in some ways:
- Short description — 80 characters, shown in search results
- Full description — 4,000 characters
- Screenshots — minimum 2, recommended 8 (phone, 7-inch tablet, 10-inch tablet)
- Feature graphic — 1024 × 500px banner, required
- Hi-res icon — 512 × 512px PNG
3. Set up content rating, signing, and the release bundle
Complete Google’s IARC-based content rating questionnaire — it determines the age rating shown in the store and whether stricter children’s content policies apply.
For Play Store uploads, always use an Android App Bundle (.aab), not an APK. Build it in Android Studio via Build → Generate Signed Bundle/APK → Android App Bundle. You’ll need a keystore — back it up permanently. Losing it means you cannot push updates to that app.
5. Choose a release track
Google offers four tracks:
| Track | Audience | Purpose |
|---|---|---|
| Internal testing | Up to 100 testers | Fast iteration, no review |
| Closed testing (Alpha) | Invited users | Broader beta |
| Open testing (Beta) | Anyone who opts in | Pre-launch feedback |
| Production | All users | Full release |
Start with internal testing, roll to production when ready. A staged rollout (e.g., 10% → 50% → 100% over days) lets you monitor crash rates before full exposure.
6. Submit for review
Google’s review times average 1–3 days for new apps, occasionally longer. Unlike Apple, Google provides less feedback on rejections — the policy violation may be described only at a category level. Their policies around financial apps, VPN apps, and apps targeting children are the most frequently misunderstood.
Side-by-side: App Store vs. Google Play submission
| Factor | App Store | Google Play |
|---|---|---|
| Account cost | $99/year | $25 one-time |
| Review time | 24–48 hours | 1–3 days |
| Upload format | .ipa (via Xcode) | .aab (Android Studio) |
| Metadata screenshots required | Yes, per device class | Yes, phone + optional tablets |
| Staged rollout | Phased release (1–100%) | Granular % rollout |
| Beta testing | TestFlight (external) | Play Console tracks |
| Review feedback | Specific guideline cited | Policy category only |
The most common submission mistakes
- Keystore loss (Android) — if you lose the upload key, you cannot push updates. Back up to two separate secure locations immediately.
- Missing privacy manifest (iOS) — Apple now requires a
PrivacyInfo.xcprivacyfile declaring API usage reasons. Missing it causes automated rejection. - Screenshot device mismatch — submitting iPhone 14-sized screenshots when the app targets iPhone 16 leads to rejection or lower search visibility.
- Incomplete app review notes — if your app has a login gate, always include test credentials in the reviewer notes. Reviewers will not guess.
- Not testing on a real device — simulators hide performance issues that reviewers catch immediately on hardware.
How we handle launches at Fera Tech
Every app we ship goes through a structured pre-launch checklist covering signing, metadata accuracy, compliance questions, and a TestFlight or internal track beta before hitting production review. Getting submissions right on the first try is a real time saver — a rejected build adds at least a week to your launch timeline.
If you want to see the apps we’ve shipped, check out our work or learn more about our iOS and cross-platform services.
Building something new and need help getting it to the finish line? Reach out and we’ll map out your path to launch.
Building something like this?
Fera Tech ships iOS & full-stack apps end-to-end. Tell us about your project.
Start a project