我正在尝试在 Xcode 12(beta 5)中构建一个大型(并且正在使用 Xcode 11!)项目来为 iOS 14 做准备。代码库以前在 Objective-C 中,但现在它包含 Objective-C 和 Swift,并使用 Objective-C 和/或 Swift 的 pod。
我已拉取 CocoaPods 的新测试版支持 Xcode 12(当前为 1.10.0.beta 2)。
Pod 安装成功。当我进行构建时,我在 pod 框架上收到以下错误:
building for iOS Simulator, but linking in object file built for iOS, for architecture arm64
也可能是错误:
Unable to load standard library for target 'arm64-apple-ios11.0'
当我运行时
lipo -info
在框架上,它有:armv7s armv7 i386 x86_64 arm64。以前,该项目将有效架构设置为:armv7、armv7s 和 arm64。
根据 Apple 的文档,在 Xcode 12 中,该设置消失了。架构设置为 $(ARCHS_STANDARD)。我没有在排除架构中设置任何内容。
这里可能发生了什么?我还不能用一个更简单的项目来重现这个。
最佳答案
基本上,您必须排除 arm64
对于来自您的项目和 Pod 项目的模拟器架构,
arm64
在排除架构内。或
XCConfig
文件,您可以简单地添加这一行来排除模拟器架构。EXCLUDED_ARCHS[sdk=iphonesimulator*] = arm64
那么您必须为 做同样的事情 pod 项目直到所有 Cocoa pod 供应商都完成在他们的 中添加以下内容播客规范 .
s.pod_target_xcconfig = { 'EXCLUDED_ARCHS[sdk=iphonesimulator*]' => 'arm64' }
s.user_target_xcconfig = { 'EXCLUDED_ARCHS[sdk=iphonesimulator*]' => 'arm64' }
您可以在 Pod 项目的 中手动添加 Excluded Architecturebuild设置 , 但当你使用
pod install
.取而代之的是,您可以在您的
Podfile
中添加此代码段。 .它将写入必要的 build设置 每次运行 pod install
.post_install do |installer|
installer.pods_project.build_configurations.each do |config|
config.build_settings["EXCLUDED_ARCHS[sdk=iphonesimulator*]"] = "arm64"
end
end
关于ios - 为 iOS 模拟器构建 Xcode,但链接到为 iOS 构建的目标文件,适用于架构 'arm64',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63607158/