Xcode 5.1: missing required architecture arm64

2020-01-26 06:20发布

问题:

Just upgraded to Xcode 5.1, getting the following error:

ignoring file ...Dependencies/SalesforceNetworkSDK/libSalesforceNetworkSDK.a, missing required architecture arm64 in file ...Dependencies/SalesforceNetworkSDK/libSalesforceNetworkSDK.a (3 slices)

If I turn off build active archs only and remove arm64 from valid archs I get:

Build/Products/Debug-iphoneos/libPods.a, file was built for archive which is not the architecture being linked (armv7)

回答1:

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.

Reference from this post.

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



回答2:

Don't know previous iOS but Setting Build Active Architecture Only to YES in iOS 8 did the trick.



回答3:

I ended up getting my project to build by (1) turning off build active archs only (2) removing arm64 from valid archs and (3) making sure that the Pods project was building for only armv7 and armv7s.

Also worth noting here, that at the time of writing this edit, Salesforce mobile SDK was not available for arm64



回答4:

I just changed the Debug from Yes to No,

Build Settings -> Architectures -> Build Active Architecture Only -> Debug -> NO.

This one fixed my error.