Crashlytics未从iPhone发送崩溃报告


85

我已经在一个iOS应用程序中设置了Crashlytics,并将该应用程序安装在真实设备上。我的Crashlytics信息中心显示了该信息,我已经成功添加了该应用程序。但是,它没有发送崩溃报告。我的上网速度不是很好。但是我可以从此设备检查我的电子邮件。谁能猜到问题出在哪里?


5
我在Crashlytics服务中遇到了同样的问题。根据我的经验,从设备发送的崩溃报告从不发送-仅从模拟器发送。我最终使用了Crittercism崩溃报告和错误处理。
Sam Spencer

我也一样 在不同于实际开发设备的其他设备上尝试应用程序,这样您可以获得崩溃报告。
Samet DEDE

是的,我正在使用我的开发设备。是问题所在吗?
farhad rubel

1
没有完整的安装说明或测试项目,这是无法回答的。您应该联系crashlytics支持。大胆的猜测无济于事。
克尼

3
我非常惊讶,Crashlytics的某个人在StackOverflow上看到了我的这篇文章,他通过电子邮件与我联系;他正在帮助我解决这个问题。让我们看看发生了什么。
farhad rubel

Answers:


81

Xcode调试器不允许Crashlytics处理崩溃报告。是的,当我第一次阅读该书时,即使是我也觉得很奇怪,但这是事实(Source)。这就是为什么我们永远不会看到崩溃报告的原因:
-在Simulator中
运行应用程序-通过直接在调试器打开的情况下从Xcode生成并运行,从而在iDevice上运行应用程序。

要确保在测试过程中报告了崩溃(从Crashlytics支持网站复制),请执行以下操作:
1.启动模拟器
2.按下停止
3.启动您的应用程序并强制崩溃
4.从模拟器中重新启动该应用程序
5.请参阅Web仪表板。

编辑:

添加了参考;Crashlytics还提供了一篇简短的文章,介绍了强制崩溃的快速方法


6
这对我有帮助。在某些情况下,我也发现了这一点。除非再次打开应用程序,否则Crashlytics不会发送崩溃报告。重申:用户遇到崩溃。用户重新打开应用程序。Crashlytics发送先前的崩溃报告。
tambykojak 2014年

1
@tambykojak,这可能是由于以下事实:在大多数情况下,iOS Crashes非常不稳定,并且更安全的方法是立即发送崩溃报告,而不是立即发送崩溃报告。许多崩溃报告工具在iOS和其他非VM崩溃处理程序上使用此范例。
pixelknitter 2014年

2
谢谢。这应该标记为正确答案:)
iMemon 2015年

在这种情况下,我需要上传任何dsym吗?如果可以,我在哪里可以找到它们?
SoliQuiD

链接已死。
幸运


20

任何崩溃报告器无法在iOS上运行的主要原因是由于不同崩溃报告器的干扰。但是,特别是对于Crashlytics,可能存在某些特定于他们的东西,导致崩溃报告没有得到报告。

Xcode调试器不允许任何崩溃报告器处理崩溃报告。这是因为XCode会覆盖崩溃处理回调中的所有挂钩。这仅在以下情况下发生:

  • 在模拟器中运行应用程序(启用调试器)
  • 通过直接在调试器打开的情况下从Xcode构建和运行,从而在iDevice上运行应用程序。

为了确保在测试过程中报告了崩溃,请访问http://support.crashlytics.com/knowledgebase/articles/92523-why-can-ti-have-xcode-connected-):

  1. 启动模拟器
  2. 按下停止
  3. 启动您的应用并强制崩溃
  4. 从模拟器重新启动应用
  5. 请参阅网络信息中心中的崩溃报告。

虽然它仍然很旧,但下面是有关上述步骤的视频(来自Crittercism的示例):https : //www.youtube.com/watch?v= sU6Su3PBFH4


1
当Crashlytics检测到连接的调试器时,它会自行禁用。不是因为它不能工作,而是因为它会使调试器无法正常工作。Crashlytics使用与调试器本身相同的机制,对于SDK搞乱正常的调试流程,这确实令人沮丧。作为参考,我编写了大多数Crashlytics SDK。
马蒂

8

对我来说,问题是该设备已连接到我的Mac :)从此

另外,如果您将设备连接到Mac,则XCode的调试器也将介入。因此,只需在测试前断开设备:)


7

我使用以下步骤找到了解决方案:
1.转到“编辑方案” 2.运行->“信息” 3.将“构建配置”更改为发布。现在运行应用程序使其崩溃。您将收到邮件。


6

我们最近遇到了这个问题,我发现在删除构建脚本的过程中的某个地方。重新添加以下内容可以解决我们的问题:
./Crashlytics.framework/run <your_api_key> <build_secret>

