好的,我有一个解决方案可以使构建工作(这种解决问题的方法不正确,正确的修复方法已添加到我的更新中):
1你需要将Pods项目作为外部项目添加到你的主项目中
2 在主项目的构建阶段明确添加所有 cocodpods 目标作为依赖项
但我仍然认为 xcode 12 的新 beta 版可能会解决这个问题。因为这似乎是 xcode 12 的错误(我的项目在 xcode 11 和 xcode 12 + ios 设备中完美运行,仅在 xcode 12 + 模拟器中失败)
###2020-08-17 更新###
我找到了重现此问题的更确切原因,似乎我在 xcode 12 中打开的项目文件会在 User-Defines 中自动生成一个 VALID_ARCHS 宏,并且此宏会使构建失败
我发现,有了这个宏,在构建的链接过程中,链接目标类型将是未知类型
'arm64-apple-ios11.0-simulator'
这导致构建失败并且所有目标构建顺序错误的问题似乎只会在添加此宏时发生
XcodeDefault.xctoolchain/usr/bin/clang -target arm64-apple-ios11.0-simulator
删除这个 VALID_ARCHS 宏后,链接目标类型将是 'x86_64-apple-ios11.0-simulator' ,一切顺利
XcodeDefault.xctoolchain/usr/bin/clang -target x86_64-apple-ios11.0-simulator
####2020-09-11 add 添加苹果对这个宏的反馈####
更新 Apple 对 VALID_ARCHS 的反馈
-
查看您的反馈后,我们有一些额外的信息
给你:
-
Xcode 不会将 VALID_ARCHS 添加到您的项目中。确实,我们推荐
反对使用 VALID_ARCHS。也许一些 CocoaPod 将它设置在你的
出于某种原因项目? CocoaPods 不是 Xcode 的一部分,所以我们不
可以控制他们的行为。
需要注意的一点是,在 Xcode 11 中,VALID_ARCHS 出现在
架构部分。因为我们强烈反对
使用它,它不再出现在那里,现在出现在用户
定义的部分,如果它被定义的话。
-
Xcode 11 用于自动翻译 arm64 的构建
模拟器为 x86_64 构建,但现在 arm64 是有效的
模拟器架构(它是 Apple Silicon 架构),
不再发生翻译。
-
因此,我们怀疑您应该做的是从您的
完全项目,并确保架构(ARCHS)设置为
标准架构(ARCHS_STANDARD)而不是特定的东西
(除非你真的知道你为什么不使用 ARCHS_STANDARD)。
####反馈结束####
####2020-10-10 已添加####
删除某些人的 VALID_ARCHS 宏后,构建可能仍然无法正常工作,您可以查看 Apple 反馈添加的答案和@Andrei Herford 的答案如下:
确保体系结构 (ARCHS) 设置为标准体系结构
(ARCHS_STANDARD)
然后删除宏,希望这两个步骤适用于所有人:)
####2020-10-10 添加结束####