Expo

为原生 Expo 发布版本和 EAS 更新上传源映射。

Sentry 的 React Native SDK 开箱即用支持 Expo 应用程序。要在产品中看到可读的堆栈跟踪,你必须将源映射上传到 Sentry。本指南解释了如何为 Expo 应用程序上传源映射。

要上传 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

  • disteas update 的默认输出目录。
  • 上传的源映射没有关联的发布版本。这是预期的行为,因为更新可以应用于多个发布版本。

有关如何手动为 Expo 应用程序发布版本上传源映射的指南,请参阅 Expo(高级) 源映射文档。