Xcode12 - 为 iOS 模拟器构建,但链接为 macOS 构建的目标文件,文件 'dir/SomeFile.a' 用于体系结构 x86_64

Saz*_*han 6 xcode linker-errors xcodebuild ios xcode12

Xcode 12当我尝试构建大型 iOS 应用程序(混合、swift+objc)时出现链接器错误。该应用程序在真实设备上构建得很好,但是当我尝试使用调试配置直接在模拟器中运行时,它会出现链接器错误。

我在这里的其他帖子中尝试了所有可能的解决方案,但不幸的是它没有奏效。尽管其他帖子中的错误有所不同。我已经检查Build for active architectures only了调试配置的 YES 和发布配置的 NO。

其他帖子错误,

为 iOS 模拟器构建,但链接为 iOS 构建的目标文件,用于架构 arm64

我的错误,

为 iOS 模拟器构建,但链接为 macOS 构建的目标文件,为体系结构 x86_64 构建的文件

我该如何解决这个问题?我需要在 iOS 真机和模拟器中运行。

Eug*_*nyk 4

无论您在哪里获得库,都应该请求为 iOS Simulator 而不是 macOS 编译的库,尽管它们具有通过lipo -info <file>.

您可以使用以下命令验证静态库 (.a) 或动态库 (.dylib) 是否已针对 iOS 模拟器进行编译:

otool -l <path-to-library> | grep platform
Run Code Online (Sandbox Code Playgroud)

输出的含义如下:

  • platform 7- iOS模拟器
  • platform 6- Mac 催化剂
  • platform 4-watchOS
  • platform 2- iOS
  • platform 1- 苹果系统

是枚举的完整定义platform