Expo
为原生 Expo 发布版本和 EAS 更新上传源映射。
Sentry 的 React Native SDK 开箱即用支持 Expo 应用程序。要在产品中看到可读的堆栈跟踪,你必须将源映射上传到 Sentry。本指南解释了如何为 Expo 应用程序上传源映射。
- 注册一个账户
- 从
sentry-expo
迁移到@sentry/react-native
- 设置 Sentry React Native SDK 版本 5.16.0-alpha.4 或更新版本
要上传 source maps,需要将 Sentry Expo 插件和 Sentry Metro 插件添加到 Expo 应用程序中。
为了确保在本地和 EAS 原生应用程序构建期间自动上传 bundles 和 source maps,请将 @sentry/react-native/expo
配置插件添加到 Expo 应用程序配置中:
Copied
{
"expo": {
"plugins": [
[
"@sentry/react-native/expo",
{
"url": "https://sentry.io/",
"note": "Use SENTRY_AUTH_TOKEN env to authenticate with Sentry.",
"project": "example-project",
"organization": "example-org"
}
]
]
}
}
将身份验证令牌添加到你的环境:
Copied
# DO NOT COMMIT YOUR AUTH TOKEN
export SENTRY_AUTH_TOKEN=sntrys_YOUR_TOKEN_HERE
为了确保生成的 bundles 和 source maps 被分配唯一的 Debug ID,请将 Sentry Metro 插件添加到配置中:
Copied
// const { getDefaultConfig } = require("expo/metro-config");
const { getSentryExpoConfig } = require("@sentry/react-native/metro");
// const config = getDefaultConfig(__dirname);
const config = getSentryExpoConfig(__dirname);
module.exports = config;
当将 Sentry Expo 插件 @sentry/react-native/expo
和 Sentry Metro 插件添加到你的应用程序配置后,在 EAS 构建期间以及使用 npx expo prebuild
在本地构建原生应用程序发布版本时,源映射会自动上传。因为符号化已经由 Metro 开发服务器处理,所以调试构建的源映射自动上传被禁用。
要为 EAS 更新和 npx expo export
上传源映射,请设置 Sentry Expo 插件、Sentry Metro 插件并执行 sentry-expo-upload-sourcemaps
命令。
要为应用程序创建更新,请使用以下命令:
Copied
# npx expo export --dump-sourcemap
eas update
要为所有平台上传源映射,请使用以下命令:
Copied
SENTRY_PROJECT=example-project \
SENTRY_ORG=example-org \
SENTRY_AUTH_TOKEN=sntrys_YOUR_TOKEN_HERE \
npx sentry-expo-upload-sourcemaps dist
dist
是eas update
的默认输出目录。- 上传的源映射没有关联的发布版本。这是预期的行为,因为更新可以应用于多个发布版本。
有关如何手动为 Expo 应用程序发布版本上传源映射的指南,请参阅 Expo(高级) 源映射文档。