架构 arm64 的未定义符号:Xcode 12

bon*_*912 13 ios swift xcode12

我在添加 3rd 方框架后尝试构建一个项目,但是在添加框架后我无法编译该项目,我收到架构 arm64 的未定义符号:尝试在设备上编译时出错,但我可以在模拟器上编译. 我已经尝试了在 stackoverflow 上找到的所有其他解决方案。任何帮助表示赞赏!

这是我尝试过的:

  • 在排除架构中添加了值为arm64 的Any iOS Simulator SDK 。
  • 我确实在其他链接器标志中有 $(inherited)
  • 将启用位码设置为否

我尝试过的所有解决方案都不适合我。

Undefined symbols for architecture arm64:
      "_OBJC_CLASS_$_*", referenced from:
          objc-class-ref in frameworkName.o
    ld: symbol(s) not found for architecture arm64
    clang: error: linker command failed with exit code 1 (use -v to see invocation)
Run Code Online (Sandbox Code Playgroud)

bon*_*912 3

我发现了这个问题。

我的项目支持比框架更低的最低部署目标,这导致了问题。我必须从特定的 iOS 版本开始包含该框架。

这是场景和问题:我的项目支持 iOS 9,框架支持从 9.1 开始。因此,我没有获得最新的框架,而是 Cocoapods 下载了不支持 arm64 的旧版本框架。

所以暂时我只包含了 iOS 9.1 及以上版本的框架:

platform :ios, '9.1'
      pod 'PodName', '~> 3.2'
Run Code Online (Sandbox Code Playgroud)

然后项目编译正确,感谢那些试图提供帮助的人。为此我花了半天时间,并将其放在这里供可能面临同样问题的人使用。