I am building my application for iOS6 and i want to support armv6 so i had added the armv6 in architecture and valid architecture. Now application is giving lot of errors when build on apple llvm 4.1 but it compiles on llvm gcc 4.2. And when i build an Adhoc app using llvm gcc 4.2 then it's not installing on iphone 3GS and ipod 3G.
It's possible as kenji has given a link in the accepted Answer
Xcode 4.5 removed support for building armv6 binaries.
You can't just add armv6 to the build settings, because the support to build it isn't there.
Edited to add
Since it was requested in the comments - confirmation for this comes from the Xcode 4.5 Release Notes
I had the same error message in 4.4.1. Problem was solved by changing deployment target from 4.0 to 4.3 and removing armv6 from Architecture.
Related
I just sent my app to itunes using xcode 4.5 The app is compatible with iphone 3.5 screen and 4 screen. And with the iPad. When I go to binary details it says this:
Supported Architectures : armv7
Whats this mean? Will my app be compatible with all iPhones? Because it should work in any iphone model or ipad model. If no, how can I make it compatible with all devices (adding other architectures?)
Your app will run on the 3GS and later devices, assuming they meet your deployment target operating system version. To run on earlier devices, you need to build for ARM v6 as well, something I'm not sure you can do in Xcode 4.5.
XCode 4.5.x only supports armv7 architecture :
Changes in Xcode 4.5.x for ios 6
Xcode 4.5.x (and later) does not support generating armv6 binaries.
Now includes iPhone 5/armv7s support.
The minimum supported deployment target with Xcode 4.5.x or later is iOS 4.3.
The minimum support for iPhone is iPhone 3GS or later as earlier versions use armv6.
Interesting question, to avoid opening another similar question, what happen if I build my app for submission with armv6, armv7 architectures, iOS6 sdk, xCode 4.5 and deployment target 4.3?
I currently have armv6,armv7 Build settings under Architectures. Screenshot
With these settings I can successfully build and install my app to iPhone4,iPad3 devices and archive for Ad-hoc distribution without any warning about armv6.
Stefano
Start from XCode 4.5, we cannot build a single IPA which combine the support of armv6, armv7 and armv7s, so how to provide update for my app to use iPhone5's feature?
Because from the doc:
"You are permitted to expand your device requirements only. Submitting an update to your binary to restrict your device requirements is not permitted."
So we cannot drop support for the armv6 app, but it is impossible to launch a new app as user already paid for the old app, so how to update?
I think is designed to stop people from downloading an app, only to find that the new version doesn't work -- a reasonable limitation.
But, when you build with Xcode 4.5 you'll find that the minimum version you can deploy on is iOS 4.3. As far as I know, no armv6 device can run 4.3. And you can't download apps that require higher versions of the OS than you're running.
In short: you can drop armv6 support. Users still running those old versions won't get further update/fixes but it won't suddenly stop working either.
Build armv6 version in older XCode and use lipo to merge them. With some fiddling you can probably add armv6 toolchain to the newer XCode as well. Some ideas from this thread (adding PPC to Xcode4) might be useful.
I have an app that I developed in Xcode 4.3.2. I am using the base SDK as 5.1. The app installs fine in iOS 5.0 and above. But I need to support iOS 4.0 and above.
The compiler I am using is Apple LLVM compiler 3.1.
I have added both armv6 and armv7 to the architectures (See attached image))
I created an AdHoc build. When I sync it using iTunes, it syncs fine with iOS 5.0 and above, I have not tested in iOS 4.3, but it does not install in iOS 4.2.1. It gives this error:
The app "App Name" could not be installed on the iPod "iPod Name" because it is not compatible with this iPod.
Any thoughts?
Thanks.
You should remove the armv7 from the Required device capabilities in the info.plist.
This restricts the app being installed on device that do not have an ARMV7 processor, like older iPad touches and iPhones.
I recently upgraded my project from Xcode 4.0.1 to Xcode 4.2 - and everything went pretty smoothly, I did some debugging in the simulator and then I decided to build with device.
My device is a 2nd gen iPod Touch running 4.2.1, so I initially attempted to build to it and got this error:
An unknown error message 'IncorrectArchitecture', was received from the device.
As you do with most error messages, I googled it, and found this question.
After reading the answer, I proceeded to check up on my target architectures, and it turns out I only had armv7 as an architecture to build for. - I added the armv6 architecture, as the answer suggests, but when I built it, I got a load of build warnings/errors such as:
ignoring file /some/path/to/a/staticlibrary.a, file was built for archive which is not the architecture being linked (armv6)
This occurs on all the static libraries in my project, such as the kal library - libkal.a and all the three20 libraries.
Those libraries linked fine in Xcode 4.0.2 - and it also built fine to my iPod - so why will the armv7 architecture not build AND the libraries not link for armv6 in Xcode 4.2? - I'm really confused - any suggestions would be greatly appreciated.
Add ARMV6 to your build settings like this:
Select your build settings
Scroll to Architectures
Doubletap on the existing entry
Tap on +
Enter armv6
Tap on Done
You will need to do this for all projects that are linked with your app (e.g. three20).
I have a home-rolled static library to which I link my iPhone app. Works great in Debug mode for Simulator, armv7 (iPhone 4), and even in my unit test app in OS X (GHUnit). However, when I try to run debug my app on my iPhone 3G with iOS 3.0, no dice. The app dies in runtime when it tries to access my library classes.
Both the app & library have
Architectures: Standard (armv6 armv7)
Valid Architectures: armv6 armv7 i386
I'm linking with "-ObjC -all_load", and I've seen some indications that -all_load can cause problems with fat binaries. Yet the armv7 version is working fine. Anybody know what's going on here? Is there a magic build incantation I'm missing?
This is quite similar to Static library dependency compiles in simulator on Xcode 3.2.3, fails on device. The halfway answer is that -all_load is causing the problem when targeting more than one architecture. The jury is still out on the definitive solution.