Arm64 architecture in xcode 5.1

故事扮演 提交于 2019-11-26 12:54:45
M. Porooshani

It's not that hard to get rid of arm64 for the time being. all you need to do is to:

  • Edit your target's Build Settings. Change the value for Architectures by opening the drop down, click on Other... and select it, delete the row with value $(ARCHS_STANDARD) and add two rows with values: armv7 and armv7s (or $(ARCHS_STANDARD_32_BIT) as mentioned by nschum), close the popup.

  • Edit the value Valid Architectures and simply remove the arm64 part of it.

  • Do it for every nested project you might have inside your workspace or project.

Note: This is not a solution, it's just a few steps to mitigate your current problem, please keep following your dependency projects to find out when they come with arm64 compatibility and revert these settings' change ASAP.

Good luck

As of Xcode 5.1 $(ARCHS_STANDARD) now includes arm64 (as well as armv7 and armv7s) whereas with Xcode 5.02, $(ARCHS_STANDARD) only included armv7 and armv7s.

For Xcode 5.1

$(ARCHS_STANDARD) = armv7 armv7s arm64

$(ARCHS_STANDARD_32_BIT) = armv7 armv7s

So if you MUST compile in 64-bit then you need to make sure all included libraries have 64-bit slice. If they do not yet support 64-bit then you will have to compile in 32-bit instead.

But in either case, under your targets build settings you need to make sure that both the Achitectures and the Valid Achitectures are set the same and that they match (see images below). So you can try them both with $(ARCHS_STANDARD) and if it will not compile, then you can try them both with $(ARCHS_STANDARD_32_BIT) which in theory will remove the errors and compile a working project.

-

Like this for 64-bit with arm64 armv7s and armv7:

-

Or like this for 32-bit with armv7s and armv7 only (without arm64):

karlbecker_com

In Build Settings for your target, change the "Valid Architectures" to only those that you support; likely armv7 and armv7s in this case.

If you are using Cocoapods, be sure to change this for all of the targets within the Pods project, and set all of those targets' "Build Active Architecture Only" to "No" for all schemes.

A small change to your podfile to automatically remove the 64-bit build architecture from your cocoapods targets is detailed here: http://cameronspickert.com/2014/01/20/remove-the-arm64-architecture-from-cocoapods-targets

Setting the architecture to $(ARCHS_STANDARD_32_BIT) on XCode 5.1 works. No need to remove arm64 from valid architectures.

The Architecture specifies the actual architectures to build on and would ignore the arm64 entry in the valid architectures(which specifies the superset). Hopefully Apple fixes this soon.

I had the same error. Downloading the new version of the Google AdMob SDK 6.8.0 solved the problem. Here is the link: https://developers.google.com/mobile-ads-sdk/download#downloadios

So, disabling the arm64 architecture is not necessary.

None of the answers worked for me.
I finally submitted my app installing old Xcode 5.0.2 besides with Xcode 5.1
Used this version of Xcode to archive app without errors.

Download old version of Xcode 5.0.2 here (you must be logged in with your Apple ID):

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