apps/expo-go/README.md
[!TIP] If you just want to install Expo Go on a simulator or device, you do not need to build it from source. Instead, go to expo.dev/go.
To build Expo Go for development of it, follow the instructions in the section below.
If you want to contribute to the Expo SDK, use the Bare Expo app for developing and testing your changes (unless your changes are specific to the Expo Go app).
Please check with us before putting work into a Pull Request for Expo Go! The best place to talk to us is on Discord at https://chat.expo.dev.
Disclaimers:
If you want to build a standalone app that has a custom icon and name, use EAS Build. You're in the wrong place and you shouldn't need to build Expo Go from source.
If you need to make native code changes to your Expo project, such as adding custom native modules, create a development build. You're in the wrong place and you shouldn't need to build Expo Go from source.
Note: We support building Expo Go only on macOS.
git clone --recurse-submodules).brew bundle in the root directory.yarn in the root directory.yarn setup:native in the root directory.yarn build in the packages/expo directory.Go to the react-native-lab/react-native directory and run yarn install to install its dependencies.
You can build the React Native Android dep using ./gradlew :packages:react-native:ReactAndroid:buildCMakeDebug in react-native-lab/react-native directory. This is optional because React Native will be built anyway when you build Expo Go, but can help to narrow down a potential issue surface area.
For Android, run ./gradlew app:assembleDebug in the apps/expo-go/android directory.
For iOS:
pod install in the apps/expo-go/ios directoryios/Exponent.xcworkspace in Xcode.cd apps/native-component-listEXPO_SDK_VERSION=UNVERSIONED npx expo start --clearUse the Expo Go app that you built in the previous step to scan the QR code and open the Native Component List, or hit i or a in that window to open it in Expo Go.
find . -name ".cxx" -type d -prune -exec rm -rf '{}' + which clears .cxx build artifacts. Alternatively, use the "nuke" approach below../gradlew clean in the apps/expo-go/android directory.git submodule foreach --recursive git clean -xfd and / or git clean -xfd which removes all untracked files so you need to run the setup script ./scripts/download-dependencies.sh again and building then takes a bit longer - but this approach appears to be effective.