问题描述
我正在尝试获得一个大的(并在Xcode11上工作!)在Xcode 12(测试版5)中构建项目,为iOS 14做准备。以前的代码库位于Objective-C中,但现在它同时包含了Objective-C和SWIFT,并且还使用了Objective-C和/或SWIFT的Pod。
我已经拉出了支持Xcode 12的CocoaPods的新测试版(当前为1.10.0.beta 2)。
Pod安装成功。当我进行构建时,我在Pod框架上得到以下错误:
为iOS模拟器构建,但链接到为iOS和体系结构ARM构建的目标文件64
可能还有错误:
无法加载目标‘arm64-Apple-ios11.0’的标准库
当我在框架上运行lipo -info
时,它有:armv7s ARMv7 i386 x86_64 arm64。
以前,项目将有效体系结构设置为:ARMv7、armv7s和arm64。
根据苹果的文档,在Xcode12中,该设置消失了。架构设置为$(ARCS_STANDARD)。我没有在排除的体系结构中设置任何内容。
这里可能发生了什么?我还不能用一个更简单的项目重现这一点。
推荐答案
基本上,您必须从您的项目和Pod项目中排除模拟器架构的arm64
为此,请导航到项目的构建设置,并在排除的体系结构内添加任何iOS模拟器SDK。
或
如果您使用的是自定义XCConfig
文件,则只需添加此行即可排除模拟器架构。
EXCLUDED_ARCHS[sdk=iphonesimulator*] = arm64
然后
您必须对Pod项目执行相同的操作,直到所有可可Pod供应商完成在PodSpec中添加以下内容。
s.pod_target_xcconfig = { 'EXCLUDED_ARCHS[sdk=iphonesimulator*]' => 'arm64' }
s.user_target_xcconfig = { 'EXCLUDED_ARCHS[sdk=iphonesimulator*]' => 'arm64' }
您可以在Pod项目的生成设置中手动添加排除的体系结构,但当您
使用pod install
。
Podfile
中添加此代码段。它将在您每次运行pod install
时写入必要的生成设置。
post_install do |installer|
installer.pods_project.build_configurations.each do |config|
config.build_settings["EXCLUDED_ARCHS[sdk=iphonesimulator*]"] = "arm64"
end
end