build-mobile-app
Build and run mobile
The app needs a custom dev client — it registers the com.opensteer.mobile scheme the OAuth
callbacks return to, which Expo Go cannot do. Building one also generates ios/ and android/
from app.config.ts; neither directory is tracked.
iPhone Duo support requires Xcode 27.1 and an iOS 27.1 runtime. Expo's generated scene lifecycle owns startup and links; the configuration keeps one scene. Build and export checks alone do not qualify folding, native OAuth or notification delivery. Use cheap affected tests first, and reuse one journey per user-facing flow when native acceptance is needed. Native checks use the reserved VM/device workflow in Testing.
pnpm --filter @opensteer/mobile exec expo run:ios --device "iPhone 17 Pro"
pnpm --filter @opensteer/mobile exec expo run:android
Pass --configuration Release to see the app as it ships: a Debug build runs the development
overlay and Metro's own timing, and neither is what a person gets.