我在Expo应用中使用sentry-expo
。我使用EAS构建。所有事件都在开发中成功捕获,但当我进行构建时,Sentry无法从独立应用捕获任何事件。
我可以看到源Map已成功上传。
在我的App.tsx
中:
Sentry.init({
dsn: Constants.manifest.extra!.sentryDsn || SENTRY_DSN,
enableInExpoDevelopment: true,
debug: true,
});
我的app.config.js
:
import { SENTRY_AUTH_TOKEN, SENTRY_DSN } from "react-native-dotenv";
export default ({ config }) => {
const extra = {
sentryDsn: SENTRY_DSN,
};
const sentryConfig = {
file: "sentry-expo/upload-sourcemaps",
config: {
organization: "***",
project: "***",
authToken: SENTRY_AUTH_TOKEN,
},
};
config.hooks.postPublish.push(sentryConfig);
return {
...config,
extra,
};
};
我错过了什么?
3条答案
按热度按时间erhoui1w1#
先生,我真的不知道。但是我可以想象,你必须检查https://docs.expo.dev/guides/using-sentry/中的第3步,并检查你的sentryConfig。
有点不一样
r7xajy2e2#
EAS构建版本将使用如下格式写入帧:
应用程序:///捆绑包-{一些GUID}.jsbundle
并上传名称如下的源图:
~/主.jsbundle
问题是源贴图名称和帧不匹配。
您可以在init期间重写这些帧,如下所示:
然后,您的源Map应该在将来的构建中正确链接。
b09cbbtk3#
你的env工作正常吗?我在这里看到了一些问题,首先你使用
Constants.manifest
来访问env变量。一旦你发布了一个更新到eas,Constants.manifest
就变得不明确了。所以使用Constants.expoConfig
,第二件事是你是否检查了
react-native-dotenv
是否与eas一起工作,因为我们可以直接使用dotenv
来设置env。安装dotenv;
npm install dotenv
或yarn add dotenv
应用程序配置js;