我根据文档的说法设置了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相关的崩溃,我在文档中找不到任何证据。
我假设第一条评论会回答的问题:
答案 0 :(得分:0)
我也发现了这个问题,并没有迹象表明在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
答案 1 :(得分:0)
这取决于expensiveValue
在代码中的位置。如果崩溃是在初始化[[Crashlytics sharedInstance] crash];
之前发生的,则不会报告崩溃。
另一种可能性是崩溃发生在应用程序扩展中,然后需要为所有应用程序扩展单独设置Crashlytics
。