You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Expo 49构建后Sentry Sourcemaps失效,Hermes环境下如何修复?

解决方案:Expo 49 + Hermes 下 EAS Update 与 Sentry Sourcemaps 适配

核心思路

Expo 49 启用 Hermes 后,EAS Update 会生成 Hermes 字节码文件(.hbc)而非纯 JS Bundle,但只要保留标准 EAS 构建流程(不跳过 bundler),同时正确提取并上传 .hbc 及对应 Sourcemap 到 Sentry,就能恢复 Sourcemap 功能且不影响 OTA 更新有效性。

具体步骤

1. 保留标准 EAS Update 命令(不使用 --skip-bundler)

继续使用原命令触发 EAS Update,确保生成符合 OTA 要求的构建产物:

eas update --branch <DEVELOPMENT> --non-interactive --auto --json > update-output.json

将输出写入 JSON 文件,方便后续提取构建产物信息。

2. 从 EAS 输出中提取产物路径

解析 update-output.json,找到 artifacts 数组中的 .hbc 和对应的 .map 文件路径。你可以用 jq 工具快速提取:

HBC_PATH=$(jq -r '.artifacts[] | select(.type == "bundle") | .path' update-output.json)
SOURCE_MAP_PATH=$(jq -r '.artifacts[] | select(.type == "sourcemap") | .path' update-output.json)
RELEASE_VERSION=$(jq -r '.releaseName' update-output.json)
DIST_NUMBER=$(jq -r '.dist' update-output.json)

3. 使用 Sentry CLI 上传 Hermes 产物

针对 Hermes 字节码,需要指定 .hbc 文件为 bundle,并关联对应的 Sourcemap:

sentry-cli react-native upload-sourcemaps \
  --bundle "$HBC_PATH" \
  --sourcemap "$SOURCE_MAP_PATH" \
  --release "$RELEASE_VERSION" \
  --dist "$DIST_NUMBER" \
  --org <YOUR_SENTRY_ORG> \
  --project <YOUR_SENTRY_PROJECT>

注意:RELEASE_VERSION 和 DIST_NUMBER 必须与客户端运行时的版本一致,否则 Sentry 无法关联错误。

4. 验证客户端 Sentry 配置

确保 sentry-expo 版本适配 Expo 49,客户端初始化时正确关联版本信息:

import * as Sentry from 'sentry-expo';
import Constants from 'expo-constants';

Sentry.init({
  dsn: '<YOUR_SENTRY_DSN>',
  release: Constants.expoConfig?.extra?.sentryRelease,
  dist: Constants.expoConfig?.extra?.sentryDist,
  // 其他配置项
});

关键注意事项

  • 禁止使用 --skip-bundler 参数:该参数会跳过 EAS 标准构建流程,直接使用本地文件,导致 OTA 更新无法被正确识别。
  • 确保 Hermes 启用:在 eas.json 的构建配置中明确开启 Hermes,保证生成 .hbc 和对应 Sourcemap。
  • 版本一致性:上传时的 release 和 dist 必须与客户端实际运行的版本匹配,EAS Update 输出的 releaseName 和 dist 可直接复用。

内容的提问来源于stack exchange,提问作者Andrius Juškevičius

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 08:12:49