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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Crashlytics错误:架构arm64的未定义符号相关的知识,希望对你有一定的参考价值。

在我的应用程序中更新了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

答案

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

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

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

我希望它有所帮助。

另一答案

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

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

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

另一答案

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

另一答案

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

另一答案

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

另一答案

在这里扩展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)开始,这对我有用。

另一答案

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

另一答案

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

以上是关于Crashlytics错误:架构arm64的未定义符号的主要内容,如果未能解决你的问题,请参考以下文章

XCode - 架构 armv7 arm64 的未定义符号

架构 arm64 的未定义符号

架构 arm64 的未定义符号

使用 Objective-C 框架构建 Swift 项目时出现“架构 arm64 的未定义符号”错误

架构 arm64 的未定义符号:“cv::String::deallocate()”

架构 arm64 的未定义符号:FBSDK View Hierarchy 引用自:FBSDK Marketing Kit