我正在尝试在 Xcode 12(测试版 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。
lipo -info
以前,该项目将 有效架构 设置为:armv7、armv7s 和 arm64。
根据 Apple 的文档,在 Xcode 12 中,该设置消失了。架构设置为 $(ARCHS_STANDARD)。我没有在排除架构中设置任何内容。
这里可能发生了什么?我还不能用一个更简单的项目来重现这个。
基本上,您必须从您的项目和 Pod 项目中排除arm64模拟器架构,
arm64
要么
XCConfig
EXCLUDED_ARCHS[sdk=iphonesimulator*] = arm64
然后
您必须对 Pod 项目 执行相同的操作,直到所有 Cocoa pod 供应商完成在其 Podspec 中添加以下内容。
s.pod_target_xcconfig = { 'EXCLUDED_ARCHS[sdk=iphonesimulator*]' => 'arm64' } s.user_target_xcconfig = { 'EXCLUDED_ARCHS[sdk=iphonesimulator*]' => 'arm64' }
您可以在 Pod 项目的 Build Settings* 中手动添加 Excluded Architecture ,但使用时会被覆盖。 *pod install
pod install
取而代之的是,您可以将此代码段添加到您的Podfile. 每次运行时它都会编写必要的 构建设置pod install。
Podfile
post_install do |installer| installer.pods_project.build_configurations.each do |config| config.build_settings["EXCLUDED_ARCHS[sdk=iphonesimulator*]"] = "arm64" end end