好的,我得到了一个使构建工作的解决方案(这种解决问题的方法不正确,我的更新中添加了正确的修复方法):
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 添加添加 Apple 对此宏的反馈####
更新 Apple 对 VALID_ARCHS 的反馈
在查看您的反馈后,我们为您提供了一些其他信息:
Xcode 不会将 VALID_ARCHS 添加到您的项目中。事实上,我们建议不要使用 VALID_ARCHS。也许某些 CocoaPod 出于某种原因将其设置在您的项目中?CocoaPods 不是 Xcode 的一部分,所以我们无法控制它们的功能。
需要注意的一点是,在 Xcode 11 中,VALID_ARCHS 出现在架构部分下。由于我们强烈建议不要使用它,它不再显示在那里,如果它被定义,现在会出现在用户定义部分中。
Xcode 11 用于将模拟器的 arm64 构建自动转换为 x86_64 构建,但现在 arm64 是有效的模拟器架构(它是 Apple Silicon 架构),不再发生这种转换。
所以,我们怀疑你应该做的是从你的项目中完全删除 VALID_ARCHS,并确保架构 (ARCHS) 设置为标准架构 (ARCHS_STANDARD) 而不是特定的东西(除非你真的知道你为什么不使用 ARCHS_STANDARD) .
####反馈结束####
####2020-10-10 已添加####
删除某些人的 VALID_ARCHS 宏后,构建可能仍然无法正常工作,您可以查看添加的 Apple 反馈的答案以及以下@Andrei Herford 的答案:
确保体系结构 (ARCHS) 设置为标准体系结构 (ARCHS_STANDARD)
然后删除宏,希望这两个步骤适用于所有人:)
####2020-10-10 添加结束####