6

当我们的生产 iOS 应用程序初始化时,我收到以下错误消息:

[Crashlytics] Version 3.8.4 (121)
[Crashlytics] Running on iOS Simulator (iPhone), 10.3.0 (16E195) 
[Crashlytics:Crash] Reporting is disabled 
[Crashlytics] Crash reporting could not be initialized 
[Answers] Initialized 
[Fabric] Initialized with kit versions: {
    "com.twitter.answers.ios" = "1.3.4"; 
    "com.twitter.crashlytics.ios" = "3.8.4"; 
    "io.fabric.sdk.ios" = "1.6.11"; 
}

每次后续调用记录事件都会收到以下错误:

[Crashlytics:Crash] WARNING: CLSLog has been used before (or concurrently with) 
    Crashlytics initialization and cannot be recorded. The message was: ...

该应用程序的非生产版本可以正常运行完全相同的代码,但具有不同的 bundleID。通常,当应用程序第一次初始化时,我会看到应用程序填充在 Fabric 仪表板中,但在这种情况下,应用程序没有显示。

我们有一个 Android 和 iOS 版本的应用程序,它们都使用相同的 bundleID,所以我想知道是否存在冲突?我在仪表板中看到了应用程序的 Android 版本,它似乎运行正常。这是一个应用程序,最初是一个 Xamarin 应用程序,可以编译到两个平台,这两个平台都没有包含 Fabric/Crashlytics。我们现在已经在每个平台上编写了原生应用程序,并且都使用了 Fabric/Crashlytics。

由于这是两个商店中预先存在的应用程序,我们无法更改任何一个应用程序的 bundleID。

4

4 回答 4

4

确保在调用任何 Crashlytics 方法之前使用 Fabric 初始化 Crashlytics:

Fabric.with([Crashlytics.self])
于 2017-05-17T16:46:17.433 回答
3

我经常错过的一个步骤是确保您已在目标上添加了构建阶段:

"${PODS_ROOT}/Fabric/run" ${FABRIC_API_KEY} ${FABRIC_BUILD_SECRET}

并用您的密钥和秘密替换${FABRIC_API_KEY}and${FABRIC_BUILD_SECRET}或为每个添加自定义构建设置。

于 2017-07-03T19:09:49.207 回答
2

显然在某些情况下,Crashlytics 不会自动激活新应用程序,以便它们显示在您的应用程序列表下,即使所有内容都正确编码并且数据正在发送到他们的服务器。在这种情况下,请向 Crashlytics 支持 (support@fabric.io) 发送一封电子邮件,其中包含相关应用程序的 info.plist 条目的副本,他们将为您激活它。我不得不多次这样做,尤其是使用应用程序扩展。

于 2018-10-08T16:47:23.397 回答
0

当我最终在我的情况下追踪它时,错误是完全正确的,但并不明显。

我在各种测试目标中看到了这些错误,其中我们测试的代码使用了一个名为 的自定义日志记录包装器CLSNSLogv(),但测试实际上并没有通过AppDelegate,因此没有初始化 Crashlytics。在尝试了一些事情之后,我确信它在作为应用程序执行时可以工作,但是在我们的配置中,它在单元测试配置下不起作用。

CLSNSLogv()无论如何,我可能会在测试期间更改我们的自定义包装器以绕过。使用它的最大好处是当设备上发生崩溃时,我们不会错过任何东西。

于 2019-03-27T01:48:30.330 回答