将我的框架迁移到Xcode 10 beta(10L176w)后,我开始收到警告:
将架构arm64映射到x86_64。确保为iOS模拟器平台正确配置了此目标的体系结构和有效体系结构构建设置。
......和:
将架构armv7映射到i386。确保为iOS模拟器平台正确配置了此目标的体系结构和有效体系结构构建设置。
尽管有这些警告,构建和单元测试都通过Ok。我使用的是Swift 4.2。
然而,这些警告是什么?
答案 0 :(得分:59)
答案 1 :(得分:33)
我能够通过将我的有效架构设置更改为$(ARCHS_STANDARD)
使其与我的 Architectures 设置也匹配的方式来消除这些警告。
奇怪的是,它显示为armv7 arm64
(与armv7 armv7s arm64
的默认设置相比),但是手动将其设置为该值仍会引起警告。不知道这样做的意义是什么,但是我还没有注意到测试中的任何问题。
答案 2 :(得分:18)
您可能已为目标或其项目覆盖了VALID_ARCHS(“有效体系结构”)构建设置。这是一个构建设置,应根据您正在构建的运行目标自动获取其值。当你弄清楚这个覆盖的来源时(构建设置在被覆盖时将以粗体显示),选择它并点击删除键将其恢复为默认值。
答案 3 :(得分:4)
类似于其他答案,我能够通过将$(VALID_ARCHS)
(有效架构)更改为$(ARCHS_STANDARD)
来消除警告。从那里,我清除了所有派生数据并重新启动了Xcode 10.0。这使警告完全消失了。从“有效架构”中删除所有内容只会显示一个不同的警告(“找不到有效的架构”)。
答案 4 :(得分:4)
答案 5 :(得分:1)
如果您在Flutter中遇到问题:
删除 Podfile, Podfile.lock, Pods文件夹, Runner.xcworkspace,Flutter.framework。
运行flutter clean
。
flutter build ios
。答案 6 :(得分:0)
当我尝试为iOS和Mac OS编译代码时,我看到此警告。 通过首先执行哈桑·塔莱布(Hassan Taleb)在他的回答中建议的方法,我能够解决该问题:清除架构,以便仅使用有效的iPhone架构。最后,为了保持能够针对Mac OS进行构建,请在“有效体系结构”上移动鼠标,以便出现加号按钮。单击该按钮,然后可以根据需要为不同的平台添加单独的设置,包括不同的CPU体系结构。对于macOS SDK,我可以根据需要将有效架构设置为x86_64。
答案 7 :(得分:0)
解决方案更简单:在有效架构中,只需用x86_64替换arm64 。
替换:
(如警告中所述)是我的解决方案。 有效架构设置中的结果是:
更换后,我上面的三个警告消失了。
有关体系结构的更深入的信息可以在这里找到: https://docs.elementscompiler.com/Platforms/Cocoa/CpuArchitectures/
我认为Xcode中此警告的表达有点混乱。
希望这会有所帮助
答案 8 :(得分:0)
我发现解决此问题的最简单方法是在文本编辑器中打开项目,然后查找并删除所有VALID_ARCHS
行。
答案 9 :(得分:0)
我也面临着同样的问题。为了解决问题,我刚刚将构建系统从标准更改为传统,从而解决了该问题。
答案 10 :(得分:0)
在构建框架时,我看到了同样的警告。 过了一会儿,这些有效的架构值会根据设备的类型而有所不同,无论构建设置中的值如何。
Real devices-> arm64
Simulator devices ->x86-64
答案 11 :(得分:-1)
如果您的[内部设置]是armv7 armv7s arm64,请删除armv7s。该警告将被取消。