Setting up the environment
The Android emulator now works on the Apple M1 chip (Apple Silicon), but only in preview mode. This means that not all functionality is available. As shown by developers, the emulator on M1 can render 8.94 frames with one watt of power, while the Intel MacBook Pro renders 1.38 frames per watt. There’s no denying it; macOS M1 hardware kicks.
Setup for iOS needs:
- Node (with NVM)
- Watchman
brew install watchman
- Xcode (install from the App Store)
- Xcode Command Line Tools
xcode-select --install
- Accept the Software License for Xcode
sudo xcodebuild -license
. It'll prompt you anyway when you run Xcode for the first time. - CocoaPods
sudo gem install cocoapods
Homebrew
Install Homebrew if you don't have it installed already
Android Emulator For Apple M1
Node LTS with NVM
iOS
- Open Terminal / iTerm with Rosetta (Get Info > Open using Rosetta)
- Prefix the CocoaPods related commands with
arch -x86_64
Android Studio Emulator Mac M1
Android
- Install JDK 8
brew install --cask adoptopenjdk/openjdk/adoptopenjdk8
- Install Android Studio
- Install Android Emulator for M1
The Android Emulator doesn't work out of the box yet. Luckily, there is a Preview build by Google that supports Apple Silicon M1 chip based MacBooks. You'll have to download and install it separately. Most things work.
Troubleshooting
command not found
forbrew
ornvm
. Make sure you have a~/.zshrc
file. On a fresh new M1 MacBook, there is no~/.zshrc
or~/.zprofile
created and the$PATH
doesn't get updated because of it. Create a~/.zshrc
file and run the commands to install Homebrew and NVM again.
Add this to you Podfile
Two options:
- Run on a different port
react-native start --port=8088
- OR find out what program is using 8081
sudo lsof -i :8081
and kill itkill -9 1234
incorrect architecture 'x86_64' errors
add this to the Podfile
run pod install
afterwards