new ios6 architecture error: file is universal (3 slices) but does not contain a(n) arm7vs slice
Asked Answered
P

1

11

I have a device that was designed in cordova 1.8.1 and xcode 4.4. I wanted to be able to update it to work on the iPhone 5 and ios 6.However even when I try to just run the app for debugging in xocde 4.5 I receive this error:

file is universal (3 slices) but does not contain a(n) armv7s slice: /Users/Shared/Cordova/Frameworks/Cordova.Framework/Cordova for architecture armv7s. 

I have googled it, and tried to set the project to target arm7vs but it doesn't work. Can anyone tell me what causes this error?

Do i need to update my version of Cordova/PhoneGap?

Peg answered 2/10, 2012 at 8:50 Comment(0)
M
41

iPhone 5's SoC has a new architecture: armv7s. When you switched to Xcode 4.5, your project's "Valid Architectures" setting might have been updated to include armv7s as well. The problem is that your libraries do not seem to support it yet (they are not built for armv7s).

You have three options to fix this:

  • Remove armv7s from the project (target) "Build Settings" / "Valid Architectures": enter image description here

  • Set the "Build Active Architecture Only" setting to YES:
    enter image description here

  • Update the static libraries (if they have a newer version with armv7s support)

EDIT: For those who cannot find the Build Active Architecture Only option, make sure that the "All" filter button is active under Build Settings:

enter image description here

Marx answered 2/10, 2012 at 9:44 Comment(2)
If i remove armv7s from the project, it won't work on iphone5/ios6 will it?Peg
It will! Plain armv7 is supported by iPhone 3GS,4,4S and 5 plus all iPads. armv7s has some new features/optimizations (you might get better performance on an iPhone 5 compared with an armv7 build) but it is not mandatory.Assault

© 2022 - 2024 — McMap. All rights reserved.