The Short Answer
No
Expo Go is strictly a development and testing tool.
It was never designed for end-user distribution.
Some developers wonder if they can skip the complexity of app stores by simply having users scan a QR code to access their Expo app. While this sounds appealing, Expo Go is fundamentally incompatible with production distribution.
Why Expo Go Doesn't Work for Production
| Limitation |
What This Means |
| No Custom Branding |
Users see "Expo Go" as the app, not YOUR app icon, name, or splash screen |
| Security Risk |
Anyone with the QR code can access your app during development |
| SDK Version Lock-in |
When Expo updates their SDK, your app can break without warning |
| No Push Notifications |
Remote push notifications don't work in Expo Go (only local/in-app) |
| No Deep Linking |
iOS Universal Links and Android App Links require native configuration |
| Limited Native Modules |
Can only use libraries pre-bundled in Expo Go; no custom native code |
| Not Standalone |
Users must first download Expo Go, THEN scan your code - two-step friction |
| Unprofessional Appearance |
Looks like a prototype or development build, not a real product |
Critical Understanding
Expo Go exists solely to speed up development by letting developers see code changes instantly on a physical device. It's the equivalent of a "preview mode" - extremely useful for building, but never intended for real users.
Alternatives to App Stores
If you genuinely want to distribute your app without going through the App Store or Google Play, here are your options:
Option 1: Internal Distribution (APK / Ad Hoc)
Build a standalone version of your app and share it directly with users.
A Android (APK)
Build an APK file and share via link, email, or QR code. Users download and install directly on their device.
- No Google Play required
- Users see "install from unknown sources" warning
- Unlimited devices
- Free to distribute
B iOS (Ad Hoc)
Register device UDIDs with your Apple Developer account, build with ad hoc provisioning profile, share .ipa file.
- Requires Apple Developer account ($99/year)
- Must register each device's UDID manually
- Limited to 100 devices per year
- More complex setup
Pros
- Instant distribution (no 7-day review)
- Full control over who gets access
- Can push OTA updates instantly
- Great for beta testing
- Works for enterprise/internal apps
Cons
- iOS has strict 100-device limit
- Android users see security warnings
- No app store discoverability
- Manual UDID registration for iOS
- Requires Apple Developer fee
Option 2: Progressive Web App (PWA)
Build a web version of your app that users can "install" to their home screen directly from the browser.
Pros
- No app store at all
- Works on any device with a browser
- Easy to update (just deploy website)
- No Apple/Google fees
- Single codebase for all platforms
Cons
- Limited native features (camera, sensors)
- iOS Safari has many PWA limitations
- Push notifications limited on iOS
- Doesn't feel as "native" as real apps
- No offline support for complex features
Option 3: Custom Development Client
Build your own version of Expo Go with your branding and native modules, distribute once, then push JavaScript updates via QR code.
How It Works
- Build a custom development client with
expo-dev-client
- Distribute the build once to your team (via APK or ad hoc)
- Team scans QR codes from Metro bundler for live JavaScript updates
- Works like Expo Go but supports your custom native code
Best for: Distributed development teams needing fast iteration, not end-user production.
Option 4: Enterprise Distribution Programs
For large organizations distributing to employees only.
| Program |
Cost |
Limit |
Use Case |
| Apple Developer Enterprise Program |
$299/year |
Unlimited employees |
Internal apps for your company only |
| Google Play Private Track |
$25 one-time |
Unlimited |
Private apps for managed Google accounts |
Warning About Enterprise Distribution
Apple is extremely strict about the Enterprise Program. It's meant ONLY for internal employee apps. Using it to distribute to customers (circumventing the App Store) can result in your account being permanently banned and your apps being remotely disabled on all devices.
Over-The-Air (OTA) Updates
Regardless of how you distribute your app, you can use OTA updates to push JavaScript and asset changes instantly.
npx expo install expo-updates
eas update --branch production
What OTA CAN Update
- JavaScript code changes
- Images and assets
- Styling and layout
- Bug fixes in JS logic
- New features (if JS-only)
What OTA CANNOT Update
- Native code changes
- New native modules
- App permissions
- App icon or splash screen
- Fundamental app purpose (Apple restricts this)
Who Actually Skips App Stores?
| Use Case |
Viable? |
Best Approach |
| Internal company apps |
Yes |
Enterprise distribution or internal APK/ad hoc |
| Beta testing |
Yes |
TestFlight (iOS) + Internal APK (Android) |
| Client demos |
Yes |
Custom dev client or internal distribution |
| B2B with few customers |
Maybe |
Works if you have fewer than 100 iOS users |
| Consumer product |
No |
Need app store for discoverability and trust |
| Subscription business |
Risky |
Payments are complex outside stores |
The Real Trade-offs
What You'd Lose (App Store Advantages)
- Discoverability - People search app stores; they won't find you
- Trust - Users trust apps from official stores
- Easy Payments - In-app purchases just work
- Auto Updates - Users get updates automatically
- Reviews/Ratings - Social proof matters for downloads
- Cross-device sync - App Store handles family sharing, device transfers
What You'd Gain (Avoiding Stores)
- No 30% fee on in-app purchases
- No approval delays - Ship updates instantly
- No content restrictions - Apple's rules are strict
- Full control over distribution and pricing
- No rejection risk - Apple can reject apps arbitrarily
- Direct customer relationship - No middleman
Distribution Method Comparison
| Feature |
Expo Go |
Custom Dev Client |
Internal Distribution |
App Store |
| QR code access |
Dev only |
Dev only |
No |
No |
| Custom branding |
No |
Yes |
Yes |
Yes |
| Custom native code |
No |
Yes |
Yes |
Yes |
| Push notifications |
No |
Yes |
Yes |
Yes |
| OTA updates |
N/A |
Dev |
Yes |
Yes |
| Public distribution |
No |
No |
No |
Yes |
| Annual cost (iOS) |
Free |
$99 |
$99 |
$99 |
| Device limit (iOS) |
N/A |
100 |
100 |
Unlimited |
| Setup complexity |
0 min |
30 min |
1-2 hrs |
1-2 weeks |
| Best for |
Prototyping |
Team dev |
Beta/Enterprise |
Production |
Recommendation for Consumer Apps (10 to Win)
Use App Stores for Production
For consumer apps with subscription models, app stores are likely the right choice because:
- Discoverability is essential - You need people to find your app to grow
- Subscription payments work seamlessly - Apple/Google handle billing, receipts, renewals
- Users trust official stores - Many won't install "unknown source" apps
- The 100-device iOS limit is too restrictive - Consumer apps need unlimited reach
- Reviews and ratings drive downloads - No alternative for social proof
Where Internal Distribution Still Makes Sense
- Beta testing - Test with friends and family before App Store launch
- VIP early access - Give select users builds before public release
- Enterprise/team licensing - Sell to companies for internal use
- Development testing - Test on real devices during development
Quick Reference: EAS Build Commands
If you do need to use internal distribution for beta testing or enterprise:
npm install -g eas-cli
eas login
eas build:configure
eas build -p android --profile preview
eas device:create
eas build -p ios --profile preview
eas.json Configuration for Internal Distribution
{
"build": {
"preview": {
"distribution": "internal",
"android": {
"buildType": "apk"
},
"ios": {
"simulator": false
}
}
}
}
Key Resources
Bottom Line
For production apps without app stores, use EAS Build with internal distribution (APK for Android, ad hoc for iOS) combined with OTA updates for instant patches. Expo Go QR codes are development-only and should never be used for end-user distribution.