如何将Crashlytics与Sentry集成?

5
请问您能帮我们集成这些优秀的工具吗?我们的React Native iOS项目已经使用Crashlytics几个月了,对于本地崩溃它运作良好,但对于JS异常,则需要一些自定义react-native日志记录(这篇Medium文章在尽可能详细的输出JS方面帮助很大)。最终,我们没有像我们想要的那样好的JS错误输出。
因此,我们决定也集成Sentry。这项工作已经成功完成,但似乎Sentry在捕获崩溃之前比Crashlytics更快:我们可以在Sentry仪表板中看到崩溃,但在Crashlytics的仪表板中看不到。
我的问题是:是否可能同时将Crashlytics和Sentry集成到本地崩溃和JS异常的两种情况中?
提前感谢您。 更新于2019年6月3日 最终,由于以下原因,我们只使用Sentry:
首先,与Crashlytics不同,它不需要任何特殊的代码来实现JS事件和错误的格式化输出;
其次,它不需要对通过Testflight发布(可能加密)的dSym文件进行任何操作;
第三,它还能捕获本地崩溃并提供详细输出。

1
你提出问题已经两年了,所以你可能已经积累了更多的经验。我想在我的React Native应用程序中集成崩溃报告。你还推荐Sentry吗?我18个月前简要使用过Crashlytics,我记得它确实捕获了由React Native js代码引起的崩溃。我错了吗?你是说如果我的js代码导致崩溃(例如除零...),即使今天,Crashlytics也不会报告它吗(我假设在过去的两年中对Crashlytics进行了改进)? 此外,你有任何关于价格方面的想法,Crashlytics与Sentry相比如何? - Yossi
1
@Yossi 我必须得说,当我们决定只留下 Sentry 时,我们从未后悔过。虽然我不清楚它的定价情况,但总体来说,我们对 Sentry 感到非常满意和满足。我们从未在记录任何本地或 JS 错误方面遇到过任何问题。当然,Crashlitics 可能最近改进了一些内容。我知道它已成为 Firebase 的一部分,因此可能更容易进行集成。但是,Sentry 是一个真正的跨平台解决方案- https://docs.sentry.io/platforms/。因此,您可以处理整个系统的错误,而不仅仅是 RN 部分的错误。 - styleofspur
非常感谢,@styleofspur!最后一个问题(保证):你每个月为Sentry支付多少费用?有多少用户同时运行您的应用程序?或者任何其他信息可以帮助我了解我需要支付多少费用... - Yossi
1
@Yossi 没问题,不客气 :) 据我所知,Sentry的费用不取决于同时运行应用程序的用户数量。https://sentry.io/pricing/ - 我们使用的是 团队 套餐。 - styleofspur
非常感谢! :) - Yossi
2个回答

2

Sentry提供对React Native的支持,包括JS和Native错误(iOS和Android都支持)。

我是Sentry的工作人员,可能有些偏见,但根据您的要求和列出的两个选项,Sentry似乎是满足您需求的那一个。


Bruno 你好。感谢你的回答。请问我应该在 TestFlight 处理完我的 React Native 构建后将 dSYM 文件上传到 Sentry 吗?如果我不这样做,我仍然可以得到输出,但不够好。 - styleofspur
1
我们(Sentry)还有一个快速通道插件,可以处理dSYM上传。 https://github.com/getsentry/sentry-fastlane-plugin - HazA
@BrunoGarcia 你已经写下了你的答案两年了,所以你可能获得了更多的经验。我想在我的React Native应用程序中集成崩溃报告。你仍然推荐Sentry吗?我18个月前简要使用过Crashlytics,我记得它确实捕获了由react-native js代码引起的崩溃。我错了吗?你是说如果我的js代码导致崩溃(例如除零...),即使今天,Crashlytics也不会报告它(我假设在过去的两年中对Crashlytics进行了改进)?此外,任何关于定价方面的想法,Crashlytics与Sentry相比如何? - Yossi
Sentry在过去的两年中非常专注于移动生态系统。Release Health已经被添加,而Performance即将很快登陆移动端。但作为一名自豪的员工,我从事移动SDK开发,我有偏见。此外,我不使用Crashlytics进行比较。 - Bruno Garcia

0

Fabric 的 Mike 在这里。在 iOS 上,只能安全地安装一个未捕获异常处理程序,如果安装了多个处理程序,则会出现冲突,就像您所看到的那样。


Mike 感谢您的回答。 我发现在本地运行良好:Sentry和Crashlytics都能报告错误和崩溃。 问题出现在我们有TestFlight构建时:
  1. 如果只有Sentry,它会自动报告崩溃以及JS堆栈,非常好。
  2. 如果只有Fabric,在手动上传dSYM文件后才会报告崩溃(据我所知,TestFlight会重新创建它们,对吗?)
  3. 如果两者都有,只有Sentry在TestFlight构建中工作,没有来自Crashlytics的任何数据,甚至没有关于缺失dSYMs的消息。
- styleofspur
我的建议仍然是不要这样做。这是冒险的行为。我们没有React Native支持,所以JS堆栈跟踪不理想也就不足为奇了。我猜测Sentry正在吞噬我们未捕获的异常处理程序。 - Mike Bonnell
Mike,收到了,谢谢。有没有办法从TestFlight自动上传dSYM文件到Fabric Crashlytics? - styleofspur
你可以通过 fastlane 来完成 - https://krausefx.com/blog/download-dsym-symbolication-files-from-itunes-connect-for-bitcode-ios-apps - Mike Bonnell
1
谢谢 Mike!我们会尝试的。 - styleofspur

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接