将我的框架迁移到 Xcode 10 beta (10L176w) 后,我开始收到如下警告:
将架构 arm64 映射到 x86_64。确保为 iOS Simulator 平台正确配置了此目标的 Architectures 和 Valid Architectures 构建设置。
... 和:
将架构 armv7 映射到 i386。确保为 iOS Simulator 平台正确配置了此目标的 Architectures 和 Valid Architectures 构建设置。
尽管有这些警告,构建和单元测试都通过了。我正在使用 Swift 4.2。
不过,这些警告是关于什么的?
ARCHS = $(ARCHS_STANDARD_64_BIT)
和 VALID_ARCHS = $(inherited) x86_64 i386
构建 64 位时看到这一点
转到构建设置并执行如下所示
https://i.stack.imgur.com/3X9MM.png
通过将我的 Valid Architectures 设置更改为与我的 Architectures 设置匹配的 $(ARCHS_STANDARD)
,我能够消除这些警告。
奇怪的是,这显示为 armv7 arm64
(与默认设置 armv7 armv7s arm64
相比),但手动将其设置为该值仍会导致警告。不知道这有什么意义,但我还没有注意到我的测试中有任何问题。
您可能为目标或其项目覆盖了 VALID_ARCHS(“有效架构”)构建设置。这是一个构建设置,应该根据您正在构建的运行目标自动获取其值。当您确定此覆盖的来源(覆盖时构建设置将以粗体显示)时,选择它并按删除键将其恢复为默认值。
VALID_ARCHS
。它包含用于调试和发布的 arm64
。
VALID_ARCHS
以将其设置为默认值,然后再次清理并关闭/打开 Xcode 以使其完全为我工作
对于报告警告的目标,将“有效架构”设置更改为:
$(VALID_ARCHS)
x86_64
https://i.stack.imgur.com/D5JvK.png
与其他答案类似,我可以通过将 $(VALID_ARCHS)
(有效架构)更改为 $(ARCHS_STANDARD)
来删除警告。从那里,我清除了所有派生数据并重新启动了 Xcode 10.0。这使得警告完全消失。从有效架构中删除所有内容只会出现不同的警告(“未找到有效架构”)。
我也面临同样的问题。为了解决问题,我刚刚将构建系统从标准更改为旧版,这解决了问题。
解决方案更简单:在有效架构中,只需将 arm64 替换为 x86_64。
https://i.stack.imgur.com/287iN.png
https://i.stack.imgur.com/qG2Se.png
更换:
armv7 和 i386,
带有 i386 的 armv7s,
并且,带有 x86_64 的 arm64
(如警告中所述)是我的解决方案。有效架构设置中的结果是:
https://i.stack.imgur.com/vpQF2.png
更换后,我上面的三个警告消失了。
可以在此处找到有关架构的更深入的信息:https://docs.elementscompiler.com/Platforms/Cocoa/CpuArchitectures/
我认为 Xcode 中这个警告的表述有点混乱。
如果您在 Flutter 中遇到问题:
删除 Podfile、Podfile.lock、Pods 文件夹、Runner.xcworkspace、Flutter.framework。运行扑干净。运行颤振构建 ios。
https://i.stack.imgur.com/yByk4.png
我发现解决此问题的最简单方法是在我的文本编辑器中打开项目,然后查找并删除所有 VALID_ARCHS
行。
我在构建框架时看到了同样的警告。一段时间后注意到这些有效的架构值会根据设备类型而有所不同,而不管构建设置中的值如何。
Real devices-> arm64
Simulator devices ->x86-64
转到目标>构建设置>架构>排除架构(x84_64)..它用于运行真实设备并使用(arm64)为(任何SDK)运行模拟器。
如果选择排除架构 > 调试和发布
https://i.stack.imgur.com/BPcrM.png
https://i.stack.imgur.com/HxuFm.png
要从根本上从根本上解决这个问题,您必须选择(Any IOS Simulator SDK)而不是(Any SDK)并设置值(arm64)。在这种情况下,您可以一起构建和运行,而无需更改每个值时间。
https://i.stack.imgur.com/k10Mf.png
如果您的 [build Settings] 是 armv7 armv7s arm64,请删除 armv7s。警告将被取消。
There are no valid architectures to compile for because the VALID_ARCHS build setting is an empty list