React NativeアプリをXcodeでビルドしたら Command PhaseScriptExecution failed with a nonzero exit code というエラーが出たので解決した
React Nativeで作成しているiOSアプリをXcodeでビルドしたら
Node found at: /usr/local/bin/node dyld[39998]: Library not loaded: /usr/local/opt/icu4c/lib/libicui18n.71.dylib Referenced from: <D092FE6D-5639-3BBF-A0A6-1CE0F725CADB> /usr/local/Cellar/node/18.10.0/bin/node ... Command PhaseScriptExecution failed with a nonzero exit code
というエラーが出てビルド通らなかった。
libicui18n.71.dylibがロードされていないとあるが、これは icu4c
という brew でインストールしているパッケージが関係しているので確認してみる。
brew info icu4c
するとこのようになっていた。
==> icu4c: stable 72.1 (bottled) [keg-only]
エラーメッセージでは71が必要とされているけど、72がインストールされているので71をインストールしてみる。
// 該当ディレクトリに移動 cd $(brew --prefix)/Homebrew/Library/Taps/homebrew/homebrew-core/Formula // 該当バージョンまで戻したいのでコミットログ確認 git log --follow icu4c.rb // 該当のコミットにチェクアウト git checkout e3317b86c11c644e88c762e03eb7b310c3337587 // チェックアウトしたバージョンのものをインストール brew reinstall ./icu4c.rb // 確認 brew info icu4c brew list icu4c --versions // ブランチ戻す git checkout master
これで再度ビルドが通るようになった。原因はbrew upgradeなどでバージョンが上がってしまっていたことが考えられるっぽい