Skip to content

Chapter 8: Mobile App Deployment โ€“ From Build to Store ๐Ÿ“ฑ๐Ÿš€ โ€‹

"The most important thing is the user experience and how your app can solve a problem." - WWDC

Building your mobile app is a big step, but getting it into the hands of users through the App Store (iOS) and Google Play Store (Android) is where your product truly comes to life. This chapter walks you through how to deploy an Expo-based mobile app, starting from setting up your Expo project to publishing on both platforms.

1๏ธโƒฃ Setting Up Your Expo Project for Deployment โ€‹

Expo makes mobile app development and deployment significantly easier. Before you think about publishing, properly configuring your Expo project is essential.

โœ… Step 1: Sign Up and Set Up Expo โ€‹

Create an Expo Account:

  • ๐Ÿ‘‰ Visit https://expo.dev and sign up for a free account.
  • This account is essential for managing builds, OTA (Over-the-Air) updates, and app publishing.

โœ… Step 2: Create a Project in Expo Dashboard โ€‹

  • Go to https://expo.dev/accounts
  • Under your account, create a new project. This will generate a unique projectId.
  • Copy this projectId โ€” You'll need to use this in your app configuration.

โœ… Step 3: Add projectId in Your App Code โ€‹

You can just mention this to your AI Agent so that the Agent configures this on your behalf using the following prompt:

These are the expo details:
Slug: {Add yours}
ID: {Add yours}
Owner: {Add yours}

Expo init and build the expo app ({Android or iOS}) using the EAS workflow for {production or preview}

๐Ÿ‘‰ Next steps:

  • You would need to log in to your Expo account using your username and password (the agent would ask you that).
  • In case you face errors, I would suggest deleting folders node_modules, Android or iOS, package-lock.json, and package.json and trying again npm install and expo building yourself

๐Ÿ’ก Important:

  • This projectId uniquely identifies your app for Expo's build and update services.
  • Preview builds are meant for internal testing and QA (Quality Assurance) before you launch your app to real users
  • Production builds are optimized, secure, and ready for publishing to the App Store or Google Play Store.

๐Ÿ“š Refer to Official Expo Documentation โ€‹

For the most up-to-date details, always refer to Expo's official documentation: ๐Ÿ‘‰ Expo Documentation ๐Ÿ‘‰ EAS Build Documentation ๐Ÿ‘‰ Expo Updates Guide

2๏ธโƒฃ Generating Production Builds (Android & iOS) โ€‹

๐Ÿ“Œ Step 1: Set Up Developer Accounts โ€‹

๐Ÿ“Œ Step 2: Generate App Builds (Using Expo) โ€‹

If you're using Expo, generate production-ready builds using:

bash
eas build -p android
eas build -p ios
  • Android โ†’ .aab file (Android App Bundle)
  • iOS โ†’ .ipa file
  • These are the files you will upload to the respective app stores.

3๏ธโƒฃ Uploading Your App to the Stores โ€‹

๐Ÿ“ฑ Google Play Store (Android) โ€‹

โžก๏ธ Go to Google Play Console โ†’ Click "Create App" โžก๏ธ Fill out App Details (Name, Description, Category) โžก๏ธ Upload the .aab file (mandatory for new apps) โžก๏ธ Set up Store Listing (Screenshots, Privacy Policy, Keywords)

โš ๏ธ New Google Play Policy (Effective 2024) โ€‹

๐Ÿšจ Mandatory 14-Day & 20-Tester Rule Before Public Launch: To move to production, Google now requires:

  • At least 20 testers in Open or Closed Testing tracks.
  • Minimum 14 days of testing before public release.
  • Note: Internal Testing does not count toward this requirement.

โœ… Testing Tracks Explained: โ€‹

TypePurposeVisible Publicly?Tester LimitCounts for 14-Day Rule?
InternalQuick internal tests within the dev teamโŒ NoUp to 100โŒ No
ClosedPrivate invite-only testing (QA teams, trusted users)โŒ NoFlexible (email/groups)โœ… Yes
OpenPublic beta testing, anyone can joinโœ… Yes (as a test)Unlimitedโœ… Yes
ProductionFull public releaseโœ… YesUnlimitedโœ… After meeting the 14-day requirement
  1. Start with Internal Testing to fix initial bugs.
  2. Move to Closed/Open Testing (get at least 20 testers), run for 14 days.
  3. Once stable, promote to Production.

โœ… Finding Testers for Google Play (Closed/Open Testing): โ€‹

๐Ÿ’ก Pro Tip: Always share clear instructions on how to join, what feedback is needed, and where to report issues (e.g., Google Form, Discord, email).

๐Ÿ Apple App Store (iOS) โ€‹

โžก๏ธ Upload the .ipa file using:

โžก๏ธ Create an App Store Listing in App Store Connect. โžก๏ธ Submit for TestFlight Beta Testing (highly recommended before public release). โžก๏ธ Set up App Store Metadata:

  • Screenshots
  • App Icon
  • Description
  • Pricing โžก๏ธ Submit for Review โ€“ Typically takes 1โ€“2 days (may take longer if issues arise). โžก๏ธ Once approved, schedule or manually release your app!

๐Ÿ’ก Pro Tip: Apple is strict about Privacy Policies, UI guidelines, and in-app purchasesโ€”double-check these before submission.

4๏ธโƒฃ Handling Common Review Rejections โ€‹

๐Ÿ’ฅ Google Play Rejections: โ€‹

  • โŒ Policy Violations โ€“ Review Google's Content Policies.
  • โŒ Crashes & ANRs (App Not Responding) โ€“ Test on multiple devices before submission.

๐Ÿ’ฅ Apple App Store Rejections: โ€‹

  • โŒ Privacy Issues โ€“ Only request necessary permissions.
  • โŒ Inaccurate Metadata โ€“ Ensure descriptions & screenshots reflect real app behavior.
  • โŒ Performance Bugs โ€“ Apple tests on real devices, to avoid crashes!

5๏ธโƒฃ Post-Launch: Monitoring & Updates โ€‹

๐Ÿš€ Once your app is live, focus on growth and stability:

๐ŸŽฏ Your App is Live โ€” What's Next? โ€‹

Congratulations! ๐ŸŽ‰ Your app is now available for users worldwide. But the work doesn't stop here:

  • Gather real user feedback.
  • Monitor performance and stability.
  • Plan and release updates to improve user experience.

๐Ÿ‘‰ Up next: How to iterate, scale, and grow your product to the next level! ๐Ÿš€

Comments

Share your thoughts and questions about this page. Sign in with GitHub to comment.

Open-source under the MIT License. Created by the community, for the community. A passion project of Angshuman Gupta.