提问者:小点点

App Store 崩溃未在 Crashlytics 中报告


我已经根据文档的内容设置了Crashlytics,如下所示:

// In application:didFinishLaunchingWithOptions:
[Fabric with:@[[Crashlytics class], [Twitter class]]];

// In Info.plist
<key>Fabric</key>
<dict>
    <key>APIKey</key>
    <string>myAPIKey</string>
    <key>Kits</key>
    <array>
        <dict>
            <key>KitInfo</key>
            <dict/>
            <key>KitName</key>
            <string>Crashlytics</string>
        </dict>
        <dict>
            <key>KitInfo</key>
            <dict>
                <key>consumerKey</key>
                <string>myConsumerKey</string>
                <key>consumerSecret</key>
                <string>myConsumerSecret</string>
            </dict>
            <key>KitName</key>
            <string>Twitter</string>
        </dict>
    </array>
</dict>

然而,我似乎只收到了Crashlytics报告的一部分崩溃。当我完成强制崩溃的步骤(调用[[Crashlytics sharedInstance]crash];并在没有附加调试器的情况下运行应用程序)时,会记录错误。然而,在我们的App Store构建中,我知道发生了我在Crashlytics中看不到的崩溃。Crashlytics是否因某种原因无法捕捉所有碰撞?除了OOM相关的崩溃,我在文档中找不到任何证据。

我认为第一条评论会问的答案:

  • 我的调试信息格式通过dSYM文件设置为DWARF
  • 比特码已禁用
  • App Store版本肯定设置为“发布”模式,而不是“调试”模式
  • Fabric仪表板显示没有缺少dSYM

共2个答案

匿名用户

我也发现了这个问题,没有迹象表明Crashlytics中缺少DSYM。但是,我使用他们推荐的技术上传了我的DSYM,并立即看到了崩溃。我在这里包含了我的脚本:

#!/bin/bash
# From https://docs.fabric.io/apple/crashlytics/missing-dsyms.html#bitcode-download

# Upload a DSYM for your app to Fabric/Crashlytics if it's missing.
# Usage uploadDsymFabric <Dsym>.zip

# For a production release, I had to first download the DSYM from iTunes Connect.

# I got this from the Info.plist
API_KEY="<snip>"

/Applications/Fabric.app/Contents/MacOS/upload-symbols -a $API_KEY -p ios $1

匿名用户

这取决于 [[Crashlytics sharedInstance] crash]; 在代码中的位置。如果崩溃发生在 Crashlytics 初始化之前,则不会报告崩溃。

另一种可能性是崩溃发生在应用扩展中,然后需要为所有应用扩展单独设置 Crashlytics