架构 arm64 的未定义符号:CLSBetaController 块在 Crashlytics 中调用(CLSBetaController.o)

Undefined symbols for architecture arm64: CLSBetaController block invoke in Crashlytics(CLSBetaController.o)

大家好我今天更新了项目中的 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)

确保在使用 pods 时打开的是 .xcworkspace 文件而不是项目 (.xcodeproj) 文件。这应该可以解决链接问题。

打开Podfile源代码

删除结构和 Crashlytics pods

pod 'crashlytics' 
pod 'Fabric'

安装pods

pod install

Fabric 和 crashlytics pods 都将被删除。
再次打开 Podfile 并添加两个 pods 如下所示

pod 'crashlytics' 
pod 'Fabric'

再次安装pods

pod install

`最后更新 运行 脚本

Select 项目 >> Select 目标 >> 构建短语 >> 运行 脚本

"${PODS_ROOT}/Fabric/run" YOUR_API_KEY YOUR_BUILD_SECRET

这对我有用。

按照所有说明操作:引入 2 个框架,添加到 plist,添加 运行 短语脚本,但不要添加:

Fabric.with([Crashlytics.self])

清理并生成项目。这次它应该可以正常工作。没有“_FABNetworkMaximumRetryCount”错误

然后重新添加:

Fabric.with([Crashlytics.self])

didFinishLaunchingWithOptions,现在重新构建。出于某种原因对我有用。