99

将我的框架迁移到 Xcode 10 beta (10L176w) 后,我开始收到如下警告:

将架构 arm64 映射到 x86_64。确保为 iOS Simulator 平台正确配置了此目标的 Architectures 和 Valid Architectures 构建设置。

... 和:

将架构 armv7 映射到 i386。确保为 iOS Simulator 平台正确配置了此目标的 Architectures 和 Valid Architectures 构建设置。

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

不过,这些警告是关于什么的?

4

13 回答 13

104

转到构建设置并执行如下所示

在此处输入图像描述

于 2018-09-21T10:48:42.117 回答
71

通过将我的Valid Architectures设置更改为与我的Architectures$(ARCHS_STANDARD)设置相匹配,我能够消除这些警告。

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

于 2018-09-18T17:48:03.260 回答
27

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

于 2018-06-10T06:40:23.533 回答
18

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

$(VALID_ARCHS)
x86_64

在此处输入图像描述

于 2019-04-15T03:46:19.857 回答
8

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

于 2018-10-10T15:38:22.450 回答
3

我也面临同样的问题。为了解决问题,我刚刚将构建系统从标准更改为旧版,这解决了问题。

于 2020-10-09T13:58:40.197 回答
2

如果您在 Flutter 中遇到问题:

  1. 删除 Podfile、Podfile.lock、Pods 文件夹、Runner.xcworkspace、Flutter.framework。

  2. 运行flutter clean

  3. 运行flutter build ios
于 2020-05-18T08:50:54.980 回答
2

解决方案更简单:在有效架构中,只需将 arm64 替换为 x86_64

在我的项目中有类似的问题和以下三个警告: 在我的项目中有类似的问题和以下警告

我的有效架构最初是 我的**有效架构**最初是

更换:

  • armv7 和 i386,
  • 带有 i386 的 armv7s,
  • 并且,带有 x86_64 的 arm64

(如警告中所述)是我的解决方案。有效架构设置中的结果是:

如警告中所述,将 armv7 替换为 i386,将 armv7s 替换为 i386,将 arm64 替换为 x86_64 是我的解决方案

更换后,我上面的三个警告消失了。

可以在此处找到有关架构的更深入的信息: https ://docs.elementscompiler.com/Platforms/Cocoa/CpuArchitectures/

我认为 Xcode 中这个警告的表述有点混乱。

于 2019-05-14T12:51:58.607 回答
0

转到目标>构建设置>架构>排除架构(x84_64)..它用于运行真实设备并使用(arm64)为(任何SDK)运行模拟器。

如果选择排除架构 > 调试和发布

1

2

要从根本上解决这个问题,你必须选择(Any IOS Simulator SDK)而不是(Any SDK)并设置值(arm64)。在这种情况下,你可以一起构建和运行,而不必更改每个值时间。

3

于 2022-01-26T20:35:11.760 回答
0

我在构建框架时看到了同样的警告。一段时间后注意到这些有效的架构值会根据设备类型而有所不同,而不管构建设置中的值如何。

Real devices-> arm64 
Simulator devices ->x86-64
于 2020-10-26T10:57:05.257 回答
0

我发现解决此问题的最简单方法是在我的文本编辑器中打开项目,然后查找并删除所有VALID_ARCHS行。

于 2020-06-08T18:48:58.593 回答
0

当我尝试为 iOS 和 Mac OS 编译代码时,我看到了这个警告。我首先按照 Hassan Taleb 在他的回答中提出的建议来解决这个问题:清除架构,以便只有有效的 iPhone 架构在其中。最后,为了保持能够为 Mac OS 构建,将鼠标悬停在 Valid Architectures 上,这样就会出现一个加号按钮。单击它,然后您可以根据需要为不同平台添加单独的设置,包括不同的 CPU 架构。对于 macOS SDK,如果我愿意,我可以将我的 Valid Architectures 设置为 x86_64。对于 macOS SDK,如果我愿意,我可以将我的 Valid Architectures 设置为 x86_64

于 2019-02-18T01:35:35.400 回答
-2

如果您的 [build Settings] 是 armv7 armv7s arm64,请删除 armv7s。警告将被取消。

于 2018-09-28T03:15:11.657 回答