架构 arm64 的未定义符号:Crashlytics (CLSBetaController.o) 中的 CLSBetaController 块调用
Posted
技术标签:
【中文标题】架构 arm64 的未定义符号:Crashlytics (CLSBetaController.o) 中的 CLSBetaController 块调用【英文标题】:Undefined symbols for architecture arm64: CLSBetaController block invoke in Crashlytics(CLSBetaController.o) 【发布时间】:2017-03-08 16:50:00 【问题描述】:大家好,我今天更新了项目中的 pod 文件,我看到 Crashlytics 从 3.8.3 更新到 3.8.4。安装后,我尝试运行该项目,但看到此错误并且无法构建该项目。
在终端中
Installing Crashlytics 3.8.4 (was 3.8.3)
在 Xcode 问题中
Undefined symbols for architecture arm64:
"_FABNetworkMaximumRetryCount", referenced from:
___51-[CLSBetaController loadUpdateWithCompletionBlock:]_block_invoke in Crashlytics(CLSBetaController.o)
ld: symbol(s) not found for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
【问题讨论】:
【参考方案1】:打开Podfile
源码
移除织物和 Crashlytics 吊舱
pod 'crashlytics'
pod 'Fabric'
安装 pod
pod install
Fabric 和 crashlytics pod 都将被移除。
再次打开 Podfile
并添加两个 pod,如下所示
pod 'crashlytics'
pod 'Fabric'
再次安装 pod
pod install
`终于更新了运行脚本
选择项目>>选择目标>>构建短语>>在运行脚本下
"$PODS_ROOT/Fabric/run" YOUR_API_KEY YOUR_BUILD_SECRET
【讨论】:
【参考方案2】:确保在使用 pod 时打开 .xcworkspace 文件而不是项目 (.xcodeproj) 文件。这应该可以解决链接问题。
【讨论】:
【参考方案3】:这对我有用。
按照所有说明进行操作:引入 2 个框架,添加到 plist,添加 Run Phrase 脚本,但不要添加:
Fabric.with([Crashlytics.self])
清理并构建项目。这次它应该可以正常工作。没有“_FABNetworkMaximumRetryCount”错误
然后重新添加:
Fabric.with([Crashlytics.self])
到 didFinishLaunchingWithOptions,现在再次构建。出于某种原因,这对我有用。
【讨论】:
以上是关于架构 arm64 的未定义符号:Crashlytics (CLSBetaController.o) 中的 CLSBetaController 块调用的主要内容,如果未能解决你的问题,请参考以下文章
架构 arm64 的未定义符号:“cv::String::deallocate()”
删除/重新添加文件,现在我得到架构 arm64 的未定义符号:
Unity AR Foundation Xcode 项目中架构 arm64 的未定义符号
架构 arm64 的未定义符号:Crashlytics (CLSBetaController.o) 中的 CLSBetaController 块调用