Expo for mobile apps
Using Bolt with Expo to create mobile apps and deploy them to app stores.
Overview
Expo is a platform that lets you build mobile apps for both iPhone and Android using the same code. When you ask Bolt to create a mobile app, it automatically uses Expo to make your app work on multiple platforms.
Bolt’s Expo integration aims to:
- Make mobile app development accessible to everyone, regardless of coding experience.
- Provide a seamless path from idea to app store, handling the complex technical setup for you.
- Give you complete control over your app’s deployment and distribution.
You can deploy to:
- The web.
- iOS: TestFlight (for testing) and the Apple App Store (for public access).
- Android: Google Play Beta (for testing) and Google Play Store (for public access).
Quick testing with Expo Go
While working on your app, you can quickly test it on your own phone using Expo Go.
- Install Expo Go.
- In your Bolt project, click Device Preview to display the QR code.
- In Expo Go, scan the QR code. The first time you do this, it will need some time to build.
Build and deploy with Expo Application Services
You need to build and deploy your app in order to:
- Thoroughly test it, including making it available for other people to test.
- Make it available to the public on app stores.
The instructions below will help you get your app from Bolt to your users’ phones. If you prefer learning by watching, check out this tutorial. Note that it assumes you already have Expo installed and set up.
Prerequisites
Before you can deploy your app, you’ll need:
- A computer with Node.js LTS and Git installed.
- An Expo account.
- For iPhone apps: an Apple Developer account.
- For Android apps: a Google Play Developer account.
Set up your development environment
After building your app with Bolt, download the code and open it in a code editor such as VS Code.
Install the EAS CLI (Expo’s command-line tool) by opening a terminal and running:
Log in to your Expo account:
Navigate to your project folder and install dependencies:
Check that everything is set up correctly:
This command will identify and help you fix any setup issues.
Configure your app
Before deploying, customize your app’s basic information:
- Open the
app.json
file in your project. - Update the
"name"
field with your app’s display name: - Update the
"slug"
field with a URL-friendly version:
Initialize your project with EAS:
Configure EAS Build:
This creates the necessary configuration files for building your app.
Deploy to web
Deploy your app as a website. This is a quick way to share your app.
- Build your web app:
- Deploy to Expo’s hosting:
- Choose a URL for your project and press
Enter
.
Your app is now live on the web. Share the URL with anyone to let them try your app in their browser.
Deploy to iOS
To get your app on iPhones, submit it to Apple’s TestFlight for testing, then to the App Store for public release.
TestFlight (testing)
Use TestFlight to share your app with testers before it’s publicly available.
Run this command:
Follow the prompts. EAS will:
- Build your app for iPhone
- Create an app listing in your Apple Developer account
- Set up a TestFlight testing group
- Submit your build for internal testing
When the build is ready, you’ll receive an email invitation to test your app through TestFlight.
App Store (public release)
Once you’re happy with your app:
- Go to App Store Connect.
- Fill in your app’s details.
- Submit for App Store review.
- Once approved, your app will be publicly available on the App Store.
Deploy to Android
To get your app onto Android devices, you’ll use Google Play Console.
Build for Android
Create a production build:
When complete, download the build file (APK or AAB) from the link provided in the CLI.
Testing
- Go to Google Play Console
- Create a new app
- Set up internal testing:
- Go to Testing > Internal testing.
- Create a release.
- Upload your build file.
- Add email addresses of people you want to test the app.
- Share the testing link with your testers.
Public release
When ready for public release:
- In Google Play Console, go to Production.
- Create a release and upload your build.
- Fill in your app’s store listing details.
- Submit for review.
- Once approved, your app will be live on Google Play.
Manage your app
Steps to update and monitor your app.
Update your app
When you make changes in Bolt and want to update your deployed app:
- Download the updated code from Bolt.
- For web updates:
- For mobile updates, rebuild and resubmit:
Monitor your app
Use Expo’s dashboard at expo.dev to:
- View build status and logs.
- Monitor app crashes and errors.
- Track app usage and performance.
Adding in-app purchases to your Expo app
If you want users to pay for some of your app features, you need to add subscription and payment functionality.
RevenueCat is a tool to power in-app purchases. They’ve provided a guide to adding RevenueCat to a Bolt Android app: How to add subscriptions to a Bolt-generated Expo app. You can also use RevenueCat in iOS apps.
Troubleshooting
How to handle common issues, and where to get help with Expo.
Common issues
Build fails: Check that all required certificates are set up in your Apple and Google Developer accounts. EAS can guide you through certificate setup.
App crashes on device: Check the error logs in your Expo dashboard. Most crashes are due to missing dependencies or platform-specific code issues.
Upload rejected: Make sure your app meets platform requirements (App Store guidelines for iOS, Google Play policies for Android).
Get help
If you have issues with Expo:
- Check the Expo documentation.
- Visit the Expo Discord community.
- Post questions in the Expo forums.
New to Expo
If you’re completely new to mobile app development, here’s what you need to know to use Expo with Bolt.
Expo is a platform that simplifies mobile app development by handling the complex technical setup for you. Instead of learning platform-specific languages (Swift for iPhone, Kotlin for Android), you can build apps that work on both platforms using web technologies.
Benefits of using Expo:
- Cross-platform: write once, run on iPhone, Android, and web.
- Fast iteration: see changes immediately without rebuilding.
- Simplified deployment: EAS handles the complex build and submission process.
Key terms:
- Build: Creating the app file that can be installed on devices
- TestFlight: Apple’s system for testing iPhone apps before they go live
- Play Console: Google’s system for managing Android apps
- EAS Expo Application Services. This is the Expo cloud platform that builds and manages your apps.
Resources to learn more about Expo:
- Expo documentation: comprehensive guides and API reference.
- Expo blog: latest updates and best practices.
- React Native basics: understand the underlying technology.