Crashlytics错误:架构arm64的未定义符号

问题描述 投票:19回答:8

在我的应用程序中更新了Fabric Crashlytics后,我再也无法在我的iOS设备上运行它了。在模拟器上它工作正常。错误是:

架构arm64的未定义符号:“_ gzopen”,引用自: - [CLSPackageReportOperation compressFile:]在Crashlytics(CLSPackageReportOperation.o)“_ gzwrite”中,引自:___ 42- [CLSPackageReportOperation compressFile:] _ block_invoke in Crashlytics(CLSPackageReportOperation.o)“_gzclose “,引自: - Crashlytics中的[CLSPackageReportOperation compressFile:](CLSPackageReportOperation.o)ld:未找到架构arm64 clang的符号:错误:链接器命令失败,退出代码为1(使用-v查看调用)

enter image description here

ios swift ios7 crashlytics twitter-fabric
8个回答
46
投票

Crashlytics和Fabric要求您将目标与以下内容相关联:

  • Security.framework
  • SystemConfiguration.framework
  • 的libc ++
  • libz进行

只需选择目标 - >构建阶段 - >使用库链接二进制 - >添加缺少的目标。

我希望它有所帮助。


16
投票

当我更新在Xcode 5之前创建的应用程序时,我遇到了类似的问题。

由于Xcode 5新项目在默认情况下启用了模块。在我的旧应用程序中,“启用模块”设置为“否”。所以这就是解决方案。

In the Build Settings set Enable Modules (C and Objective-C) to YES


15
投票

我通过在构建设置中将$(inherited)添加到其他链接器标志来解决了这个问题。


4
投票

解决了。我删除了Crashlytics.framework并重新安装。


4
投票

对我来说,解决方案是Build Phases - Link Binary With Libraries添加libc ++并在我的遗留项目中工作。


1
投票

在这里扩展Ricardo's answer。选择“Build Phases”选项卡,单击“Link Binary With Libraries”旁边的“+”并添加 -

  1. Security.framework
  2. SystemConfiguration.framework
  3. StoreKit.framework
  4. libsqlite3.tbd
  5. libz.tbd
  6. 的libc ++。TBD

根据谷歌,开发人员应该使用Crashlytics via Firebase。从Firebase v5.16.0和Fabric v1.9.0(Xcode 10.1)开始,这对我有用。


0
投票

在Project(非目标)Info选项卡中,将配置文件设置为none,然后再次运行pod install


0
投票

我通过添加$(继承)$(OTHER_LDFLAGS)-ObjC -l“sqlite3”-l“z”-l“c ++”-framework“Crashlytics”-framework“Fabric”-framework“Security”-framework“SystemConfiguration”解决了这个问题“-framework”UIKit“到Build Settings中的其他链接器标志。

© www.soinside.com 2019 - 2024. All rights reserved.