Crashlytics 在发布模式下不报告崩溃

Crashlytics not reporting crash in Release mode

Crashlytics 已经安装在有问题的应用程序中,现在有几个版本。它一直工作得很好。

但在我们准备下一个版本时,Crashlytics 已停止报告发布模式下的崩溃。以下是我能想到的自上次发布以来发生的变化。

无论如何,在进行所有这些更改后,在 Debug 中仍然可以很好地报告崩溃。只是不在 Release 中(在存档并上传到 iTunes Connect 后从 TestFlight 安装)。

以下是我检查过的内容:

我错过了什么?

我遇到了同样的问题,我解决了... 检查项目的构建设置,找到 调试信息格式。使用 dSYM 文件将其更改为 DWARF

Image

这里是来自 Crashlytics 和 Fabric 的 Mike。

对于 Fabric,Crashlytics 的初始化确实略有变化。使用以下代码应该有效(Obj-C):

#import "AppDelegate.h"
#import <Fabric/Fabric.h>
#import <Crashlytics/Crashlytics.h>

@interface AppDelegate ()

@end

@implementation AppDelegate

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    // Override point for customization after application launch.
    [Crashlytics startWithAPIKey:@"YourAPIKey"];
    // You can comment out the above line if you have your Twitter Fabric API key in your info.plist.
    [Fabric with:@[[Crashlytics class]]];
    return YES;
}

还建议将 运行 脚本构建阶段更新为以下内容:

./Fabric.framework/run <YourAPIKey> <YourBuildSecret> 

我也遇到了这个问题。我的应用程序 DSYM 文件没有像以前那样自动上传到 Fabric。发现根本原因是 xcode 7.1 已将项目默认为 bitcode enabled = YES

在我的构建设置中设置 Bitcode enabled = NO 修复了自动上传问题。

来自 Fabrics 高级设置 document:

Bitcode enabled applications are required to download their dSYM from Xcode and then upload it to Crashlytics so that we can symbolicate the crashes.

对我来说,从 .xcarchive 上传 dsym 文件没有帮助。只有当我从 iTunesConnect and uploaded it to fabric 下载 zip dSYM 存档时 - 它才有意义。

就我而言,这是完全不同的问题。早些时候我完美地获得了所有的崩溃报告,但由于某些原因,我必须更新项目的 bundle id。

因此,如果您更新包 ID,那么您在 Fabric 上创建的项目将不会收到崩溃报告,因为您需要为该新包 ID 创建一个新项目。

重要提示:如果 bundle id 与您的结构应用不同,那么您将永远不会收到任何崩溃报告。

提示:使用 Fabric 桌面应用程序在 Fabric 中创建项目。