Crashlytics没有从iPhone发送崩溃报告

时间:2013-07-23 18:41:14

标签: ios crash crash-reports crashlytics

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

17 个答案:

答案 0 :(得分:71)

Xcode调试器不允许Crashlytics处理崩溃报告。是的,当我第一次看到这个时,这对我来说似乎很奇怪,但这是事实(Source)。这就是我们从未见过崩溃报告的原因何时:
  - 在模拟器中运行应用程序
  - 在iDevice上运行应用程序,直接构建并在Xcode上运行调试器。

确保在测试期间报告崩溃(copied from Crashlytics support site):
 1.启动模拟器
 2.按停止
 3.启动您的应用程序并强行崩溃  4.从模拟器重新启动应用程序
 5.请参阅Web仪表板中的崩溃报告。

编辑:

添加了参考; Crashlytics还提供了关于a quick way to force a crash的简短文章和关于why you don't see the data from your first crash的文章。

答案 1 :(得分:60)

我现在已经晚了但是100%工作

在项目构建设置中进行一些更改,如下图所示

enter image description here

and follow these instructions.

答案 2 :(得分:17)

任何崩溃记者在iOS上工作的主要原因是由于不同崩溃记者的干扰。然而,特别是Crashlytics可能会有一些特定的东西导致崩溃报告没有报告。

Xcode调试器不允许 Any Crash Reporter 处理崩溃报告。这是因为XCode会覆盖崩溃处理回调中的任何挂钩。这只发生在:

  • 在Simulator中运行应用程序(启用调试程序)
  • 在iDevice上运行app,直接构建并使用调试器从Xcode运行。

确保在测试期间报告崩溃(http://support.crashlytics.com/knowledgebase/articles/92523-why-can-t-i-have-xcode-connected-):

  1. 启动模拟器
  2. 按停止
  3. 启动您的应用并强行崩溃
  4. 从模拟器
  5. 重新启动应用程序
  6. 请参阅网络信息中心中的崩溃报告。
  7. 虽然它仍然是一部超级旧视频,但这里有上述步骤的视频(例如来自Crittercism):https://www.youtube.com/watch?v=sU6Su3PBFH4

答案 3 :(得分:7)

对我来说,问题是该设备已连接到我的Mac :) 来自this source

  

此外,如果您的设备已连接到Mac,XCode的调试器   也会介入。因此,在测试之前,请断开设备:)

答案 4 :(得分:6)

我使用以下步骤找到了解决方案     1.转到编辑方案     2.运行 - >信息     3.将Build Configuration更改为release。     现在运行应用程序崩溃它。你会收到邮件。

答案 5 :(得分:6)

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

注意:使用Cocoapods时,您需要使用以下内容而非上述内容(source): ./Pods/CrashlyticsFramework/Crashlytics.framework/run

添加构建脚本:

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

以上引用来自于visual tutorial中引用的Crashlytics的this post

注意:我最初是为Crashlytics error code: 202 when Submitting files逐字发布此答案。

答案 6 :(得分:4)

来自RayWenderlich网站:

  

如果Xcode截获崩溃事件,您将不会收到任何崩溃报告!   要使下面的所有示例都有效,您必须构建并运行   应用程序,然后单击Xco​​de上的停止按钮。这样你就会   在设备上安装了最新版本。一旦那样   完成后,您可以在设备上启动应用程序,然后将其崩溃   所有你想要的!您的iOS设备上的所有崩溃都将被捕获   发送到已集成的服务的服务器组件   进入应用程序。崩溃报告通常会在下一次发送到服务器   你启动应用程序的时间,以及生成崩溃所遵循的步骤   服务器上的报告如下:在Xcode上构建并运行。按下   停止按钮。在iOS设备上运行该应用。让应用程序崩溃。跑   该应用程序再次。

答案 7 :(得分:3)

确保你没有过早地强迫崩溃。

[Crashlytics sharedInstance].debugMode设为YES;

注意

Crashlytics] Settings loaded

在Xcode控制台日志上。

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

答案 8 :(得分:3)

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

Crashlytics.sharedInstance().crash()

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

  • 确保在崩溃后启动应用程序,以便崩溃 上传

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

答案 9 :(得分:2)

Crashlytics直到现在都适合我。 我不知道为什么,但现在它不起作用。

您应该通过

打开调试模式
[Crashlytics sharedInstance].debugMode = YES;

我的问题在这里Crashlytics error code: 202 when Submitting files :(

答案 10 :(得分:1)

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

如果您已将build-script设置为仅在CI服务器上运行,则可能会遇到此问题。然后,如果您已经通过xcode将应用程序复制到手机上而无需连接到调试器就可以运行它,那么报告将被上传但会被忽略,因为缺少dSYM文件。

答案 11 :(得分:1)

您是否尝试在设备上运行[[Crashlytics sharedInstance] crash]并查看是否有报告?有一些原因可以解释为什么Crashlytics可能无法工作,包括其他崩溃记者等。

答案 12 :(得分:0)

这适用于来自crashlytics 3.4.0的xcode 9 STEP1 STEP2

这样做之后,请耐心等待几分钟。

答案 13 :(得分:0)

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

答案 14 :(得分:0)

我认为在Run Script阶段的问题之一,它应该是CrashLytics的单独运行脚本阶段。什么时候有运行脚本

./Fabric.framework/run

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

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

我的第一次尝试是使用cocoapods,但这不起作用。 当我手动添加所有框架和单独的运行脚本阶段工作。

答案 15 :(得分:-1)

这对我有用,

如果你在iDevice上测试,只需用你的Xcode拔掉iDevice并运行你的应用程序。 现在,如果崩溃,它将在仪表板上更新。

答案 16 :(得分:-3)

我解决了在运行脚本中选择“仅在安装时运行脚本”选项(一个用于Fabric(崩溃))

enter image description here