Lean Engineer

リーンエンジニア〜効率的に実験しながら、技術を学ぶブログ

nodebrew + sentryを使っているとReactNativeのbuildができない

 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

 これで無事にビルドできるようになる。