Crashlytics error: Undefined symbols for architecture arm64
Crashlytics error: Undefined symbols for architecture arm64
在我的应用程序中更新 Fabric Crashlytics 后,我无法再在我的 iOS 设备上 运行 它了。在模拟器上它工作正常。错误是:
Undefined symbols for architecture arm64:
"_gzopen", referenced from:
-[CLSPackageReportOperation compressFile:] in Crashlytics(CLSPackageReportOperation.o)
"_gzwrite", referenced from:
___42-[CLSPackageReportOperation compressFile:]_block_invoke in Crashlytics(CLSPackageReportOperation.o)
"_gzclose", referenced from:
-[CLSPackageReportOperation compressFile:] in Crashlytics(CLSPackageReportOperation.o)
ld: symbol(s) not found for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
已解决。我删除了 Crashlytics.framework 并重新安装它。
对我来说,解决方案是 Build Phases - Link Binary With Libraries add libc++ and works,在我的遗留项目中。
我 运行 遇到了类似的问题,当时我正在更新 Xcode 5 之前创建的应用程序。
自 Xcode 5 个新项目构建时默认启用模块。在我的旧应用程序中,"Enable Modules" 被设置为 "No"。这就是解决方案。
Crashlytics 和 Fabric 要求您 link 您的目标针对以下各项:
- Security.framework
- SystemConfiguration.framework
- libc++
- libz
只是 select 你的目标 -> 构建阶段 -> Link 带库的二进制文件 -> 添加缺少的。
希望对您有所帮助。
我通过将 $(inherited)
添加到构建设置中的其他链接器标志来解决这个问题。
在项目(非目标)信息选项卡中将配置文件设置为 none 并再次 运行 pod install
在此处扩展 。 Select“Build Phases”选项卡,单击“Link Binary With Libraries”旁边的“+”并添加 -
- Security.framework
- SystemConfiguration.framework
- StoreKit.framework
- libsqlite3.tbd
- libz.tbd
- libc++.tbd
根据 Google,开发人员应使用 Crashlytics via Firebase。从 Firebase v5.16.0 和 Fabric v1.9.0 (Xcode 10.1) 开始,这对我有用。
我通过添加 $(inherited) $(OTHER_LDFLAGS) -ObjC -l"sqlite3" -l"z" -l[=16= 解决了这个问题] -framework "Crashlytics" -framework "Fabric" -framework "Security" -framework "SystemConfiguration" -framework "UIKit" 到构建设置中的其他链接器标志。
我对这个问题的解决方案是:
对于“发布”也将“仅构建活动架构”更改为“是”。
可以找到设置,选择您的项目>“构建设置”>“目标”(您的目标)>“架构”
在你的项目目标中做,也在你的项目测试目标中做
在 M1 Mac
在排除的架构中添加“任何 iOS Simulator SDK”-“arm64”在目标、测试和您添加的所有库中。
我通过从其他链接器标志中删除“导致错误的库”解决了这个问题。
在我的应用程序中更新 Fabric Crashlytics 后,我无法再在我的 iOS 设备上 运行 它了。在模拟器上它工作正常。错误是:
Undefined symbols for architecture arm64: "_gzopen", referenced from: -[CLSPackageReportOperation compressFile:] in Crashlytics(CLSPackageReportOperation.o) "_gzwrite", referenced from: ___42-[CLSPackageReportOperation compressFile:]_block_invoke in Crashlytics(CLSPackageReportOperation.o) "_gzclose", referenced from: -[CLSPackageReportOperation compressFile:] in Crashlytics(CLSPackageReportOperation.o) ld: symbol(s) not found for architecture arm64 clang: error: linker command failed with exit code 1 (use -v to see invocation)
已解决。我删除了 Crashlytics.framework 并重新安装它。
对我来说,解决方案是 Build Phases - Link Binary With Libraries add libc++ and works,在我的遗留项目中。
我 运行 遇到了类似的问题,当时我正在更新 Xcode 5 之前创建的应用程序。
自 Xcode 5 个新项目构建时默认启用模块。在我的旧应用程序中,"Enable Modules" 被设置为 "No"。这就是解决方案。
Crashlytics 和 Fabric 要求您 link 您的目标针对以下各项:
- Security.framework
- SystemConfiguration.framework
- libc++
- libz
只是 select 你的目标 -> 构建阶段 -> Link 带库的二进制文件 -> 添加缺少的。
希望对您有所帮助。
我通过将 $(inherited)
添加到构建设置中的其他链接器标志来解决这个问题。
在项目(非目标)信息选项卡中将配置文件设置为 none 并再次 运行 pod install
在此处扩展
- Security.framework
- SystemConfiguration.framework
- StoreKit.framework
- libsqlite3.tbd
- libz.tbd
- libc++.tbd
根据 Google,开发人员应使用 Crashlytics via Firebase。从 Firebase v5.16.0 和 Fabric v1.9.0 (Xcode 10.1) 开始,这对我有用。
我通过添加 $(inherited) $(OTHER_LDFLAGS) -ObjC -l"sqlite3" -l"z" -l[=16= 解决了这个问题] -framework "Crashlytics" -framework "Fabric" -framework "Security" -framework "SystemConfiguration" -framework "UIKit" 到构建设置中的其他链接器标志。
我对这个问题的解决方案是:
对于“发布”也将“仅构建活动架构”更改为“是”。
可以找到设置,选择您的项目>“构建设置”>“目标”(您的目标)>“架构”
在你的项目目标中做,也在你的项目测试目标中做
在 M1 Mac
在排除的架构中添加“任何 iOS Simulator SDK”-“arm64”在目标、测试和您添加的所有库中。
我通过从其他链接器标志中删除“导致错误的库”解决了这个问题。