无法从 Crashlytics 升级到 Fabric

Posted

技术标签:

【中文标题】无法从 Crashlytics 升级到 Fabric【英文标题】:Cannot upgrade from Crashlytics to Fabric 【发布时间】:2015-06-01 09:25:34 【问题描述】:

我将我的应用程序从 Crashlytics 升级到 Fabric。我按照结构应用程序的说明在 XCode 中升级我的代码。但是当我到达运行应用程序的步骤时,当我在模拟器上运行时,应用程序出现错误 Undefined symbols for architecture i386 和 Undefined symbols for architecture arm64 当我在 iPhone 5s 上运行时。那么,我应该怎么做才能解决这个问题呢?

【问题讨论】:

【参考方案1】:

今晚我遇到了类似的问题。我也不需要 Crashlytics,只需要 Fabric/Twitter。我正在使用来自 Fabric/Twitter 开发网站的最新 ios 下载/SDK。

在我的 XCode 项目中使用 Fabric 应用安装 Fabric/Twitter SDK 后,我在运行/编译时遇到了同样的“Undefined symbols for architecture arm64”错误。

我发现解决方法是首先安装 Crashlytics(无论您是否需要),完成所有步骤等,然后返回 Fabric.app 并为我的项目安装 Fabric/Twitter。

Crashlytics 安装了一些额外的库,我怀疑其中一个(libc++.dylib ?)可能已经解决了这个问题?我的猜测是自动 Fabric.app 安装中存在一个错误,即如果您只安装 Fabric/Twitter (v1.8) SDK 而没有 Crashlytics,则会缺少一个或多个库,从而导致运行/编译 arm64 错误。

总之,我的解决方法(以及最终让我的应用成功编译而没有出现 arm64 错误的原因)是先安装 Crashlytics,然后再安装 Fabric.Twitter,无论我是否需要 Crashlytics。

【讨论】:

PS 我刚刚也找到了这个链接:support.crashlytics.com/knowledgebase/articles/… 该链接上的信息似乎证实(?)libc++.dylib 和 libz.dylib 也需要包含在 Fabric 安装中(并且不会通过仅选择 Twitter SDK 并省略 Crashyltics 来自动添加)。我更喜欢手动安装过程,而不是自动安装 XCode 伴侣 Fabric.app。 看起来缺少库的理论很接近,似乎 Fabric-Crashlytics 添加了 Security.framework 库而选择单独安装 Fabric-Twitter 并没有。我手动将 Security.framework 添加到我的项目中,然后(通过 Fabric.app)添加了 Fabric-Twitter,然后项目编译时没有出现之前的 arm64 错误。我再次删除 Security.framework 并返回错误,对此进行了仔细检查。当开发人员选择不包含 Crashlytics 时,我仍然怀疑 Fabric.app 的自动安装中存在忽略 Security.framework 的错误,

以上是关于无法从 Crashlytics 升级到 Fabric的主要内容,如果未能解决你的问题,请参考以下文章

升级到 java 8 后无法使用 crashlytics 发布项目

升级到 Android Gradle 插件 3.3.0 时出现无效的 Crashlytics API 密钥错误

Crashlytics 更新到 Fabric:无法复制 dSYM

无法从 https://settings.crashlytics.com/spi/v2/platforms/android/apps/ 检索设置

Firebase crashlytics 不会自动上传dysm

在 iOS 应用中升级 SDK 后 Firebase Crashlytics 不显示日志