How to publish an app on the App Store and Google Play
By Matt L., Founder, Loha.dev LLC
Published
Updated
11 min read
The short answer
To publish an app, enroll in the Apple Developer Program ($99/year) and create a Google Play developer account ($25 one-time). Then prepare the store listings, privacy disclosures and age ratings, build signed release binaries, and test through TestFlight and Play testing tracks. Submit for review and release gradually. Plan on one to three weeks for a first launch, and longer for a new personal Play account.
Writing the app is most of the work, but shipping it is a separate project. Both stores have their own accounts, paperwork, testing rules and reviewers, and most first launches slip because of these steps, not the code. This guide walks through the process as it works in 2026, with notes on where founders usually get stuck.
Step 1: Set up your developer accounts
Do this first, before the app is finished. Account approval is the step you can't speed up, and it can take anywhere from a day to a few weeks.
Apple Developer Program
- Cost: $99 per year (Apple offers fee waivers to some nonprofits, schools and government entities).
- Individual vs. organization: an individual account shows your personal name as the seller. An organization account shows your company name, but you need a legal entity and a D-U-N-S number (free from Dun & Bradstreet, but it can take a week or more to issue).
- Who should own it: the business. If an agency builds your app, it should still be published under your account, with the agency added as a team member. Moving an app between accounts later is possible but tedious.
- EU distribution: Apple asks you to declare trader status under the EU Digital Services Act, and traders' contact details are shown publicly.
Google Play Console
- Cost: a $25 one-time registration fee.
- Identity verification: Google verifies your legal name and address, and organization accounts also need a D-U-N-S number. Expect a few days, sometimes longer.
- The closed-testing requirement: personal accounts created after November 2023 must run a closed test before they can publish to production. At the time of writing, that means at least 12 testers opted in for at least 14 consecutive days (Google has changed the exact number before). Organization accounts are not subject to this requirement.
Step 2: Prepare your store assets and disclosures
Both stores ask for roughly the same material. Gather it in one shared folder while development wraps up, because missing any of these blocks submission.
- App icon: 1024×1024 px for Apple (no transparency) and 512×512 px for Google Play, plus a 1024×500 feature graphic for Play.
- Screenshots: Apple wants a set for the largest iPhone display size (and iPad if you support it) and scales them down for smaller devices. Google needs at least two phone screenshots, plus tablet screenshots if you want to appear well on tablets.
- Name, subtitle and description: see the ASO section below for character limits.
- Privacy policy URL: required by both stores, for every app. It must be a live web page that matches what the app actually collects.
- Privacy disclosures: Apple's App Privacy section (the "nutrition label") and Google's Data safety form. Both ask what data you collect, why, and whether it's linked to the user or used for tracking. Your third-party SDKs (analytics, crash reporting, ads) count too.
- Account deletion: if users can create an account, both stores require a way to delete it, both inside the app and (for Google) through a web link.
- Age rating: Apple has its own questionnaire, and Google uses the IARC questionnaire. Answer honestly; mismatched ratings are a common reason for review problems.
- Support URL and contact email.
Write the privacy policy and fill in the disclosures from the same list of SDKs and data flows. If the policy says one thing and the form says another, reviewers can and do flag it.
Step 3: Build and sign your release
A store build is a signed, production-configured binary. You don't upload source code.
- iOS: archive the app in Xcode and upload it to App Store Connect, or let a cloud service do it for you. Apple handles distribution certificates and provisioning profiles, and Xcode's automatic signing covers most cases.
- Android: Google Play requires an Android App Bundle (AAB) for new apps, not an APK. You sign it with an upload key, and Play App Signing holds the actual app signing key. Back up your upload key and its password, because losing them means a support request to Google.
- React Native / Expo: we use EAS Build to produce both binaries in the cloud and EAS Submit to send them to App Store Connect and the Play Console. It removes most of the local signing headaches and makes releases repeatable.
- Version numbers: every upload needs a higher build number than the last one. Automate this early.
- Target API level: Google requires new apps and updates to target a recent Android API level, usually within about a year of the latest release. Check the current deadline before you submit.
If you're deciding how to build for both platforms in the first place, our iOS app development and Android app development pages explain how we ship one codebase to both stores.
Step 4: Test with TestFlight and Play testing tracks
Never let a store reviewer be the first person outside your team to install the release build. Both stores give you free beta distribution:
| Apple TestFlight | Google Play testing tracks | |
|---|---|---|
| Team / internal testing | Up to 100 internal testers from your App Store Connect team, no review | Internal testing track, up to 100 testers, available within minutes |
| Wider testing | Up to 10,000 external testers by email or public link | Closed testing (invite lists or Google Groups) and open testing (anyone can join) |
| Review needed? | First external build goes through a short Beta App Review | Closed and open tracks go through Play review |
| Build lifetime | Builds expire after 90 days | No expiry while the track is active |
Test on real, older devices, on slow networks, and with a fresh install (no cached login). That last one catches a surprising number of crashes that reviewers would otherwise find for you.
Step 5: Submit for review
Apple reviews every build and every update, and most are reviewed within a day or two. Google's review is more automated, but first submissions from new accounts often take several days, and sometimes a week or more. Plan your launch date around the slower of the two.
The most common rejection reasons
- Crashes and bugs (Apple guideline 2.1, App Completeness). Reviewers test on current devices and OS versions. If the app crashes on launch or a button does nothing, it's rejected.
- No demo account. If your app requires login, give the reviewer working credentials in the review notes (Apple) or the App access section (Google). If login uses a one-time code or a special backend state, explain how to get past it.
- Minimum functionality (Apple guideline 4.2). An app that is just a wrapped website, a single-screen utility, or a marketing brochure will likely be rejected. The app needs to do something useful that justifies being an app.
- Spam and copycat apps (guideline 4.3). Near-duplicates of your own apps or common templates get flagged.
- Payments outside in-app purchase (guideline 3.1.1). Digital goods and subscriptions unlocked inside the app generally must use Apple's In-App Purchase and Google Play Billing. Physical goods and real-world services (food delivery, rides, consulting) can use Stripe or similar. Recent court rulings and regulations have loosened this in the US and EU, but the details differ by country and keep changing.
- Privacy mismatches. Requesting permissions without a clear purpose string, collecting data not declared in your privacy label, or having no account deletion option.
- Placeholder content and broken links. Lorem ipsum, "coming soon" screens, and a dead support URL all count.
A rejection isn't a ban. You get a message citing the guideline, you can reply in App Store Connect's Resolution Center, and you can resubmit. Most rejections cost a few days, not weeks, if you respond quickly and specifically.
Step 6: Choose a release strategy
Approval doesn't have to mean instant release. Both stores let you control when and how widely the update goes out.
- Manual release: hold an approved build and press release when your marketing, backend and support are ready. Good for first launches.
- Apple phased release: automatic updates roll out to a growing share of users over seven days. You can pause it if crash reports spike. New users downloading from the store get the new version immediately either way.
- Google staged rollout: you choose the percentage (say 5%, then 20%, then 100%) and can halt the rollout if something breaks.
- Server-side feature flags: ship code dark and turn features on remotely, so a bad feature doesn't need a new store review to disable.
Remember that you can't roll back a store release. If version 1.3 is broken, the fix is version 1.3.1 and another review. Staged rollouts and feature flags are how you keep a bad release small.
Step 7: App Store Optimization (ASO) basics
ASO is SEO for app stores. You won't out-rank big brands on day one, but a few basics matter:
- Name: both stores allow 30 characters. Put your brand plus one key phrase if it reads naturally (for example "Acme: Shift Scheduling" rather than just "Acme").
- Apple subtitle (30 characters) and keyword field (100 characters, hidden): don't repeat words that are already in your name. Separate keywords with commas, no spaces.
- Google short description (80 characters) and full description (4,000 characters): Google indexes the description, so use your main terms naturally in it.
- Screenshots sell, not describe. The first two screenshots show in search results. Lead with the main benefit in a short caption, not a settings screen.
- Ratings: prompt for reviews after a success moment using the native review APIs, never right after install.
- Localize the listing for each major market, even if the app itself is English-only at first.
Apple vs. Google publishing checklist
| Item | Apple App Store | Google Play |
|---|---|---|
| Developer fee | $99/year | $25 one-time |
| Company account | Legal entity + D-U-N-S number | Legal entity + D-U-N-S number + identity verification |
| Pre-launch testing rule | None required (TestFlight recommended) | New personal accounts: closed test, 12+ testers for 14 days |
| Upload format | Signed build via Xcode, Transporter or EAS Submit | Signed Android App Bundle (AAB) |
| Beta channel | TestFlight | Internal, closed and open testing tracks |
| Privacy disclosure | App Privacy (nutrition label) | Data safety form |
| Age rating | Apple questionnaire | IARC questionnaire |
| Icon | 1024×1024 px | 512×512 px + 1024×500 feature graphic |
| Typical first review | About 1–2 days, in our experience | Several days to a week or more for new accounts |
| Gradual release | Phased release over 7 days | Staged rollout by percentage |
| Store commission | 15% (Small Business Program) or 30% | 15% on first $1M/year or 30%; 15% on subscriptions |
The commission column is simplified: both stores have regional programs and exceptions. Read the current terms for the countries you plan to sell in.
How long publishing takes, realistically
In our experience, a first launch on both stores takes one to three weeks from "the app works" to "the app is live" when the accounts already exist. Add a week or more for D-U-N-S and account verification, and two weeks for Google's closed test on a new personal account. That's why we start the store setup in the first week of a project, not the last. For the full picture, see how long it takes to build an app and the app development process explained.
If you'd rather not spend those weeks learning store paperwork, our mobile app development work includes accounts, signing, beta testing, store listings and review responses. You can get a free app plan to see what your launch would involve.
Frequently asked questions
How much does it cost to publish an app on the App Store and Google Play?
The store fees are $99 per year for the Apple Developer Program and a one-time $25 for a Google Play developer account, so about $124 for the first year on both. The real costs are elsewhere: building the app, designing screenshots, writing a privacy policy, and any time spent handling review feedback. Both stores also take a commission on paid apps and in-app purchases.
How long does App Store review take?
Apple says most submissions are reviewed in under 24 hours, and a day or two matches our experience for routine updates. First submissions, apps with logins or payments, and busy periods around holidays and major iOS releases can take longer. A rejection adds the time it takes you to fix the issue and resubmit, usually a few days.
Do I need 12 testers to publish on Google Play?
Only if you use a personal developer account created after November 2023. Those accounts must run a closed test with at least 12 opted-in testers for 14 consecutive days before applying for production access (the number was 20 when the rule launched). Organization accounts don't have this requirement. Check the current Play Console Help page, as Google adjusts this policy.
Should I publish under my personal name or my company?
Use a company account if you have a business. Your company name appears as the seller, which looks more trustworthy, and on Google Play it skips the closed-testing requirement for new personal accounts. The tradeoff is getting a D-U-N-S number first, which is free but can take a week or two. Personal accounts are fine for hobby projects.
Can I publish an app without a Mac?
Yes, with a cloud build service. Expo's EAS Build compiles and signs iOS apps on Apple hardware in the cloud, and EAS Submit uploads them to App Store Connect, so you can ship a React Native app from Windows or Linux. You'll still want a real iPhone for testing. Native Swift development, on the other hand, effectively requires a Mac running Xcode.
Why was my app rejected under guideline 4.2?
Guideline 4.2 (Minimum Functionality) means Apple felt the app doesn't do enough to justify being an app. Typical causes are a website wrapped in a web view, very thin features, or content better suited to a webpage. Fixes include adding native features like offline use, notifications, or device integration. If your idea really is a website, consider a web app instead.