我正在尝试在Xcode 12(beta 5)中构建一个大型(正在开发Xcode 11!)项目,为iOS 14做准备。代码库以前是Objective-C中的,但现在它同时包含Objective-C和Swift,并使用Objective-C或Swift的pod。

我已经推出了支持Xcode 12的CocoaPods新测试版(目前为1.10.0.beta 2)。

Pod安装成功。当我进行构建时,在pod框架上出现以下错误:

为iOS模拟器构建,但链接到为iOS构建的对象文件中,用于体系结构arm64

以及可能的错误:

无法加载目标“arm64-apple-ios11.0”的标准库

当我在框架上运行lipo-info时,它有:armv7s armv7 i386 x86_64 arm64。

此前,该项目的有效架构设置为:armv7、armv7s和arm64。

在Xcode 12中,根据苹果的文档,该设置将消失。架构设置为$(ARCH_STANDARD)。我在排除的架构中没有任何设置。

这里可能发生了什么?我还没能用一个更简单的项目重现这一点。


当前回答

排除arm64后,我总是得到ARCHS[@]:未绑定变量。对我来说,唯一的解决方案是将x86_64添加到此处提到的目标构建设置中。升级到Xcode 12:ld:building For iOS Simulator后出现问题,但链接到dylib build For iOS,架构arm64。您也可以删除之前添加的exclude arm64。

其他回答

1.将arm64添加到构建设置->排除所有目标中的体系结构。

2.关闭Xcode并按照以下步骤打开

右键单击Finder中的Xcode显示简介用Rosetta打开

轻松修复

右键单击Applications文件夹中的xcode获取信息选择“使用Rosetta打开”

Run.

Xcode获取信息

所有这些答案中隐藏的宝石

我在主要项目的目标中更改了“排除架构”,但在PODS项目中没有更改。这是一块真正隐藏的宝石。我已经处理这个问题好几个星期了。

在我的例子中,我试图在发布模式下运行watchOS 7模拟器,但iOS 14模拟器处于调试模式。

因此,简单地将两个模拟器置于调试/发布模式就解决了我的问题!

我找到了解决方案!SwiftUI预览无法使用Firebase

如果您将模拟器的排除架构设置为arm64,它将编译。