Export your code and publish to the App Store and Google Play.
Once you’ve built and tested your app in Bloom, you have two options for getting it into users’ hands:
Instant sharing (covered in Instant Sharing) — Share immediately with links and QR codes
App Store publishing (this guide) — Deploy to official app stores for public distribution
This guide covers publishing to the iOS App Store and Google Play Store for permanent, discoverable app listings.
Not sure which you need? If you’re testing, demoing, or building an internal tool, instant sharing is faster and easier. If you want public distribution, monetization, or app store credibility, follow this guide.
Upload to App Store Connect via Transporter or Xcode
Add screenshots, descriptions, and metadata
Submit for review
Apple review typically takes 1-3 days but can be longer. Monitor your submission status in App Store Connect.
App Review
Apple reviews your app for:
Compliance with App Store guidelines
Privacy policy requirements
Functionality and crashes
Accurate metadata
If approved, your app goes live automatically (or on your scheduled release date).If rejected, you’ll receive feedback and can resubmit after making changes.
If you’ve set up GitHub Actions or automated builds, they run automatically on new commits.
3
Submit new version
Automated pipelines can submit directly to app stores, or you can trigger manually.
Over-the-air updates: With Expo’s EAS Update, you can push JavaScript changes to users instantly without resubmitting to app stores. Native changes still require new builds.
Apple App Store: 1-3 days on average (sometimes longer)
Google Play Store: Hours to 1 day typically
First submissions often take longer as reviewers are more thorough.
What if my app gets rejected?
Both stores will provide reasons for rejection. Common issues:
Missing privacy policy
Crashes or bugs
Metadata that doesn’t match functionality
Violations of content guidelines
Fix the issues and resubmit. You can appeal if you believe the rejection is incorrect.
Do I need to rebuild for every change?
Native changes: Yes—anything that modifies native code, dependencies, or app configuration requires a new build and submission.JavaScript changes: No—use Expo’s EAS Update to push JS changes instantly without rebuilding.
Can I test before publishing?
Yes! Both platforms offer testing options:
iOS: Use TestFlight for beta testing
Android: Use internal testing or closed testing tracks
You can also continue using Bloom’s instant sharing for quick testing.
What about environment variables and API keys?
After exporting:
Configure environment variables in your build profiles (EAS)
Keep sensitive keys in .env files (never commit to GitHub)
Use Expo’s secure storage for production credentials
Your Convex backend URL is automatically included in the build.
How do I handle app store fees?
Apple: 30% commission on paid apps and in-app purchases (15% for small businesses earning under $1M/year)
Google: 15% commission on first $1M, then 30% after
Free apps with no in-app purchases have no commissions.