What does warning “Mapping architecture arm64 to x86_64” mean?

风流意气都作罢 提交于 2019-12-20 09:25:41

问题


After migrating my framework to Xcode 10 beta (10L176w) I started to get warnings like:

Mapping architecture arm64 to x86_64. Ensure that this target's Architectures and Valid Architectures build settings are configured correctly for the iOS Simulator platform.

... and:

Mapping architecture armv7 to i386. Ensure that this target's Architectures and Valid Architectures build settings are configured correctly for the iOS Simulator platform.

Despite these warnings the build and the unit tests all pass Ok. I'm using Swift 4.2.

Still, what are these warnings about?


回答1:


Go to Build Settings and do as shown below




回答2:


I was able to silence these warnings by changing my Valid Architectures setting to $(ARCHS_STANDARD) which matches my Architectures setting as well.

Oddly, this displayed as armv7 arm64 (in comparison to the default setting of armv7 armv7s arm64), but setting it to that value manually still caused the warnings. Not sure what the significance of that is, but I haven't noticed any problems in my testing yet.




回答3:


You likely have the VALID_ARCHS ("Valid Architectures") build setting overridden, either for the target or for its project. This is a build setting that should get its value automatically based on which run destination you're building for. When you figure out where this override is coming from (the build setting will display in bold when overridden), select it and hit the delete key to restore it to the default value.




回答4:


For the TARGET which report warnings, Change the "Valid Architecture" setting to:

$(VALID_ARCHS)
x86_64




回答5:


Similar to other answers, I was able to remove the warning by changing $(VALID_ARCHS) (Valid Architectures) to $(ARCHS_STANDARD). From there, I cleared all Derived Data and restarted Xcode 10.0. This made the warning go away completely. Deleting everything from Valid Architectures just made a different warning appear ("No valid architectures found").




回答6:


The solution is simpler: in Valid Architectures just replace arm64 with x86_64.

Had similar issue and the following three warnings in my project:

My Valid Archtectures originally were

Replacing:

  • armv7 with i386,
  • armv7s with i386,
  • and, arm64 with x86_64

(as mentioned in the Warnings) was my solution. The result in the Valid Architecture setting was:

After the replacements my three warnings above disappeared.

More profound info about the Architectures can be found here: https://docs.elementscompiler.com/Platforms/Cocoa/CpuArchitectures/

I think the formulation of this warning in Xcode is a bit confusion.

Hope this helps




回答7:


I was seeing this warning when I tried to compile code for both iOS and Mac OS. I was able to get around it by first doing what Hassan Taleb suggested in his answer: clear out the architectures so that only valid iPhone architectures are in there. And then finally, to maintain being able to build for Mac OS, wave your mouse over the Valid Architectures so that a plus button appears. Click that and then you can add separate settings for different platforms as needed, including different CPU architectures. For macOS SDK, I can set my Valid Architectures to just x86_64 if I want.




回答8:


if your [build Settings] is armv7 armv7s arm64, please delete armv7s. the warning will be cancelled.



来源:https://stackoverflow.com/questions/50768723/what-does-warning-mapping-architecture-arm64-to-x86-64-mean

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!