I have been developing an iPhone app and now I am trying to build the binary.
I have noticed the base SDK is set to iPhone 4.0. Does this mean only iPhone 4.0 users can run the app?
I can change it to the lowest iPhone device 3.2, but how can I change the target so that I can test on the simulator in OS 3.2?
The Base SDK should be set to the latest iOS version you want to support. To also support older phones, set the “Deployment Target” build setting to the lowest iPhone OS version you want to support. Currently, I don’t believe you can set it to anything less than 3.0 and still get approved by Apple.
That's OS version, not hardware. You can adjust the deployment target and the base SDK to set up handling the differences between 3.x and 4.x APIs. A tutorial on how to do it is here:
http://iosdevelopertips.com/xcode/base-sdk-and-iphone-os-deployment-target-developing-apps-with-the-4-x-sdk-deploying-to-3-x-devices.html
Related
I want to know whether iPhone Simulator version (i.e. iPhone 5.0 Simulator, iPhone 6.0 Simulator, etc) and Base SDK are related to each other or not?
So, if I develop an App with Base SDK 6.0 and if I test it on iPhone 5 Simulator - does it mean that I am testing it on device with iOS 5.0?
Please let me know.
Base SDK
The Base SDK is the version of SDK that will be used when compiling your application – the compiler will use the headers and libraries of this specific SDK.
iPhone OS Deployment Target
To specify which OS version is the minimum that your application will support, you set the deployment target. Your application will then run on this minimum OS as well as all later versions.*
For more info check this:-
Link
The base SDK is an indicator of what APIs your compiler will allow you to use. Deployment Target determins the minimum OS version this app will be allowed to run on. If they differ you need to make sure in code that you only use functions/classes/methods/symbols that already existed on the older OS. or else the app will crash with exceptions like "unrecognized selector"
Your question is imprecise: there is no "iPhone 5 Simulator". There is a Simulator app that can behave like a 4" iPhone 5 on a variety of OS version levels. The Simulator set to iOS 5.x will behave like a device with this OS version would.
Nope. With a base SDK of 6.0 means that you are using a simulator with iOS6.0 like for example if you were to deploy an application with base SDK 6.0 on your mobile device with iOS 5.1 and below, you will not be able to run it
If I build an app with the (default) iOS 5.1 SDK in XCode, and distribute it to the appstore, will users with, let's say, an iPhone 3G, be able to download and run the app?
It depends on what features you include in your app: if you use features that are only available in iOS5 such as UIPageController, then no, they will not be able to run it. However, if you don't use any feature of iOS 5, then it will most likely be ok.
Okay, let me answer you a little more correctly than Omar did:
In XCode, you can define both the SDK you're using to compile your app (should always be "latest" SDK, currently 5.1) and the Minimum OS Version that you're app will run with/at.
You should always test your app on all (Major) OS Versions starting from the defined minimum OS version.
You can react in your code to the current iOS Version and use different features depending on the currecnt version with a statement like:
if ([UIDevice systemVersionValue] >= 4.2f) {
// code for OSes at least as new as 4.2
} else {
// code for older OSs
}
If you want maximum exposure for your app, you should try to support all iOS Versions still supported by Apple. Currently, that's iOS 4.0 and newer, AFAIK. Given the very high update rate of iOS Users, everything older doesn't make much sense.
I need to about paypal SDK support for devices. Does it supports iOS 3.0 and onwards? I have tried the demo app available with sdk but it runs on 4.1 simulator. But when i installed it on device its running on iOS 3.1 also.
So, I want to know whether it support the more lower versions of iOS or not?
Your Support is necessory. Please Suggest me something about it.
Yes, it will run on later iOS versions. You just need to change the Base SDK to Latest, and iOS Deployment Target to whatever you plan to be the lowest version of the iOS you support.
I wrote iPhone application. Very simple! It use Cocos2D only, and all other features is very basic, no accelerometer, no camera, nothing. Just buttons and sounds.
I think every iPhone can run this app (there is no limits on Cocos2D right?), but my XCode only let me use 3.0 and upwards. I want to confirm 1 thing and ask one thing:
If I put "iPhone OS 2.0" in my iPhone OS Deployment Target in XCode, but my "Active SDK" in XCode still says 3.0, if I compile using this and submit to App Store, when it goes up, people who use 2.0 can still download and use the game yes?
Is there way I can test in a 2.0 simulator to make sure it works? My XCode only have 3.0 and higher simulation.
Set your Deployment Target for iPhone OS 2.0 and Base SDK for whatever version of the SDK you have (3.0, 3.1.2, 3.1.3, 3.2, etc.). Active SDK is just a compile-time override of the Base SDK. You should set your Base SDK to the latest STABLE version of the SDK and the Deployment to the oldest device you intend to support.
If you open up the iPhone Simulator and select from the menu bar Hardware > Version, you should see an option for SDK version 2.x. If you don't see this, you don't have any 2.0 SDK versions installed. 2.2.1 was included up to version 3.1.3, but you might not see it in the Simulator. You'll have to find an older version of the SDK to install. They can be found online by Googling. Don't have a link off-hand, but shouldn't be hard.
Edit
This is out-of-date for the newest version of Xcode (currently 3.2.5).
When I try to upload the binary to iTunesConnect it says: "An application targeting the iPhone device family may not require a iPhone OS Deployment Target of 3.2, which is an iPad-only OS".
I am using iPhone SDK 4.0 but have the settings of the distribution target set to use iPhone Plattform 3.2
Any suggestions?
Yes. Stop attempting to upload apps created by a beta SDK, which is expressly forbidden.
When you have installed the correct release of the SDK, set the iPhone distribution target to one that is available on the iPhone - like 3.1.3. If you need 3.2 support for iPad, then you also need to set the base SDK to 3.2.