我根据文档的说法设置了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]崩溃];并在没有附加调试器的情况下运行应用程序时),会记录错误.然而,在我们的App Store构建中,我知道崩溃发生在Crashlytics中我看不到. Crashlytics是否因某些原因无法捕获所有崩溃?除了OOM相关的崩溃,我在文档中找不到任何证据.
我假设第一条评论的答案会询问:
>我的调试信息格式使用dSYM文件设置为DWARF.
> Bitcode被禁用.
> App Store构建肯定设置为Release模式而不是Debug模式.
> Fabric仪表板表示没有丢失dSYM.
解决方法
我也发现了这个问题,并没有迹象表明在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