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查看调用)
Crashlytics和Fabric要求您将目标与以下内容相关联:
- Security.framework
- SystemConfiguration.framework
- 的libc ++
- libz进行
只需选择目标 - >构建阶段 - >使用库链接二进制 - >添加缺少的目标。
我希望它有所帮助。
当我更新在Xcode 5之前创建的应用程序时,我遇到了类似的问题。
由于Xcode 5新项目在默认情况下启用了模块。在我的旧应用程序中,“启用模块”设置为“否”。所以这就是解决方案。
我通过在构建设置中将$(inherited)
添加到其他链接器标志来解决了这个问题。
解决了。我删除了Crashlytics.framework并重新安装。
对我来说,解决方案是Build Phases - Link Binary With Libraries添加libc ++并在我的遗留项目中工作。
在这里扩展Ricardo's answer。选择“Build Phases”选项卡,单击“Link Binary With Libraries”旁边的“+”并添加 -
- Security.framework
- SystemConfiguration.framework
- StoreKit.framework
- libsqlite3.tbd
- libz.tbd
- 的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的未定义符号的主要内容,如果未能解决你的问题,请参考以下文章
使用 Objective-C 框架构建 Swift 项目时出现“架构 arm64 的未定义符号”错误
架构 arm64 的未定义符号:“cv::String::deallocate()”
架构 arm64 的未定义符号:FBSDK View Hierarchy 引用自:FBSDK Marketing Kit