iOS development requires macOS. If you’re on Windows or Linux, skip to Android Setup.
Prerequisites
Before setting up iOS, ensure you have:- ✅ Prerequisites installed (Node.js, Ruby)
- ✅ Dependencies installed (
yarn install && yarn setup) - 💻 macOS (iOS development is only possible on macOS)
Installation Steps
Install Xcode
Download and install Xcode from the Mac App Store:
- Open the Mac App Store
- Search for “Xcode”
- Click Install (this is a large download, ~10-15 GB)
- Wait for installation to complete
- Accept the license agreement
- Install additional components
- Set up command line tools
You can also install Xcode Command Line Tools separately:
Install Watchman
Watchman is a file watching service used by React Native’s Metro bundler:Verify installation:
Install Bundler
Bundler manages Ruby dependencies (Fastlane, CocoaPods):This runs
bundle install using the Gemfile.What Gets Installed
The CocoaPods installation installs numerous iOS dependencies:- Firebase - Analytics, messaging, and remote config
- React Native core - RN iOS framework
- Native modules - All React Native modules (camera, storage, etc.)
- Reanimated - Animation library native code
- Skia - Graphics rendering engine
- Various pods - Networking, crypto, Bluetooth, and more
Verify iOS Setup
CocoaPods Configuration
Rainbow’sios/Podfile has specific configurations:
Platform Version
Modular Headers
Firebase pods use modular headers:Expo Autolinking
Expo modules are auto-linked:VisionCamera Configuration
Location API is disabled:Troubleshooting
Pod install fails with Ruby version error
Pod install fails with Ruby version error
Make sure you’re using the correct Ruby version (3.4.8):Use rbenv or rvm to install Ruby 3.4.8 (see Prerequisites).
CocoaPods: Unable to find a specification
CocoaPods: Unable to find a specification
Update your CocoaPods repo:
Xcode build fails with 'Command PhaseScriptExecution failed'
Xcode build fails with 'Command PhaseScriptExecution failed'
This often means Node.js isn’t in Xcode’s PATH. The build scripts need
node.- Ensure you ran
nvm usebefore opening Xcode - Close Xcode completely
- Open Xcode from terminal:
'Unable to boot simulator' error
'Unable to boot simulator' error
The iOS Simulator might be corrupted. Try:
- Quit Xcode and Simulator
- Reset simulators:
- Restart Xcode
Pods are out of date
Pods are out of date
If you get outdated pod warnings:
Flipper build issues
Flipper build issues
Flipper can cause build issues. Try installing without Flipper:
Clean iOS build
Clean iOS build
If you encounter persistent build issues, clean everything:In Xcode:
- Product → Clean Build Folder (Cmd+Shift+K)
- Close Xcode
- Delete derived data:
- Reopen Xcode and rebuild
Gemfile Dependencies
TheGemfile specifies:
- fastlane - iOS build automation
- cocoapods - Dependency manager (excludes problematic versions 1.15.0/1.15.1)
- activesupport - Rails utilities
- bigdecimal - Required for Ruby 3.4+
Alternative Installation Methods
JavaScript Core (JSC) Instead of Hermes
By default, Rainbow uses Hermes. To use JSC:USE_HERMES=NO during pod install.
Skip Flipper
For faster builds without the Flipper debugger:Next Steps
Android Setup
Set up Android development (optional)
Running the App
Build and run Rainbow on iOS