Firebase Performance 在第一次调用 NSURLSession 时使应用程序崩溃

Firebase Performance crashes the app on the first call to NSURLSession

我刚刚将 Firebase Performance 添加到我的主要是 Obj-C 并且具有 Firebase(Core + Analytics + Messaging + Config)我在文档中读到:

Performance Monitoring does not support network requests made using the NSURLConnection class.

然而,出乎意料的是应用程序在第一次调用 NSURL* 时崩溃了 例如我正在使用一个名为 "Harpy" 的库,它在 AppStore 中检查应用程序的新版本并在此处崩溃:

NSURLSession *session = [NSURLSession sharedSession]; // <--- Crashes here
NSURLSessionDataTask *task = [session
      dataTaskWithRequest:request
        completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
            if ([data length] > 0 && !error) { // Success
                [self parseResults:data];
            }
        }
];

我真的看不到任何有用的异常,但是线程以以下开头:

Thread 1 Queue : com.google.FPRNSURLSessionInstrumentation (serial)

所以上面的问题与Firebase本身没有直接关系,但实际上是Firebase Performance和Crittercism之间的冲突,解决方案是禁用Crittercism对NSURLSession的监控,如下所示:

CrittercismConfig *config = [CrittercismConfig defaultConfig];
config.monitorNSURLSession = false;
[Crittercism enableWithAppID:settingsManager.crittericismKey andConfig:config];
[Crittercism setValue:[NSLocale preferredLanguages].firstObject forKey:@"deviceLanguage"];