返回

构建 iOS 模拟器的 Xcode 12 架构特性 - 告别 arm64 的烦恼

IOS

前言

Xcode 12 构建 iOS 模拟器时,您可能会遇到一个令人头疼的错误提示:“building for iOS Simulator, but linking in object file built for iOS, xxxx for architecture arm64”。这个错误表明您正在尝试使用为 iOS 真实设备构建的库或文件来构建 iOS 模拟器。

问题根源:架构不匹配

导致此错误的原因是架构不匹配。iOS 模拟器使用的是 x86_64 架构,而 iOS 真实设备使用的是 arm64 架构。当您尝试使用为 arm64 架构构建的库或文件来构建 iOS 模拟器时,就会出现这个错误。

解决方案:确保架构一致

解决此错误的唯一方法是确保您使用的库或文件与您正在构建的架构一致。这意味着如果您要构建 iOS 模拟器,您必须使用为 x86_64 架构构建的库或文件。

如何确定库或文件的架构?

要确定库或文件的架构,您可以使用以下命令:

lipo -info /path/to/library.a

此命令将显示库或文件的架构。如果架构是 arm64,那么您需要找到一个为 x86_64 架构构建的库或文件。

最佳实践:使用通用库

为了避免此类错误,我们建议您使用通用库。通用库可以同时在 iOS 模拟器和 iOS 真实设备上运行。您可以使用以下命令创建通用库:

lipo -create /path/to/arm64_library.a /path/to/x86_64_library.a -output /path/to/universal_library.a

此命令将创建一个名为 universal_library.a 的通用库。您可以使用此库来构建 iOS 模拟器和 iOS 真实设备。

小贴士:选择合适的工具

在 Xcode 12 中,您可以使用以下工具来构建 iOS 模拟器:

  • 真机调试 :此工具允许您在真机上调试您的应用。
  • 模拟器 :此工具允许您在模拟器上运行您的应用。
  • 存档 :此工具允许您将您的应用打包成一个 .ipa 文件。

结语

如果您在构建 iOS 模拟器时遇到错误提示“building for iOS Simulator, but linking in object file built for iOS, xxxx for architecture arm64”,那么您需要确保您使用的库或文件与您正在构建的架构一致。我们建议您使用通用库来避免此类错误。

希望这篇指南对您有所帮助!如果您还有其他问题,请随时与我们联系。