ReactNativeのクラッシュログの収集にはsentry.ioを使っている。無料利用可能であり、個人開発にはぴったりだ。もちろん有料にすれば、さらに十分な機能を利用することができる。
さて、ReactNativeで使うnodeをnodebrewに移行した。nodeのバージョン管理を行うためだ。すると、ReactNativeのビルドをしようとするとエラーがでた。Debugビルドはうまくいくけど、Releaseビルドが上手くいかない。
env: node: No such file or directory
どうも、sentryが上手く動いてない。調べてみると、sentryのドキュメントに、nvmを使っていると問題が起きるよと書いてあるのだが、nvmは使ってない。ただ、そのドキュメントを読んでいたら、どうもnodeのパスが通ってないみたいだ。ということで、nodebrewを使うときに.zshenvに書いたパスをXcodeのスクリプトにも書いてみる。修正箇所は二箇所だ。
Bundle React Native code and imagesを以下にように書き換える
export SENTRY_PROPERTIES=sentry.properties export PATH=$HOME/.nodebrew/current/bin:$PATH export NODE_BINARY=node ../node_modules/@sentry/cli/bin/sentry-cli react-native xcode ../node_modules/react-native/scripts/react-native-xcode.sh
Upload Debug Symbols to Sentryを以下にように書き換える
export SENTRY_PROPERTIES=sentry.properties export PATH=$HOME/.nodebrew/current/bin:$PATH ../node_modules/@sentry/cli/bin/sentry-cli upload-dsym
これで無事にビルドできるようになる。