Way to restore Xcode to accept armv6 architecture?
Asked Answered
I

2

17

I have a 3rd party .a library, which is apparently compiled for only armv6 compatibility, where both new Xcodes (3.2.6 and 4), both now require a separate armv7 slice to run on the device. The link error is: file is universal but does not contain a(n) armv7 slice for architecture armv7.

Anyone know how to make either of the two new Xcode operate as 3.2.5 did and accept the existing library while I'm waiting for the library vendor to cook up an armv7 version?

Inform answered 10/3, 2011 at 22:16 Comment(4)
If you look at your build settings, the Architectures setting is probably Standard, which includes both armv6 and armv7. To change it to just armv6, change it to custom and type in armv6.Kamalakamaria
Here's what's been working for me on Xcode 4. Open up the build settings and look for Architectures. You'll probably have a default value in there. When you edit it, a dialog will open up. Delete the default setting, and add the following on separate lines: armv6 i386 x64. That should do it (note that you're not going to get any armv7 optimization anywhere).Inform
I ran up against an issue where I had both armv7 and armv6 third party libraries and the XCode 4 linker refused to link them. Did not find any way around this, other than to compile in Xcode 3.Quinquepartite
#ben, check this out. I wrote a hack to fool the linker into thinking the armv6 libraries were armv7: #10625753Inform
G
4

In Project Settings, select "Standard" for the architecture (not "Optimized"). This should allow you to select "armv6" for the Active Architecture. This means it should also work on older devices (barring any other deprecations) once it's on the app store.

Gherkin answered 16/3, 2011 at 17:22 Comment(0)
C
9

Nothing worked for me until I set "Build Active Architecture Only" to No.

Complicate answered 16/6, 2011 at 10:0 Comment(0)
G
4

In Project Settings, select "Standard" for the architecture (not "Optimized"). This should allow you to select "armv6" for the Active Architecture. This means it should also work on older devices (barring any other deprecations) once it's on the app store.

Gherkin answered 16/3, 2011 at 17:22 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.