Prerequisites
- macOS with Xcode 16 or later
- CocoaPods:
gem install cocoapods - Yarn:
npm install -g yarn - cmake and ninja (for building the Hermes JS engine):
brew bundle from the vibracode-mobile root installs cmake, ninja, and other native build dependencies declared in the Brewfile.
Setup
Clone the repository
The mobile app depends on submodules — React Native is built from source and the Expo template is included as a submodule. You must use
--recurse-submodules.Configure the mobile environment
Copy the example env file and fill in your values:At minimum you need:Set
EXPO_PUBLIC_V0_API_URL and EXPO_PUBLIC_API_URL to the URL of your running backend. Use http://localhost:3000 for local development.Android build
Android builds work on macOS, Linux, or Windows:android/app/build/outputs/apk/debug/.
Troubleshooting
| Problem | Fix |
|---|---|
| SHA-1 errors or symlink errors during build | rm -rf ./react-native-lab/react-native/node_modules then re-run yarn install in that directory |
C++ build errors (.cxx directory issues) | find . -name ".cxx" -type d -prune -exec rm -rf '{}' + then rebuild |
| Everything broken after a rebase or submodule change | git submodule foreach --recursive git clean -xfd then re-run all setup steps from yarn install |
Project structure
The key directories insidevibracode-mobile/apps/expo-go/ are:
ios/Client/Menu/ is written in Objective-C and uses Texture (AsyncDisplayKit) for off-main-thread rendering.
Next steps
- Backend setup — make sure the backend is running before you connect the app
- Environment variables reference — full list of mobile env vars