以下3点で少しハマったのでメモしておきます。
①react-native run-iosではシュミレータが起動するがxcode上でのrunでこける
②シュミレータでの起動はうまくいくが実機でこける
③特定のパッケージを用いた場合に再びnode:command not found
それぞれについて以下の作業で解消することができました。
①react-native run-iosではシュミレータが起動するがxcode上でのrunでこける
node.jsのバイナリが見つからないというエラー
error: Can't find 'node' binary to build React Native bundle
純粋にnode.jsをインストールしたのではなく、nodebrewやnvmを使ってnodeをインストールしている際に発生する模様
nodeのパスを調べる
$ which node
プロダクト名>TARGETS>Build Phases>Bundle React Native code and imagesのパスを修正する
修正前
export NODE_BINARY=node
修正後
export NODE_BINARY=”先ほど調べたパス”
②シュミレータでの起動はうまくいくが実機でこける
証明書関連の解説
以下のサイトがとてもわかりやすい
https://i-app-tec.com/ios/apply-application.html
identifier〜といったエラーでbuildが失敗する場合、Signing、Team、ProvisioningProfileあたりをきちんと見直してみる
③特定のパッケージを用いた場合に再びnode:command not found
私の場合はRealmを使う際に、コマンドラインからの実行時はbuildが通る(react-native run-ios)しかし、xcodeでbuild時にエラーが発生するという事象が起こっていました。
/Users/***/Library/Developer/Xcode/DerivedData/***-eetorntugtwsrnaedwpdvdhuwvoa/Build/Intermediates.noindex/Pods.build/Debug-iphonesimulator/RealmJS.build/Script-E5F3F9F5196957E2E72E143BA53F523C.sh: line 2: node: command not found
Command PhaseScriptExecution failed with a nonzero exit code
①の対応で解決したはずであったため、かなりハマりました。
結果的には以下のQAに行き着き、その通りにやってみると解決。
Different approach then, try (from your usual terminal where node is working):
https://github.com/realm/realm-js/issues/1448
ln -s $(which node) /usr/local/bin/node
That should put a symlink to node somewhere in thePATH
thatsh
uses. If it already exists, I’m stumped.
ln -s $(which node) /usr/local/bin/node
正直よく分からないけど、シンボリックリンクを貼ることで見つけにいくことができるようになったらしい。
その他
実機をコマンドラインから起動する場合
http://makoto1212.hatenablog.com/entry/2018/05/02/000637