TL;DR
設定が二箇所で必要で忘れてつまづいたのでメモ
-
App.js
にPublic DNS -
app.json
にorganization, project, authToken
前提
- dev環境とprod環境を
app.json
ファイルを切り替える構成 - Sentryのログ送出先は環境ごとにプロジェクトを分ける(
expo-sentry
ライブラリで環境を切り替える方法がわからなかったからです。バッドプラクティスだと思うんで真似しないで...
Code
app.dev.json
{
"expo": {
"name": "MyApp",
...
"hooks": {
"postPublish": [
{
"file": "sentry-expo/upload-sourcemaps",
"config": {
"organization": "ここにorganization",
"project": "ここにproject",
"authToken": "ここにauthToken"
}
}
]
},
...
"extra": {
"sentryPublicDSN": "ここにPublic DSN(形式が二つあるけど、deprecatedじゃない方)"
}
}
}
App.js
import { Constants } from 'expo';
...
import Sentry from 'sentry-expo';
Sentry.enableInExpoDevelopment = true;
Sentry.config(Constants.manifest.extra.sentryPublicDSN).install();
デプロイするときには app.dev.json
をapp.json
に差し替えます。
ln -fs app.dev.json app.json && expo publish