Quick answer
Publishing your app on the Google Play App Store means preparing your build, setting up developer accounts, and passing each platform’s review process. Google Play charges a $25 one-time fee and reviews apps in 2–7 days. Apple charges $99/year with a typical 24–48 hour review time. Google requires an Android App Bundle (AAB) file; Apple requires an IPA. New personal Google Play accounts (created after November 2023) must also complete closed testing with 12 testers for 14 consecutive days before they can publish to production.
In this guide
- What app publishing actually means
- Requirements before you publish
- APK vs AAB vs IPA explained
- How to publish on Google Play (step-by-step)
- How to publish on Apple App Store
- 2026 policy updates
- Common rejection reasons & fixes
- App Store Optimization (ASO)
- Review timelines
- How much it costs
- Monetization after publishing
- Best practices for faster approval
- FAQ
The basics
What App Publishing Actually Means
Building an app and publishing an app are two different jobs. Development is writing the code. Publishing is making that code accessible to users through an official distribution channel, meaning the Google Play Store, the Apple App Store, or both.
What is app publishing?
App publishing is the process of submitting a finished, tested application to a store’s review system, configuring your store listing (description, screenshots, pricing), and getting approved for distribution to users worldwide. Once published, users can find, download, and install your app directly from their device.
Google Play vs Apple App Store: key differences
| Criteria | Google Play | Apple App Store |
|---|---|---|
| Developer fee | $25 one-time | $99/year |
| Review time | 2–7 days | 24–48 hours |
| Build format | Android App Bundle (AAB) | IPA file |
| Review process | Partially automated + human | Human review team |
| Approval strictness | Strict (1.75M apps blocked in 2025) | Very strict |
| Revenue cut | 15–30% | 15–30% |
| Sideloading | Allowed | Not allowed (outside EU) |
Why compliance matters
Both platforms enforce strict content, security, and privacy policies. Violating them doesn’t just get your app rejected; repeated violations can result in a permanent developer account ban, which means all your published apps get removed with no recovery option. Get it right from the start. Pre-launch
Requirements Before Publishing Your App
Don’t log into the Play Console empty-handed. Missing any of these assets is the most common reason for delayed launches. Use this as your pre-submission checklist.
Google Play developer account
- Register at play.google.com/console
- Pay the $25 one-time registration fee (non-refundable)
- Choose: Personal account (requires government-issued ID) or Organization account (requires D-U-N-S number + business docs)
- Set up a payment profile if you plan to charge for the app or offer in-app purchases
- Account approval takes up to 48 hours
New in 2023–2026
Personal developer accounts created after November 13, 2023, must complete closed testing with at least 12 real testers for 14 consecutive days before they can access the production track. If you skip this, the “Send for review” button stays locked. Plan this into your launch timeline.
Apple Developer Program
- Enroll at developer.apple.com
- Cost: $99/year
- Business accounts require a D-U-N-S number and take longer to verify
- You’ll need a Mac (or access to one) to use Xcode or Transporter for IPA uploads
Required assets- have these ready before you open the console
| Asset | Google Play | Apple App Store |
|---|---|---|
| App icon | 512×512px PNG | 1024×1024px PNG |
| Screenshots | Min 2, multiple device sizes | Required per device class |
| Feature graphic | 1024×500px | N/A |
| Privacy policy URL | Required (must resolve) | Required |
| Short description | Max 80 characters | Subtitle: max 30 chars |
| Full description | Max 4,000 characters | Max 4,000 characters |
| Content rating | Complete questionnaire | Set age rating |
| Data safety disclosure | Data Safety form (mandatory) | Privacy nutrition labels |
Pre-submission readiness checklist
- Developer account created and verified
- Privacy policy hosted at a live, accessible URL
- App icon at correct dimensions (no transparent backgrounds on Google Play)
- Screenshots for all required device sizes
- App title, short description, and full description written
- Content rating questionnaire completed
- Data Safety / Privacy Nutrition Label completed accurately
- AAB or IPA build generated and signed
- Closed testing completed (12 testers × 14 days) if a new personal account
- App tested on multiple real devices and Android versions
- Payment profile set up if the app is paid or has in-app purchases
Technical
APK vs AAB vs IPA: What’s the Difference?
| Format | Platform | Purpose | Required by |
|---|---|---|---|
| APK (Android Package) | Android | Installable app package, used for direct/sideload distribution | Legacy- no longer accepted for new Play Store submissions |
| AAB (Android App Bundle) | Android | Upload a format that lets Google generate optimized APKs per device | Mandatory for all new Play Store apps since 2021 |
| IPA (iOS App Archive) | iOS | Installable app package for iPhone and iPad | Mandatory for all App Store submissions |
Why Google switched to AAB
An AAB is not the app itself; it’s a blueprint. Google’s servers use it to build a device-specific APK for each user’s phone, stripping out unnecessary resources (unused languages, screen densities, CPU architectures). The result: smaller download sizes, faster installs, and better performance. You never distribute AABs directly to users.
App signing
Both platforms require your app to be signed with a cryptographic key before submission. Google manages signing keys for you by default via Play App Signing. For Apple, you generate certificates and provisioning profiles through Xcode or the Apple Developer portal. Keep your signing keys backed up — losing them can prevent you from publishing future updates to the same app. Step-by-step
How to Publish an Android App on Google Play
Follow these steps in order. Each one maps to a section of the Google Play Console dashboard.
- Create your Google Play Console account. Go to play.google.com/console, sign in with a Google account, and pay the $25 one-time registration fee. Choose a personal or an organization. Complete your developer profile, including your public developer name (visible to users in the store). Errors during registration can result in account rejection. Use accurate legal information.
- Verify your developer identity. Personal accounts: provide a valid government-issued ID. Organization accounts: provide your D-U-N-S number and official business documentation. Google verifies identity to reduce fraudulent apps. This step takes up to 48 hours.
- Complete closed testing (new accounts only). If your personal account was created after November 13, 2023, you must run a closed test with at least 12 testers for 14 consecutive days before the production track unlocks. Share the test invite link, confirm 12 users have opted in, and wait out the 14-day window. You cannot skip this. Plan 2–3 extra weeks into your launch timeline.
- Create your app listing. In the Play Console dashboard, click Create app. Enter your app name (you cannot change this after publishing a free app), default language, app type (app or game), and whether it’s free or paid. Accept the developer program policies.
- Upload your AAB file. Under Production → Releases, click Create new release. Upload your signed AAB. Add release notes. Google’s pre-launch report will automatically run tests on your build and flag crashes or compatibility issues before review.
- Complete the Data Safety form. Declare every type of data your app collects, how it’s used, whether it’s shared with third parties, and whether users can request deletion. This includes analytics, crash logs, and anything from third-party SDKs. Incomplete or inaccurate forms are a top rejection trigger. Don’t forget Firebase, Crashlytics, and ad SDKs; they collect data too.
- Complete the store listing. Add your short description (80 chars), full description (4,000 chars), screenshots, feature graphic, and app icon. Complete the content rating questionnaire. Set your target audience and whether the app contains ads.
- Set pricing and target regions. Choose free or paid. Select the countries you want to distribute to. If selling paid content or in-app purchases, configure your payment profile and tax information. You can expand or restrict regions after launch.
- Configure Play Integrity API. The Play Integrity API protects your app from tampering, unauthorized sideloading, and abuse. Google increasingly views its absence as a compliance signal. Not yet mandatory, but strongly recommended, especially for fintech and payments apps.
- 10 Submit for review and monitor. Under the Production tab, click Send for review. Google reviews within 2–7 days. If rejected, you’ll receive specific feedback. Fix the issues and resubmit. There’s no waiting period between submissions, but repeated rejections can escalate to account-level review.
Build commands by framework
Flutter React Native Kotlin / Java No-code tools
Generate a signed AAB from your Flutter project:
flutter build appbundle --release
Output: build/app/outputs/bundle/release/app-release.aab
Make sure your key.properties file is configured in android/app/build.gradle before running this.
Build a release AAB from a React Native project:
cd android ./gradlew bundleRelease
Output: android/app/build/outputs/bundle/release/app-release.aab
Ensure your keystore is referenced in android/gradle.properties.
In Android Studio: Build → Generate Signed Bundle/APK, select Android App Bundle, choose your keystore, and select release variant. Or via CLI:
./gradlew bundleRelease
FlutterFlow and Adalo both offer direct publishing to Google Play from their dashboards no terminal needed. You’ll still need to connect your Play Console account and upload your signing key. Bubble currently does not support direct Play Store publishing; you’ll need to wrap your Bubble web app using a tool like Capacitor or BrowserStack.
For developers & founders
Ready to monetize globally after launch?
EverTry gives app founders USD accounts, virtual dollar cards, and cross-border payment infrastructure so you can collect revenue from anywhere, from day one. Set up your EverTry account → Step-by-step
How to Publish an iOS App on the Apple App Store
Apple’s process is shorter but stricter. Human reviewers check every app, and rejection reasons can be broader and less specific than Google’s.
Step 1: Enroll in the Apple Developer Program
Go to developer.apple.com/programs. Individual enrollment requires an Apple ID and payment. Business enrollment requires a D-U-N-S number and takes several business days to verify.
Step 2: Create your app record in App Store Connect
Log in to appstoreconnect.apple.com, click the + button, and create a new app. Set your bundle ID (must match your Xcode project), select your primary language, and enter an app name and SKU.
Step 3: Create certificates and provisioning profiles
In Xcode or the Apple Developer portal, create a Distribution Certificate and an App Store Provisioning Profile. These cryptographically sign your app and tell Apple it came from a verified developer. Xcode can manage this automatically via “Automatically manage signing.”
Step 4: Run TestFlight beta testing
TestFlight is Apple’s first-party beta testing platform. Internal testers (up to 100) get immediate access; external testers (up to 10,000) require a brief Beta App Review first. Running TestFlight before submission catches issues Apple reviewers would flag, and shows Apple that real users have tested the app.
Step 5: Complete App Store metadata and privacy labels
- App screenshots (required for every device class you support)
- App description, keywords (100 chars), and promotional text
- Age rating questionnaire
- Privacy Nutrition Labels declare every category of data your app collects. These are publicly visible on your App Store listing.
Step 6: Upload the IPA and submit for review
Upload your build via Xcode → Distribute App → App Store Connect, or using the Transporter app. Once your build appears in App Store Connect (takes ~30 minutes), select it for your submission and click Submit for Review. Include demo credentials for the review team if your app requires login.
Common Apple rejection triggers (unique to iOS)
- Hidden functionality – features enabled via server flags after approval
- Forcing users to rate the app – use only Apple’s official SKStoreReviewRequestAPI
- Bypassing in-app purchase -linking to outside payment flows for digital goods is prohibited (outside of approved Reader apps)
- Placeholder content – dummy text, empty screens, or unfinished features
- Broken demo credentials -provide working login details in the review notes
2026 Google Play & Apple Policy Updates
Both platforms have tightened their requirements significantly since 2023. Here’s what’s changed and what it means for your submission.
Google Play policy changes
- 12 tester / 14-day closed testing rule – mandatory for all new personal accounts created after November 2023. Reduced from the original 20-tester requirement. Cannot be bypassed.
- Target SDK 35 (Android 15) required – all new apps and updates must target API level 35. API 36 enforcement is coming next. Update your
targetSdkVersioninbuild.gradleaccordingly. - 16KB memory page size – apps must be compiled with 16KB alignment support for devices running Android 15+. This affects native C/C++ code. Check the Android developer docs for migration steps.
- Play Integrity API enforcement expanding – Google is moving toward stronger enforcement of integrity checks. Fintech, payments, and banking apps should treat this as mandatory.
- Data Safety form accuracy – Google now cross-checks declared data practices against app behavior. Inaccurate declarations can trigger post-publish removal.
- AI-generated content policy – apps that use generative AI to produce user-facing content must disclose this and comply with Google’s AI content guidelines.
Apple policy changes
- Privacy Nutrition Label accuracy checks – Apple has increased scrutiny on declared vs actual data collection, particularly for analytics SDKs.
- EU Digital Markets Act (DMA) compliance – apps distributed in the EU now have additional requirements around alternative payment options and interoperability disclosures.
- AI-generated content labels – apps generating AI content must label it and comply with updated App Store Review Guidelines Section 1.2.
Both platforms update their policies multiple times per year. Bookmark the Android developer policy page and Apple’s release notes for changes that affect live apps. Troubleshooting
Common Reasons Apps Get Rejected (and Exactly How to Fix Them)
Google blocked over 1.75 million apps in 2025 alone. Most rejections are preventable. Here are the most common causes and their specific fixes.
| Rejection reason | Severity | Example | Fix |
|---|---|---|---|
| Broken or missing privacy policy URL | Critical | URL returns 404, or redirects are broken | Host a simple privacy policy page and verify the link loads on a fresh browser session before submitting. |
| Incomplete or inaccurate Data Safety form | Critical | App uses Firebase Analytics, but no data collection is declared | Audit every SDK in your app. Check their documentation for what data they collect. Declare all of it, including third-party collection. |
| API level too low (target SDK) | Critical | App targets API 30 but Google requires 35 | Update targetSdkVersion 35 in build.gradle. Test on Android 15 emulator before resubmitting. |
| 16KB memory page size incompatibility | Common | Native C/C++ code not aligned for Android 15 devices | Recompile native libraries with 16KB alignment. See Android developer docs for exact NDK flags. |
| App crashes during review | Critical | App crashes on launch on a Pixel 8 running Android 15 | Use the Play Console Pre-launch Report to catch crashes before submission. Test on at least 3 real devices. |
| Permission abuse | Common | App requests microphone access, but the feature isn’t in the app | Remove unused permission declarations from your manifest. Only request permissions you use, and request them contextually. |
| Misleading metadata | Common | Description claims “No ads” but app shows ads | Review every line of your description against the actual app experience. Uninstall and reinstall as a user before submitting. |
| Closed testing not completed | Critical | New personal account tries to submit without running a 14-day closed test | Run closed testing with 12 testers for 14 consecutive days. Services like PrimeTestLab can help source testers. |
Pre-submission rejection prevention checklist
- Privacy policy URL tested on an incognito browser tab
- Data Safety form reviewed against every SDK in the app
-
targetSdkVersionset to 35 or higher - App tested on Android 14 and 15 emulators
- Pre-launch Report reviewed and zero critical crashes
- All permission requests are used and contextually triggered
- Store description matches actual app functionality
- Screenshots are from the current version of the app
App Store Optimization (ASO) for More Downloads
ASO is to the app stores what SEO is to Google Search: the practice of optimizing your listing so more people find and install your app. It’s the highest-ROI growth lever most indie founders ignore.
ASO vs SEO
SEO optimizes web pages for search engine crawlers. ASO optimizes app listings for store algorithms that rank by keyword relevance, conversion rate (installs/views), and ratings. The key difference: on the web, backlinks drive authority. In app stores, install velocity and ratings are the ranking signal.
Where to place keywords
| Field | Google Play | Apple App Store | Weight |
|---|---|---|---|
| App title | 30 chars | 30 chars | Highest |
| Short description | 80 chars | Subtitle (30 chars) | High |
| Keyword field | Not available | 100 chars (hidden) | High (Apple only) |
| Full description | 4,000 chars | 4,000 chars | Medium (Google) / Low (Apple) |
Screenshot optimization
Screenshots are your conversion lever, they’re the first thing users look at before installing. Lead with your most compelling value proposition, not a generic home screen. Use captions. A/B test your first screenshot (Play Console supports this natively).
Ratings and reviews strategy
- Prompt for a review at a moment of success after a task is completed, not on first launch
- Respond to negative reviews publicly and promptly; it signals active maintenance
- Never incentivize reviews, as it violates both platforms’ policies
- Use Play Console’s Reply to Reviews API to scale responses
Localization
Translating your store listing, even just the title and short description, into 5–10 languages can increase global installs by 30%+ without changing a line of code. Start with Spanish, Portuguese, French, and Arabic for the highest-growth emerging markets. Planning
How Long App Reviews Actually Take
| Scenario | Google Play | Apple App Store |
|---|---|---|
| Standard new app | 2–7 days | 24–48 hours |
| Standard update | 2–7 days | 24–48 hours |
| Complex or sensitive apps (fintech, health) | Up to 14 days | Up to 5 days |
| Expedited review (Apple only) | N/A | Possible via App Store Connect request |
| After rejection + resubmission | Back to 2–7 days | Back to 24–48 hours |
| Account verification (new accounts) | Up to 48 hours | Up to 5 business days (org) |
Launch planning note
Don’t plan a hard launch date around app store submission. Build at least 2 weeks of buffer for review time, potential rejection, and resubmission. For new personal Google Play accounts, add another 2–3 weeks for the mandatory closed testing requirement. Budgeting
How Much It Actually Costs to Publish an App
The developer fee is just the start. Here’s a realistic breakdown of what publishing and maintaining an app actually costs.
Mandatory costs
| Item | Cost | Frequency |
|---|---|---|
| Google Play developer account | $25 | One-time |
| Apple Developer Program | $99 | Per year |
| Privacy policy hosting | $0–$10 | Per month |
Total cost by founder profile
Indie / Solo
~$150
Google Play ($25) + Apple ($99) + domain/hosting ($20). Android-only cuts this to under $50.
SaaS Startup
$500–2k
Adds cloud infrastructure, QA testing, CI/CD pipeline, and crash monitoring tools.
Enterprise / Funded
$5k–20k+
Adds legal review, penetration testing, localization, accessibility audits, and dedicated DevOps.
Revenue collection is a hidden cost
Both app stores take a 15–30% cut of in-app purchases and subscriptions. If you collect payments outside the app (invoices, Stripe links, direct bank transfers), you keep more.
Monetization Options After Publishing
Publishing is day one. Here’s how to turn downloads into revenue.
In-store monetization models
- Free with ads, easiest to launch, lowest barrier to download. Revenue scales with DAUs, not conversions.
- Freemium / in-app purchases free core, paid features. Works best when the free tier delivers clear value, and the paid tier has obvious upgrade moments.
- Subscriptions recurring revenue model. Both stores support auto-renewable subscriptions with grace periods and family sharing. Best for apps with ongoing value delivery.
- Paid upfront declining model for consumer apps is still viable for productivity and developer tools.
Out-of-store monetization (keep more of your revenue)
- SaaS pricing via web – for apps with a web companion, charge subscriptions on your own site to bypass the 30% store cut. Apple’s Reader Rule and external purchase links (under strict conditions) allow this in some regions.
- Creator monetization – tips, digital downloads, and creator subscriptions handled outside the store.
- B2B / enterprise licensing – volume deals invoiced directly, no store involvement.
- Affiliate revenue – partner integrations that pay per user action.
Best Practices for Faster Approval
These aren’t shortcuts; they’re the habits of developers who consistently get approved on first submission.
- Test on real devices, not just emulators. Google’s review runs on physical Pixel devices. Emulator-only testing misses real-world crashes.
- Run the Play Console Pre-launch Report before submitting. It catches crashes, accessibility issues, and security vulnerabilities automatically.
- Write clear review notes. If your app requires a login, provide test credentials. Explain any unusual permissions. A reviewer who understands your app is less likely to reject it.
- Minimize permissions. Request only what you need, at the moment you need it. An app requesting 12 permissions on install is a red flag to reviewers and users.
- Complete every checklist item before submitting. The Play Console dashboard shows a completion percentage. Get it to 100% before hitting send.
- Use internal and closed tracks before production. Internal testing → closed testing → production. Skipping tracks increases rejection risk.
- Verify all external links work. Your privacy policy, support URL, and website URL are all checked during review. A 404 is an automatic rejection signal.
- Update immediately after a policy change. Apps that lag behind SDK or policy requirements get flagged proactively. Monitor the Play Console policy update feed.
Frequently Asked Questions
How much does it cost to upload an app to the Play Store?
Google Play requires a one-time $25 developer registration fee. After that, publishing individual apps is free. Apple charges $99/year for the Apple Developer Program, regardless of how many apps you publish.
Can I publish an app for free?
You cannot publish on Google Play without the $25 registration fee. After paying for it, publishing apps, including free apps, costs nothing additional. The fee covers access to the Play Console indefinitely.
What is Google Play Console?
Google Play Console is the web dashboard at play.google.com/console, where developers submit, manage, and monitor their Android apps on the Google Play Store. It includes tools for release management, store listing configuration, crash reporting, revenue tracking, and policy compliance.
What is an AAB file, and why does Google require it?
An Android App Bundle (AAB) is the publishing format required by Google Play for all new app submissions since 2021. Unlike an APK, an AAB isn’t a complete installable app; it’s a blueprint that Google’s servers use to generate a device-specific, optimized APK for each user. This results in smaller download sizes (typically 15–20% smaller) and better performance on a wider range of Android devices.
Why was my app rejected from Google Play?
The most common rejection reasons in 2025–2026 are: a broken or missing privacy policy URL, an incomplete or inaccurate Data Safety form, targeting an outdated API level (must be 35+), app crashes during automated testing, and permission declarations that don’t match actual app behavior. Google always provides specific feedback on rejections. Read it carefully before resubmitting.
Do I need 12 testers to publish on Google Play?
Only if you created a new personal developer account after November 13, 2023. In that case, you must complete a closed testing round with at least 12 testers who opt in and actively participate for 14 consecutive days. This requirement does not apply to organization accounts or personal accounts created before that date.
How long does the Google Play review take?
Google Play typically reviews apps within 2–7 days, though sensitive categories (fintech, health, children’s apps) may take up to 14 days. Apple App Store reviews typically take 24–48 hours for standard submissions. Neither platform guarantees specific timelines; always build a buffer into your launch plan.
Do I need a company to publish apps?
No. Both Google Play and the Apple App Store allow individual developers to publish apps under a personal account. An organization account is required only if you’re publishing on behalf of a registered business entity and want the company name to appear as the developer.
Can I publish an app without a website?
Yes, but you do need a valid, accessible URL for your privacy policy, which is mandatory for any app that collects user data (virtually all modern apps). This can be a single-hosted page, not a full website. Free options include GitHub Pages, Notion, or Carrd.
This article is for informational purposes only and may not reflect the latest Google Play or Apple App Store policies. Always check the official developer documentation before submitting your app. EverTry is not affiliated with Google or Apple.
Jamilah is a digital marketer focused on fintech growth, SEO, and user acquisition.
She works on content and campaigns that help users navigate cross-border payments more easily.
At EverTry, she supports marketing initiatives aimed at making global payments simpler and more accessible.
