About Expo and EAS
Vibely’s mobile apps are built on Expo — the framework that lets you write one React Native codebase and ship it to iOS and Android. EAS (Expo Application Services) is Expo’s build and submit infrastructure. Instead of needing a Mac to build for iOS (Apple’s normal requirement), EAS builds in the cloud — works for iOS and Android from any computer. Vibely drives EAS on your behalf. You connect your Expo account once; from there, every build, TestFlight upload, Play submission, and OTA update is a button click in Vibely. You don’t need to learn EAS or writeeas.json config. The agent set it up correctly when your project was created.
Prerequisites
| Platform | What you need | Cost |
|---|---|---|
| iOS | Apple Developer Program account | $99 / year |
| Android | Google Play Console account | $25 (one-time) |
| Both | An Expo account (for EAS) | Sign up free |
Your first build
Pick a build profile
Every project ships with three EAS profiles ready to use:
development— installable alongside Expo Go; full dev menu and hot reload.preview— internal distribution build for TestFlight / Play Internal; no dev menu.production— store-ready, signed, optimised.
Configure signing
EAS can manage iOS certificates and Android keystores for you. Click Use EAS-managed credentials unless you have a specific reason not to. EAS rotates and renews them automatically — no expired-cert surprises.
Run the build
Click Build for the platform + profile you want. iOS builds take 12–18 minutes; Android 8–12 minutes. Vibely streams the build log live, so you see exactly what’s happening.
Distribute
- iOS preview → automatically uploaded to TestFlight; testers get an email.
- Android preview → uploaded to Play Console internal testing track.
- Production → manual submit step (see Submitting to the stores).
Features
TestFlight (iOS)
After your first preview build:- The app appears in App Store Connect → TestFlight under your team
- Add internal testers (up to 100) by email — they get the build instantly, no review needed
- For external testers (up to 10K), the first build of each version requires Apple’s beta-app review — usually under 24 hours
- Testers install via the TestFlight app on their device
Play Internal Testing (Android)
Same pattern, faster:- The app appears in Play Console → Testing → Internal testing
- Add testers by Google account email or a CSV email list
- They get an opt-in URL; once opted in, the app shows up in their Play Store
- No Google review for internal builds
Store submission, walked through
When you’re ready for production:- Run a
productionprofile build - EAS auto-uploads to App Store Connect or Play Console
- Fill out the listing details (name, description, screenshots, privacy policy URL, support URL) — Vibely shows you exactly what each store requires
- Submit for review
Why your app is less likely to get rejected
Vibely codes the things Apple and Play reviewers consistently flag — so you don’t get blindsided after a 48-hour wait:- Permissions explained. Every permission your app requests has a clear
NSCameraUsageDescription(etc.) string written at the moment the permission is added — not as a// TODOlater. - No mock content. Placeholder text and lorem ipsum get caught before you suggest shipping.
- No paywalled-only flows on iOS. If your app can be tried without an account, Apple wants a clear path to do so. The agent flags this if you say “ship it” with no anonymous path.
- Web checkout never gates digital goods. Stripe / Razorpay are fine for physical or real-world services, but for unlocking app features Vibely uses in-app purchases.
OTA updates — ship without store review
For anything that’s just JavaScript or assets (the vast majority of changes), Vibely ships via EAS Update — your users get the new code on next app launch, no store review, no waiting. Prompt “ship the latest changes” and the agent picks the right update mode:- OTA update — pure JS/asset changes. Live in minutes.
- Native update — changes to
app.json, permissions, plugins, native modules. Requires a new build + store submission.
Instant rollbacks
OTA updates can be rolled back instantly from the EAS dashboard. If a release goes wrong, the previous version is one click away — users get the rollback on their next app open. Native rollbacks are slower (re-submit the previous build, wait for review). Test on TestFlight / Play Internal before promoting to production.Build profiles you can customise
development, preview, and production are the defaults — perfect for most apps. If you need more (e.g. staging, enterprise-distribution, dev-with-mock-api), just tell the agent:
“Add a staging build profile that points at the staging Supabase.”
The agent updates eas.json and the new profile is selectable on the next build.
Code signing, managed
For most teams, EAS-managed credentials is the right answer. EAS:- Generates iOS distribution certificates and provisioning profiles on first build
- Generates and stores Android upload keys
- Rotates and renews everything automatically
Limits
- iOS and Android publishing require their respective developer accounts (25 one-time). No way around this — those are Apple’s and Google’s fees, not Vibely’s.
- Some Apple features (App Clips, widgets, push providers other than Expo’s) require a custom EAS development build (one-time setup; everything still hot-reloads after).
- In-app purchases must use StoreKit / Play Billing or RevenueCat — web checkout for digital goods is against store policy, see Native → IAP.
