Arm64 Architecture in Xcode 5.1

Arm64 architecture in xcode 5.1

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

Xcode 5.1: missing required architecture arm64

According to apple's release note, see the following note point.

Note:

Be aware of the following architectures issues when opening your
existing projects in Xcode 5.1:

  • When building for all architectures, remove any explicit
    architectures setting and use the default Standard Architectures
    setting. For projects that were previously opted-in using “Standard
    Architectures Including 64-Bit”, switch back to the “Standard
    architectures” setting.
  • When opening an existing project for the first time, Xcode 5.1 may
    display a warning about the use of the Xcode 5.0 architectures
    setting. Selecting the warning provides a workflow to revise the
    setting.
  • Projects not able to support 64-bit need to specifically set the
    architectures build setting to not include 64-bit.

So you've to set architecture as below to support libs architecture.

Sample Image

Reference from this post.

Update: From May 15, you've to take build from 5.1.1, see this post.

Can you make Xcode 5.1 target dependencies build only valid architectures?

Our quick fix was to leave the Architectures entry as $(ARCHS_STANDARD) but change Valid Architectures to armv7 and armv7s until the third party libraries we're using are updated.

cannot remove arm64 architecture Xcode

Xcode 5.1 forces arm64 as standard architecture. However, the Xcode release notes also mentions,

Projects not able to support 64-bit need to specifically set the architectures build setting to not include 64-bit.

Apple does not explicitly say it is mandatory to have arm64 support. I have not found any official doc saying Apple has made it mandatory to support arm64 arch, not even the app review guideline. However, it is Apple you never can predict.

Anyways, to change the architecture settings goto,

  • Targets-->Build Settings-->Architectures-->Architectures
  • Select "Other"
  • Replace $(ARCH_STANDARD) with $(ARCHS_STANDARD_32_BIT)
  • Now archive

Once before submitting the ipa to appstore do a Validation through Xcode.

Hope that helps!

Architecture Build Settings Won't Change in Xcode 5.1

Your Architectures value will currently be set to $(ARCHS_STANDARD), which as of Xcode 5.1 includes arm64. You should certainly be able to edit the value - just double click it like you would any other value in the Build Settings.

To remove arm64, you can change the value to $(ARCHS_STANDARD_32_BIT), which just includes armv7 and armv7s. You may also need to edit Valid Architectures to remove arm64 from there.

However, if possible, you should try and ensure you support arm64 within your app.

How to link with framework without arm64 support in Xcode 5.1?

Sample Image

Change:

  • Architectures: Standard
  • Valid Architectures: arm64 armv7 armv7s

To:

  • Architectures: armv7 armv7s
  • Valid Architectures: armv7 armv7s

xcode 5.1: libCordova.a architecture problems

@Shazron posted the fix on the Apache JIRA - he notes that the fix will be released as part of Cordova 3.5:

  1. Select your Project icon
  2. Choose Build Settings.
  3. For "Architectures", select $ARCHS_STANDARD - Standard architectures (armv7, armv7s, arm64)
  4. For "Valid Architectures", add "arm64"
  5. Select your CordovaLib.xcodeproj icon
  6. In the Build Settings for the Project (not Target), delete the conditional architecture settings (hover to see the minus sign)
  7. For "Architectures", select $ARCHS_STANDARD - Standard architectures (armv7, armv7s, arm64)
  8. For "Valid Architectures", add "arm64"
  9. Goto 6, but now do it for "Target"

Here's a link to Shazron's complete writeup of this problem: http://shazronatadobe.wordpress.com/2014/03/12/xcode-5-1-and-cordova-ios/

It is now released and the short version of what to do is:

Cordova CLI 3.4.1-0.1.0 is out, which includes Cordova iOS 3.4.1 which incorporates all the fixes mentioned in this blog post. Update your Cordova CLI, and if you have an existing project, do a “cordova platform update ios“.

how to stop xcode5.1 building for 64bit

OP is posted the solution along with the question itself. But I feel it would be better to add it as an answer. In Xcode 5.1 apple made significant changes to the architecture section. They made arm64 as part of Standard architectures. That means the projects using the default setting will be automatically build for arm64 also. So what you will do if your app does not support arm64?.

Doc says:

Projects not able to support 64-bit need to specifically set the architectures build setting to not include 64-bit.

How to do that?

  1. Goto Targets-->Build Settings-->Architectures-->Architectures

  2. Double click on the architecture will popup a menu. Choose others

    Sample Image

  3. Delete the existing row - $(ARCH_STANDARD). Add the required architectures one by one

    Sample Image

  4. Now your architecture section will look like this

    Sample Image



Related Topics



Leave a reply



Submit