Honmushi blog
xcode で ReactNative のビルドに失敗する時の対応2020/10/09

xcode で ReactNative のビルドに失敗する時の対応

少し前の話ですが、xcodeでReactNativeのビルドを行おうとした際にエラーが発生してしまい、ビルドが失敗する現象に出会いました。

エラーの内容とか確認しつつ、検索したら原因と解決方法がわかったので、備忘としてメモしておきます。

結論を先に言うと

原因はxcodeでビルドする際に動作する node のバージョンがおかしいことでした。 nvm ではなく homebrew で新しいバージョンのnodeをインストールすることで解決できました。

私の環境では nvm を使って、動かす node のバージョンを管理しています。 ただ、xcode の GUI によるビルドプロセス上で使われる node のバージョンは、nvmにてインストールしたものではありませんでした。homebrew でインストールした node のものになっていました。

ずっと homebrew の node についてはアップデートしていなかったので、バージョンは、0.1.1 とかになってました。それは動かなさそうですよね。

エラー

ざっくりとは const とか strict modeとかの場所でエラーが出ており、JavaScript の新しい書き方がことごとくエラーになっていました。新しいと言ってもだいぶ昔から使えるようものなので、おやっ?と思いました。

node が古そう。そう考えて調べてみた所、同様の現象を見かけたので解決を試しました。

node バージョンの確認

nvm で使っている defaultの node のバージョンは十分に新しかったのですが、xcode 上からビルドする際には nvm は利用できません。nvm で管理しているものではなく本体の node が動いていました。

すなわち最初からインストールされていたものや自分でインストールし直したもの。homebrewでインストールしたものと言ったところです。

私の場合は /usr/local/lib/node/bin にあるもので、バージョンは0.1.1とかくらいになってました。絶対動かなさそうですね。

アップデートする

homebrew を使って node をアップデートします。私は一度アンインストールしてインストールし直しました。

ざっくりとはメッセージに従い以下のコマンドを実行することになるはず。

brew install node
brew link node

途中でファイルやディレクトリの権限関連でいくつかエラーが出ました。内容を確認しつつgroupや所有者を変更することで、無事に更新できました。

homebrew で node のバージョンを上げた結果、xcode でのビルドが正常に完了するようになりました。

おわりに

cuiからのビルドとかは正常に動いていたのに、xcode でのビルドは失敗するような状態でしたので、原因見つけるのに結構苦戦してしまいました。

node のバージョン管理に nvm 使っていたので正常なものが使えていると思っていましたが、思わぬ盲点でした。 たまには homebrew で管理しているパッケージとかの管理や整理をしようと思いました。

あと homebrew で update する際、権限関連で書き込み出来ない旨のエラーが出たので、出力に注意して行いましょう。多分 ですが、mac や 以前使っていた homebrew のバージョンが古かったりすると起きるようです。

  • このエントリーをはてなブックマークに追加