はじめに
M1 Mac対応していない依存関係があり、苦労されている方も多いかと思いますので、現時点でうまくいっている方法をまとめております。
ただし、時間が経つごとに状況が変化しますので、ご自身でもよくお調べになった上で実行いただくようお願いいたします。
前提
- Mac購入後、全くの初期状態からスタート
- MacOS Big Sur(11.2.3)
- Rosetta2インストール済み
- 実行するコマンドは基本arm64のターミナルで実行する
- Rosetta2(x86_64)ターミナルで実行するコマンドについてはその旨記載している。
- 基本的に全部 brewで管理する。
ターミナルのRosetta2切り替え
Finderからアプリ名を右クリックして「情報」から切り替えることができる。
確認
ターミナルでuname -a
コマンドを実行することで、現在の状態が確認できる。
- arm64: M1
- x86_64: Rosetta2
uname -a
# Darwin Kernel Version 20.3.0... x86_64
Homebrewのインストール
2021/2/5にAppleSilicon(M1)がサポートされたバージョンであるHomebrew3.0.0がリリースされた。
が、フォーミュラによっては未対応なので、Rosseta2とうまく併用する必要あり。
公式からインストールする。
公式サイトにアクセスすると、コマンドが表示されるのでターミナルにコピペして実行。インストールする。
パスを通す
インストールの最後にパスを通すよう言われるので、その通りコマンド実行する。
==> Next steps:
- Add Homebrew to your PATH in /Users/shin/.zprofile:
echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> /Users/shin/.zprofile
eval "$(/opt/homebrew/bin/brew shellenv)"
- Run `brew help` to get started
~$ echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> /Users/shin/.zprofile
~$ eval "$(/opt/homebrew/bin/brew shellenv)"
動作確認
~$ brew -v
Homebrew 3.1.2
バージョンが表示されればOK。
Nodeのインストール
nodeenv を使用する。
brew install nodenv
touch .zshrc
パスを通す
.zshrc
eval "$(nodenv init -)"
Nodeのインストール
Nodeはv15.3.x 以降M1対応。
ターミナルを Rosetta2 に切り替えてインストール する。 (インストール後はarm64に戻してOK)
nodenv install 15.9.0
# 確認
nodenv versions
使用するNodeバージョンを指定
nodenv local 15.9.0
# 確認
node -v
npm -v
yarnのインストール
npm i -g yarn
Watchmanのインストール
brew install watchman
JDKのインストール
brew install --cask adoptopenjdk/openjdk/adoptopenjdk8
Cocoapodsのインストール
brew install cocoapods
※ sudo gen install cocoapods
はインストール自体は可能だがpod install
で失敗する。homebrewだとうまくいく。
Xcodeのインストール
- App Store からインストールし、起動する
- Preferences > Locations > Command Line Tools を設定する
Android Studioのインストール
- 公式サイトからインストールし、起動する。
インストールウィザード
初回起動時のインストールウィザードでは、 「Custom」を選択する。
以下の3つにチェックを入れ >「Next」
– Android SDK
– Android SDK Platform
– Android Virtual Device
SDK Manager
- Configure > SDK Manager を選択
- “SDK Platforms” > “Show Package Details”にチェックを入れる
- 以下にチェックを入れインストールする
- Android SDK Platform 29
- Intel x86 Atom_64 System Image
- “SDK Tools” > “Show Package Details”にチェックを入れる
- 29.0.2 にチェックを入れインストールする
AVD Manager
arm64対応のエミュレータを設定する。
通常のエミュレータでは、M1でうまく動かない場合があるため。
端末
- Pxcel3 など新しめのものを選択する
System Image
- “Other Image”タブ を選択
- APIレベル『S』の (Google APIs)を選択しインストールする
エミュレータが認識されない/ OFFLINE エラーになる場合
Android emulator-5554 offline
となってうまく起動できない場合がある。その場合、以下の記事を参考にシステムイメージのリビジョンを変更する。
【M1 mac】Android Studioでインストールしたエミュレータが応答しない – Qiitahttps://qiita.com
パスを通す
zshrc
export ANDROID_HOME=$HOME/Library/Android/sdk
export PATH=$PATH:$ANDROID_HOME/emulator
export PATH=$PATH:$ANDROID_HOME/tools
export PATH=$PATH:$ANDROID_HOME/tools/bin
export PATH=$PATH:$ANDROID_HOME/platform-tools
サンプルプロジェクトを起動する
npx react-native init AwesomeProject
# iOS
npx react-native run-ios
# Android
npx react-native run-android
# 参考
- https://medium.com/mobile-app-development-publication/my-journey-to-setup-android-emulator-for-m1-macbook-pro-b8365321b3e7
- https://blog.mktia.com/nodejs-on-mac-m1/
うまく起動できれば、完了!