Xcode's mechanism blocks latest build on older version iOS devices - ios

The Xcode 6.3.2 has the compatibility from iOS 4.3. I run an application built with minimum deployment target with 6.0 and I try to run this application in iPhone with iOS lower than 6.0. When we do this, Generally Xcode prompts and saying, targeted device doesn't have the support kind of error.
What mechanism that Xcode and iPhone has to prompt the user by saying this incompatibility message.
This question seems to be meaningless. But, Just Wanted to know how the Xcode doing this? and with what mechanism?
If anybody has idea. Thanks in advance!!!

If you're deploying through the app store, the user won't be able to install it. It won't even show up in the search results for them.

It depends on the iphone ios version and the xcode Deployement target you set no matter what the base SDK is..

Related

How to deal with Xcode update to recommend settings warning?

Recently, I upgraded to Xcode 6. Anything works well except I got a new warning indicates me to upgrade iOS Deployment Target to 8.0. Bellow is a screen shot of the message.
However, I don't want to upgrade deployment target because I want to support any device that has OS version 7.0 and above.
How to ignore this warning? Or perhaps iOS Deployment Target setting has nothing to do with the lowest OS version that my app can support?
I think there is a bit of confusion here, there is a difference between the Base SDK setting and the Deployment Target. Deployment target determines which versions of iOS you support, the SDK version simply determines which version of the SDK you are using to write your code. As long as you don't use any code which requires iOS 8 (Or if you want to use it check that it is available: Checking For Class Availability). So to fix this, you should click Perform Changes. You will still be able to run your app on iOS 7 :)

targeting iOS5 - will it work on iOS6 also?

Hello I am beginner with these things and would appreciate nice explanations
that would dismiss my doubts.
If I target my app for iOS 5 -- does it mean users who have iOS 6 and iOS 7 can
also use it? Anything I should watch out for?
There are two primary settings used for your targeting your builds:
Base SDK & Deployment Target.
The Base SDK = What are the latest features I want available in this app?
The Deployment Target = What is the earliest OS I want to be able to run this app?
So, if you have both of these set to iOS 6, the user must have iOS 6 to install or run the app.
If you have a Deployment Target of iOS 5.0 and a Base SDK of 6.0 that means it'll install and run in iOS 5.0, but you need to be careful to branch your code and not use any iOS 6.0 features if the user is running on an iOS 5.0 device.
Yes, the target is the minimum version version that the app can run on. That doesn't mean that the app will work properly on newer versions and you really need to test to be sure. If you're creating a new app think carefully about which older versions to support.
If you target your Application for a lower iOS version, anyone with the version number you target AND HIGHER and access the application. Anyone LOWER than the one you target will not be able to download and use the application.
Everything will work fine, however there are certain features that are only available in iOS6 and iOS7 such as UICollectionView is only available in iOS6 and above. Fortunately you can test the different OS's in the simulator, it will make you life easier and you will be able to see if your application breaks running a different OS.

Can't test on my IPad - iOS version reported as too old

My iPad2 device is running iOS 6.1. Since I upgraded XCode from 4.5->4.6 I get an error that my device is not running a new enough version of iOS!
I use no advanced features and in XCode my project iOS Deployment Target is 5.0.
Here are my settings:
Here are my provisioning stuff, it looks fine to me:
I am using Xcode 4.6 and see I have all deployable targets available. See screenshots. Though note the base SDK is set to iOS 6.1.
Apple always suggests building against the latest SDK and then setting the deployment target to whatever you want it to be. Also make sure any IB item has the correct deployment version set as well.
Just a helper for newer developers (like me):
I had problems testing my iPhone app on a new iPad and it was due to not running Organizer to initialising the new device (iPhone or iPad).
(You also have to select that the device is used for debugging)
It will update your new device with the necessary libraries and then deploying is simple.
You can run Organizer from the Xcode->Windows menu.

Test iOS app with device of iOS 5.0.1 beta version

Now, I use Xcode 4.2 supporting iOS 5.0. Apple has just released iOS 5.0.1 beta 2. I can install it on my iPhone.
I want to test with this beta version, i.e build code from Xcode.
How do I build code from Xcode 4.2 for device of iOS 5.0.1 beta?
Please help
In exactly the same way that you would do so for iOS 5.0. We can't talk about beta versions of the software, but we can talk about what happens when newer versions of iOS are released. When you connect a device with a newer version of iOS installed, the Xcode Organizer will give you a message like:
Xcode does not have debugging information for the version of iOS on the device named “Dev iPhone”. Xcode can collect debugging data from the device to enable development with this version of iOS. This process only needs to be done once per iOS version, and will take several minutes.
You simply click OK or similar, and Xcode downloads the necessary debugging data. You can then build to the device from Xcode and use all the debugging tools as usual. This process works for point releases. It is highly unlikely this would work for major updates (e.g. if iOS 6 was released) and it may or may not work for iOS 5.1, depending on the changes included. But when Apple have not released a new version of Xcode to developers, you can be sure it is because one is not required.
It is important to understand the distinction between an updated version of iOS (for the device) and the iOS SDK (for Xcode). A point release of iOS does not necessarily require any change to the iOS SDK, and therefore with Xcode's ability now to download the debugging information on demand (a feature that has been around for a while), you don't necessarily need an updated version of Xcode. Likewise, with Xcode 4.2 you still set the iOS 5.0 as your base SDK even if you are setting an earlier version (e.g. iOS 4.2) as your deployment target. You don't need the iOS SDK v4.2 to target iOS 4.2 for deployment. (Just make sure you add back "armv6" to targeted architectures in your build settings, if you still want to support the iPhone 3G and equivalent iPods, as in Xcode 4.2 this is not included by default.)

iOS SDK 4.0 for Xcode 4.1 (Lion)?

I recently downloaded Xcode 4.1 for Lion with iOS SDK 4.3. Now, whenever I change my Deployment Target to anything older than 4.3, I get hundreds of errors when I try to build my project. This happens even if I'm trying to run it on the 4.3 iOS Simulator, so I don't even need to be actually running it on an older device, I just have to set the older Deployment Target.
Do I need to download a separate SDK in order to allow for older devices? If so, where could I find it?
Thanks for your help!
I tried copying the SDKs from Xcode 4, but it doesn't work.
Other answers suggest that it's not possible.
I'm now using a virtual machine with Snow Leopard to test on older devices. (Or real older devices, if you have one)

Resources