https://docs.expo.dev
APIs
Environment
https://docs.expo.dev/workflow/development-mode/
__DEV__
is truthy in dev mode and falsy in prod mode
- You can toggle prod mode in web UI
- Publish is prod mode
Upgrading
- Update the version of
expo
in package.json
npm install -g expo-cli
expo-cli upgrade
expo-cli doctor
Terminology
- Project Types
- Expo Go: a limited sandbox without custom native modules. Intended for testing out Expo, not for long-term projects.
- Development Build: a build of your own app with developer tools. Supports custom native modules. Intended for production projects. Make a development build by including the
expo-dev-client
library in the project.
- Built with EAS: requires an EAS account (although you can do a “local” EAS build)
- Built with your own tools
- Build types
- Automatically configured by EAS (
eas build:configure
)
- Development: configured as a development client (which probably means loading JS from Metro)
- Preview: internal distribution
- Production: non-internal distribution (including TestFlight?)
- Commands
eas build [--local]
- runs a build thorough EAS, on their servers by default (paid), or local (free)
eas build:run -p [ios|android] [--path=]
- install a build on simulator/emulator, either from EAS or a specific local file
expo prebuild
- generates native project directories but does not build
expo run:[ios|android]
- builds and runs the development build
expo start [--ios|--android|--web]
- starts Metro
Clear Cache
yarn prebuild --clean
- removes node_modules
/ios
/android
yarn start -c
- clears bundler cache
- In Xcode, “Clean Build Folder Immediately” (necessary even if you remove the iOS folder, as the build cache is reused)
- iOS: Cmd-Ctrl-i
- Android: press
m
in Metro terminal