Closed8

mac mini 2020 M1 に React Native の開発環境を作る

yaedayaeda

node, nodebrew

node は nodebrew で管理しているので brew install nodebrew で nodebrew をインストールする.

nodeは v15.3 から apple silicon 対応している様子なので v15 の最新を入れることにする.

nodebrew ls-remote すると v15.6.0 があるので nodebrew install v15.6.0 しようとすると以下のようなエラーが出る.

Error: Darwin arm64 is not supported. at /opt/homebrew/bin/nodebrew line 743.

調べるとnodebrewのスクリプトを書き換えるなどいろんな情報が出てきたけど,結果としは何もせず nodebrew compile v15.6.0 でソースからのコンパイルができた.

何もせず,は嘘だ.ソースコードのダウンロードに失敗したので mkdir ~/.nodebew/src した.

コンパイルに結構時間かかるが mac mini は非常に静かだった.コンパイルが完了すると nodebrew use v15.6.0 できるようになった.

yaedayaeda

nodebrew v1.1 で apple silicon 対応が入り,node v16 から apple silicon 用 pre build も用意された.ということでこれら最新環境ではソースコンパイルせず, nodebrew install v16.0.0 でイケる.

yaedayaeda

cocoapods

冒頭の記事にもある通り, cocoapods をインストールしようとすると ffi エラーが起きる.
x86_64 モードで cocoapods と ffi をインストールする.

arch -x86_64 gem install --user cocoapods ffi

実行

arch -x86_64 npx pod-install
yaedayaeda

build, yarn run ios

yarn run ios するとシミュレーターは立ち上がるがビルドに失敗する.
Xcode開いてエラー内容を見ながら修正.

基本的に冒頭の記事通りに Build Active Architecture OnlyNo にするのと Excluded Architectures (EXCLUDED_ARCHS)arm64 を入れる対応が必要.

別途 Flipper でビルドがコケるのでこちらを参考に修正.

yaedayaeda

simulator ではなく native app として動かす

Xcode 上でビルドターゲットをMy Mac(Designed for iPad)とすると Native App として動かせる.
Bluetooth も実機同様に使える.素敵.

tsuyogorotsuyogoro

2021 4月時点での最新情報です。

基本的に↑と同じですが、いくつかのツールがM1 native supportedになってるので、少し簡単になってると思います。

iOS

Android

このスクラップは2021/01/18にクローズされました