警告"将架构arm64映射到x86_64"是什么意思?

cou*_*elk 66 xcode ios swift xcode10

在将我的框架迁移到Xcode 10 beta(10L176w)之后,我开始收到类似的警告:

将架构arm64映射到x86_64.确保为iOS模拟器平台正确配置了此目标的体系结构和有效体系结构构建设置.

......和:

将架构armv7映射到i386.确保为iOS模拟器平台正确配置了此目标的体系结构和有效体系结构构建设置.

尽管有这些警告,构建和单元测试都通过Ok.我正在使用Swift 4.2.

这些警告仍然是什么?

Has*_*leb 78

转到" 构建设置",然后执行以下操作

在此输入图像描述

  • 只是为了澄清,必须在项目和目标上完成. (17认同)
  • Xcode对每个版本都很陌生 (8认同)
  • 我确认,这对我有用 - 我不知道为什么,但这些设置在项目和目标构建设置中都以粗体突出显示.然后我删除了如上所述(在两个地方!),这只是删除了粗体突出显示(显然恢复为默认值),警告消失了 (4认同)
  • 当我删除它时,“已解决”中没有任何内容,并且我得到“没有有效的体系结构可编译,因为VALID_ARCHS构建设置为空列表”。 (4认同)
  • 很好的答案,我建议将此作为解决方案。 (2认同)
  • 似乎不再起作用了。我在 Xcode 11 beta 6 中遇到了 Crystal 报告的同样问题。@John 的答案对我有用 (2认同)

Joh*_*ery 50

通过将我的"有效架构"设置更改$(ARCHS_STANDARD)为与我的"架构"设置相匹配,我能够使警告静音.

奇怪的是,这显示为"armv7 arm64"(与"armv7 armv7s arm64"的默认设置相比),但手动将其设置为该值仍然会引发警告.不知道那是什么意义,但我还没有发现我的测试中有任何问题.

  • 此设置适用于面向 iOS 和 macOS 的“通用”框架。 (2认同)
  • @CGN 你是如何在项目中设置的?我成功设置了目标。 (2认同)

Ric*_*ard 20

您可能已为目标或其项目覆盖了VALID_ARCHS("有效体系结构")构建设置.这是一个构建设置,应根据您正在构建的运行目标自动获取其值.当您确定此覆盖的来源时(构建设置将在覆盖时以粗体显示),选择它并按下删除键将其恢复为默认值.

  • 这似乎是Xcode 10中的一个错误.仍然会出现默认设置 (9认同)
  • 这似乎仍然出现在Xcode 10的发布版本中.任何人都有这方面的任何更新? (4认同)
  • 我的Xcode 10面临同样的问题. (4认同)
  • 我也看到这个错误。我没有覆盖设置`VALID_ARCHS`。它包含用于调试和发布的 `arm64`。 (2认同)
  • 我需要转到我所有的子项目和目标并删除“VALID_ARCHS”以将其设置为默认值,然后再次清理并关闭/打开 Xcode 以使其完全适合我 (2认同)

Qua*_*uan 8

对于报告警告的目标,将“有效架构”设置更改为:

$(VALID_ARCHS)
x86_64
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明


jld*_*ley 5

与其他答案类似,我可以通过将$(VALID_ARCHS)(有效架构)更改为来消除警告$(ARCHS_STANDARD)。从那里,我清除了所有派生数据并重新启动了Xcode 10.0。这使警告完全消失了。从“有效架构”中删除所有内容只会显示一个不同的警告(“未找到有效架构”)。