Crashlytics不显示崩溃

Avt*_*Avt 21 crash ios crashlytics swift

我刚刚使用这个官方说明安装了Crashlitycs .

我为Debug和Release以及禁用的Bitcode设置了调试信息格式为"DWARF with dSYM File"(有些人写道它可以提供帮助):

在此输入图像描述

AppDelegate中:

Fabric.sharedSDK().debug = true
Fabric.with([Crashlytics.self])
Run Code Online (Sandbox Code Playgroud)

为了模拟我使用的崩溃

Crashlytics.sharedInstance().crash()
Run Code Online (Sandbox Code Playgroud)

var ggg: Int!
print(ggg)
Run Code Online (Sandbox Code Playgroud)

Crashlitics收集有关会话的一些信息.例如,它更新包版本信息:

在此输入图像描述

所以与Crashlitics的联系起作用.但崩溃信息为空:

在此输入图像描述

我正在使用XCode 8和iOS 9/10.我做错了什么?

编辑:

我在没有XCode调试器连接的模拟器和设备上测试过它(即从sumulator/device屏幕启动)

最后,我在崩溃后7-8小时收到了一些Crashlytics报告.我之前期待它们,因为根据文件:

在几分钟内,您应该会看到Fabric Dashboard上出现崩溃.

但是我没有收到我正在等待的所有崩溃.在我的实验中,我尝试了不同的方法来初始化Crashlytics:

Fabric.with([Crashlytics.self])
and
Fabric.with([Crashlytics.self()])
Run Code Online (Sandbox Code Playgroud)

可能是原因吗?我也发现了类似的未回答的问题.

Rah*_*rma 28

检查以下条款,

  1. 确保Crashlytics SDK系列符合所有其他第三方SDK系列.(它需要是你的appDidFinishLaunching方法中调用的最后一个.)

  2. 强制崩溃,然后重新启动应用程序.必须断开Xcode以阻止其拦截崩溃报告.要断开Xcode,请按照此处的说明操作.

  3. 如果你正在使用[Crashlytics sharedInstance]崩溃]; 测试崩溃,确保它不在appDidFinishLaunching方法中.

这些已在支持部分中提及,以下是其他部分 -

  1. 签入组织 - >您的应用程序 - >缺少dSYM,是否显示任何缺少的dSYM文件

在此输入图像描述

如果是,则执行以下步骤

  1. 右键单击您的存档 - >在Finder中显示 - >右键单击文件,然后单击显示包内容
  2. 右键单击dSYM文件 - >显示包内容 - >目录 - >资源 - > DWARF(在终端中打开)
  3. 运行命令dwarfdump --uuid"你在dwarf文件夹中看到的文件名"

在此输入图像描述

这将显示所有关联的UUID,如果任何列出的UUID与缺少的dSYM id中提到的UUID匹配,则只压缩dSYM文件夹并将其上载到crashlytics Missing dSYM段.

此步骤很重要,因为有时我们从组织器中提取的dSYM文件不包含正确的UUID.上传错误后我们等待更新.因此,最好确保上传正确的dSYM文件.

除了上述内容之外,构建设置中的Bitcode属性和调试信息格式也会影响崩溃报告.


Zac*_*wan 11

您需要运行应用程序,但不能运行Xcode.

如果您使用的是设备,只需启动未连接USB的应用程序即可.如果您使用的是模拟器,请停止从Xcode运行该应用程序.然后通过鼠标点击再次打开它.

接下来,导航到buttonPressfunction将调用的Crashlytics.sharedInstance().crash().

然后在崩溃后再次重新打开应用程序.(如果需要,可以将其连接到控制台)此步骤非常重要,因为crashlytics会在应用程序终止之前保存崩溃报告.下次打开应用程序时,它会将报告发布到crashlytics.

这里的文档实际上也解释了故障排除问题.


Par*_*rth 5

在构建设置中仔细检查调试信息格式为 \xe2\x80\x9cDWARF 和 dSYM File\xe2\x80\x9d,用于调试和发布

\n