注意:使用Cocoapods时,您将需要以下内容而不是上面的内容(): ./Pods/CrashlyticsFramework/Crashlytics.framework/run

添加构建脚本:

  1. 要在Xcode 6中添加运行脚本构建阶段,请在项目中选择应用程序目标,然后选择“构建阶段”。
  2. 单击小的“加号”图标,然后选择“新建运行脚本构建阶段”。
  3. 现在,您应该在“构建阶段”选项的中间看到一个“运行脚本”部分,如上所示。
  4. 在“运行脚本构建阶段”的主体内部,粘贴脚本。

以上引用来自Crashlytics的可视化教程,本文中对此进行了引用。

注意:我最初逐字发布了Crashlytics错误代码:202提交文件时的答案。


这似乎对我有所帮助。
克里斯·普林斯

1
我以前使用过结构来进行Twitter集成,现在我也想要crashlytics,我也添加了框架,我遵循了所有说明,但是我未收到仪表板的任何崩溃报告,请帮助我
RameshIos 2015年

@iOS_Ramesh我想尝试为您提供帮助,但是如果不了解更多信息将很难。为此,您应该打开一个新问题,概述您的位置(集成步骤,任何适当的代码段以及从Crashlytics或控制台获得的任何反馈)。
詹姆斯·尼尔森


1
感谢您的提示。我们已经在运行脚本中签入了[“ Release” =“ $ {CONFIGURATION}”],并重命名了Release配置。
玛丽安·塞尔尼

4

从RayWenderlich网站:

如果Xcode拦截崩溃事件,您将不会获得任何崩溃报告!为了使下面的所有示例正常工作,您必须构建并运行该应用程序,然后单击Xco​​de上的“停止”按钮。这样,您将在设备上安装最新版本。完成后,您可以在设备本身上启动该应用程序,然后将其全部崩溃!您的iOS设备上的所有崩溃都将被捕获并发送到您已集成到应用中的服务的服务器组件中。崩溃报告通常在下次启动应用程序时发送到服务器,因此在服务器上生成崩溃报告所需遵循的步骤如下:在Xcode上构建并运行。按下停止按钮。在iOS设备上运行该应用。使应用程序崩溃。再次运行该应用程序。



3

确保您没有强迫崩溃太早。

设置[Crashlytics sharedInstance].debugModeYES;

注意

Crashlytics] Settings loaded

在Xcode控制台日志上。

然后强制崩溃并重新启动应用程序,现在将报告崩溃。


3

尝试测试崩溃代码时遇到了类似的问题。

Crashlytics.sharedInstance().crash()

我是从没有Xcode的设备上运行应用程序的,崩溃不会显示在Crashlytics Dashboard上。对我有用的是Crashlytics网站上的以下提示:

  • 确保崩溃后启动该应用,以便可以上传崩溃

我注释掉了上面的crash()调用,然后重新运行了该应用程序。然后崩溃显示在仪表板中。


2

这是针对来自崩溃解析3.4.0的xcode 9 步骤1 第2步

完成此操作后,请耐心等待几分钟。


1

您是否尝试过[[Crashlytics sharedInstance] crash]在设备上运行并查看是否得到报告?Crashlytics可能无法运行的原因有很多,包括其他崩溃报告器等。


不,我正在使用int * x = NULL; * x = 42; 代码以查看崩溃报告。而且,我的应用程序也因不同的核心数据模型而崩溃。
farhad rubel 2013年

1

如果您不上传dSYM文件,即使报告成功上传,Crashlytics也不会显示您的崩溃。

如果您将构建脚本设置为仅在CI服务器上运行,则可能会遇到此问题。然后,如果您已通过xcode将您的应用复制到手机中,并且在未附加到调试器的情况下运行了该应用,则该报告将被上载但由于缺少dSYM文件而被忽略。



1

有时,显示日志需要一些时间。15至20分钟后我就能找到它们


0

我感到的一个问题是,在运行脚本阶段,它应该是CrashLytics的一个单独的运行脚本阶段。什么时候有运行脚本

./Fabric.framework/run

使用其他脚本,一切正常,CrashLytics日志显示报告已提交,但Web界面中没有任何内容。

当我仅使用Fabric运行添加另一个Run脚本阶段时,它看起来就像是魔术:)

我的第一次尝试是用可可豆,但那没有用。当我手动添加所有框架和一个有效的单独运行脚本阶段时。



-3

我通过在运行脚本中取消选择“仅在安装时运行脚本”选项解决了(Fabric(crashlytics)一个)

在此处输入图片说明


那只是将符号上载到Crashlytics的脚本。如何解决崩溃报告未发送的问题?未上传符号时,应采取哪些步骤避免使用Crashlytics?这个答案是误导性的,完全是错误的。
Droppy 2015年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.