我正在尝试在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)。我在排除的架构中没有任何设置。

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


当前回答

在我的案例中:

我有四种配置(+DebugQa和ReleaseQa)。Cocoapods用作依赖关系管理器。

对于DebugQa,我在设备和模拟器上收集数据,而在ReleaseQa上只在设备上收集数据。

它有助于在PodsProject中将BuildActiveArchitecture设置为“yes”。

其他回答

在下图中,在排除的体系结构中→ 在调试和释放中点击+按钮→ 在调试和发布中。

X代码12

从“用户定义”组下的“生成”设置中删除VALID_ARCH对我有效。

节省时间的敬礼。

转到->应用程序->Xcode->右键单击Xcode->单击获取信息->使用rosetta选择打开。

请确保它在你的pod文件中,删除它。config.build_settings['ARCHS[sdk=iphonesimulator*]']=uname-m

[]

如果你的问题没有解决,也可以试试这个

从项目目录中删除所有突出显示的文件,并通过“pod安装”重新安装pod。

在我们的案例中,这是Jenkins构建中的一个错误:

框架/版本'xxx/Library/Developer/Xcode/DerivedData/xxx cuytrcyjdlfetmavpdonsknoypgk/构建/产品/调试iphoneos/AppsFlyerLib.framework/AppsFryerLib(AFSDKDevice.o),为iOS构建,但在为Mac Catalyst构建的对象文件中链接,文件'xxx/Library/Developer/Xcode/DerivedData/xxx cuytrcyjdlfetmavpdonsknoypgk/Build/Products/Debug-iphoneos/AppsFlyerLib.framework/AppsFlyerLib'用于体系结构arm64

我们用sudo gem更新cocapods修复了它。

Xcode 12中已删除有效体系结构构建设置。如果此生成设置中有值,则它们会导致问题,需要删除。

我能够“清除”VALID_ARCHS构建设置,方法是将其作为用户定义的构建设置(没有值)添加回,运行项目(失败),然后删除VALID_AARCHS构建设置。之后,我可以在模拟器上运行了。

我的体系结构构建设置是标准体系结构。

您可以从“生成设置”中的加号按钮添加用户定义的设置: