プログラム関係の備忘録。技術系記事1000記事以上を目指すブログ

react-nativeでの実機確認時に発生したエラー

以下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):
ln -s $(which node) /usr/local/bin/node
That should put a symlink to node somewhere in the PATH that sh uses. If it already exists, I’m stumped.

https://github.com/realm/realm-js/issues/1448
ln -s $(which node) /usr/local/bin/node

正直よく分からないけど、シンボリックリンクを貼ることで見つけにいくことができるようになったらしい。

その他

実機をコマンドラインから起動する場合
http://makoto1212.hatenablog.com/entry/2018/05/02/000637