- Run
npm installto install dependencies - Run
npx expo install expoto setup Expo
- Open
app.jsonand update:bundleIdentifier(iOS) /package(Android) to your desired bundle IDnameanddisplayNameto your app nameruntimeVersionto use the app version policy for cloud updates:"runtimeVersion": { "policy": "appVersion" }
- Already integrated
- Setup steps:
- Create a Clerk account and project
- Enable Sign In with Email authentication
- Get your Clerk keys (publishableKey)
- Add to your environment variables:
CLERK_PUBLISHABLE_KEY=your_key_here - To ensure magic email signin/signup works:
- Go to bolt.new and ask it to create a simple redirect page like the one given in the code snippet.
- Replace
tbdndin the HTML code with the scheme name of your app fromapp.json. - Deploy it via Netlify from bolt itself and replace the URL given by bolt/netlify with
https://candid-narwhal-0e73f4.netlify.app. - Make sure to not to put this setup in the end of docs, but where we tell users/devs to setup Clerk.
- Here is the sample code for the redirect page:
<!DOCTYPE html> <html> <head> <title>Redirecting...</title> <script> window.location.href = 'tbdnd://auth' + window.location.search; </script> </head> <body> <p>Redirecting to app...</p> </body> </html>
- Already integrated
- Setup steps:
- Create a RevenueCat account and project
- Configure your products in App Store Connect and RevenueCat
- Configure paywall to present in RevenueCat
- Ensure bundle ID matches your app's bundle ID
- Get your API keys
- Add to your environment variables:
REVENUECAT_PUBLIC_SDK_KEY=your_key_here
- Already configured with Expo OTA
- Local Development:
- iOS:
npx expo run:ios --device - Android:
npx expo run:android --device
- iOS:
- EAS Build & Preview:
// Create preview build eas build --profile preview --platform ios // Push OTA update to preview channel eas update --channel preview --message "Your update message"
- Ensure you have Expo CLI installed globally:
npm install -g expo-cli - For iOS development, Xcode is required
- For Android development, Android Studio is required
- Keep your environment variables secure and never commit them to version control
- Regular OTA updates can be pushed without rebuilding the entire app
- Use different channels (preview, production) for different deployment stages
- If builds fail, ensure all environment variables are properly set
- For iOS builds, verify your Apple Developer account is properly configured
- For Android builds, ensure your keystore information is correctly set up
- If you see an error related to RevenueCat, such as "There is an issue with your configuration. Check the underlying error for more details. There's a problem with your configuration. None of the products registered in the RevenueCat dashboard could be fetched from App Store Connect (or the StoreKit Configuration file if one is being used).", ensure you have set up your products in App Store Connect and RevenueCat, and that your bundle ID matches in both places. To resolve this issue, follow these steps:
- Create subscription products inside App Store Connect and Google Play Store.
- Follow the RevenueCat guide to connect to App Store and Google Play Store.
- Import product IDs from App Store and Google Play Store in RevenueCat.
- Attach them to entitlements, then create offerings.
- Add a paywall to offerings. Ensure to rebuild the app locally or via EAS after making any changes in app.json like bundle ID.
CLERK_PUBLISHABLE_KEYREVENUECAT_PUBLIC_SDK_KEY