Xcode 4.3.2 - Base SDK for Distribution of App - iphone

I am trying to distribute an iPhone App to the App Store for the first time. Currently, I am following this guide: Submitting iPhone Apps To The Apple App Store – A Step by Step Guide. Currently, I am on the step where I have to set the Base SDK field value. See, the screenshot.
As you can see, iOS 5.1 is the only choice available there. Now, if I set it as Latest iOS(iOS 5.1) - the default value - will the distributed app will be able to run on older OS's, for example iOS 3 or iOS 4? If not, then what will I do to make it run on older OS. Or, is there anything I misunderstood about BaseSDK?

No worry it will function in the older os you need to keep the deployment target minimum SDK which you can find in the picture if you updated the xcode with simulators of IOS 4 and 5 you can get these options
Update
Basically it means that you're going to be able to use all the API that is public in 5.1 SDK. This has nothing to do with "Which phone your app can run on".
iOS deployment target on the other hand, is asking you which devices can this app run. This is quite a dangerous question, since you can then say from iOS 3.0 to 5.1 for example. This means that your app can be installed in any iPhones running iOS 3.0 to 5.1, no matter what the phone is. That means the original iPhone and iPhone 3G can run your app if they have at least iOS 3.0 installed. You should test your app carefully if you decide to do this. Apple does not provide any way to test on older OS. You'd have to devise that strategy yourself.

Related

Submitting an App to Apple wrote in iOS 4

Okay, I know what your thinking why, right? My employer wants me to work on their app and submit it to Apple, but I told him the app has to be wrote in the most up to date OS. Does anyone know where you can find a something that states your, iphone App must have the most up to date OS? He would to have some concrete proof, before they restart their project. I'm like 90% sure your app has to have the most recent OS, but I also am having troubles finding something from apple that says that.
thanks
Starting tomorrow (May 1st), all new apps and app updates must fully support the taller screen of the iPhone 5 and 5th gen iPod touch. In order to do this you need to be using Xcode 4.5 or later with a Base SDK of 6.0 or later. And this in turn means that the oldest Deployment Target you can support is iOS 4.3.
See https://developer.apple.com/news/ and look at the news items from March 21.
So you can still support iOS 4 but it must be 4.3 and later. You must have full retina support on all devices you support and you must fully support the taller iPhone/iPod touch screens.
To be honest, supporting 4.3 is virtually pointless at this point in time. Any device that can run 4.3 can run 5.1. And except for the iPad 1 and 3rd gen iPod touch, any device that can run iOS 5 can run iOS 6. So basically, there is no reason to support anything before iOS 5.1. Any user running 4.3 or 5.0 can update to at least 5.1 if not the latest 6.x.
In other words, starting May 1st, 2013, no new apps or app updates can support the iPhone 3G or older, or the first 2 iPod touches.
BTW - the following Wikipedia page has a good chart about what versions of iOS run on the different devices: http://en.wikipedia.org/wiki/List_of_iOS_devices

iOS app maximum iOS version support

I have developed my app in Xcode 4.1 and iOS SDK version(Base SDK Version) is iOS 4.3 So, will this app run on iPhone with iOS 5 and/or iOS 6 or not?
I think the app can be run on a higher version of the OS than the Deployment Target. Is this right? I appreciate any help.
Yes, your app will run on anything that is iOS 4.3 or newer. That is, assuming you aren't using any depreciated methods that are removed from a future iOS release. You can check if things have been depreciated/removed through the documentation.
It doesn't matter with which Xcode you build your app, the base SDK signifies the lowest system your app is supporting.
You app can and will run on newer systems.
If you want to make an update to your app, you'll need to pay attention to depreciated methods for the newer systems or you will get rejected and won't be able to update in the App Store.
Yes, it will for sure run in higher versions than Deployment Target.
However, is always recommended to run also in newer versions as they are released, to check that every API used is still running fine (specially if they were deprecated).

Will iphone 5.1 deployment target reach all iphones upon release of ios 6?

I am new to iphone app development and am wondering which deployment target to use (as ios 6 approaches). My app is simple (http web service interaction, map) and my natural inclination is to target 3.1 to maximize potential use. However, I understand that ios 6 will soon be available to all iphones and I presume it will be widely adopted.
So, if I target 5.1 today, will my app be available to most, if not all, iphone users once ios 6 is released?
Right now, requiring a minimum of 5.1 is a bit bold in my opinion, but that depends on your app. It is customary to support the current version and the previous major release.
If you want to expand your target, you may considering going back to 4.3 or even all the way down to 4.0. But 3.x is practically obsolete. but:
Warning: Don't target a version you can not test on device. If you don't have a device running 4.0, testing your app only on the 4.0 simulator is not recommended (although perhaps it is OK. No assurance).
The iPhone 3G can run up to iOS 4.2.
All other phones and iPads can run the latest OS (5.1.1)
Not sure about iPod Touch devices but 3rd (and 4th) gen. should run iOS 5.
You can use 5.1.1 as deployment target if it is available to your menu.. if not 5.1 is best for your needs for now.
This way all (Who have not updated to IOS 6) can use your app...
Best luck for app development.

iPhone application compatibility

Please how can I make sure before developing my iPhone app that it will be compatible with iPhone4, 3GS, iPod touch and 3G?
You need to create the app keeping in mind all the features available in lowest version of iPhone you need it to be compatible to.
For Example:
Suppose you want it to be compatible to iPhone 2G then you cannot use in-app SMS feature as iPhone 2G cannot be upgraded to iOS 4.0 or higher.
In-app SMS feature is only available in iOS 4.0 and higher versions.
Hope this example gave you a proper idea.
Once the app is made, you should test your app throughly on different devices i.e. iPhone 3G, iPhone 3GS and iPhone 4 and iPod Touch.
Unless you test it on device, you cannot be sure because sometimes some of the things work in simulator but crashes on device.
So better to test on device.
Hope this helps you.
If it's the SDK you are talking about, you might want to make sure it runs on iOS 3.X versions. See here for more details.
If it's the hardware you are talking about, you will need to test your app on separate pieces of hardware to make sure that they all run.
The settings in XCode that you make regarding which version of iOS your app will be compatible with is the iOS deployment target and the Base SDK. The Base SDK is the default version you are building against (this should be set to the most recent SDK which is currently 4.3). The iOS deployment target is the earliest version you would like your app to be available for (currently goes back to 3.0 on XCode 4).
These settings are in the settings for your target.
As for if your app will actually work on all of these devices depends on how you program for them. In other words, if you are using new APIs, they obviously will not work on versions that did not implement them.
Hope this helps.
Jamie
You can't be sure without testing. (and even with testing, some say...)
There are potential "gothcha's" in the iOS API documentation, in the Simulator handling of those APIs, and particularly in device performance, which you may not realize or be able to guess until you actually try an app out on all the device models and iOS versions which you plan to support.
Even some simple apps with no undocumented API use and no compiler or analyzer warnings, et.al., have been know to "break" after a new OS version is released.
You can "claim" an app is compatible by appropriate setting of the Deployment Target in the Build settings, lack of plist hardware restrictions, and in the app store submission data. But that's only a claim, not compatibility.

Will an application compiled for iOS 3 run on iOS 4?

I compiled an application for iOS 3, Will it run on iOS 4? Or do I send 2nd version of the application to App Store?
It will run, but won't take advantage of the new stuff in iOS4. Otherwise, lots of apps currently in the AppStore that haven't been updated wouldn't work on the new iPhones.
It doesn't really matter any more. Apple is currently only accepting applications and updates built against iOS 4.0 for the App Store:
Make sure that your applications are
compatible with iOS 4. All new
applications and updates to existing
applications must be built with iPhone
SDK 4. In addition, the App Store will
no longer support applications that
target iOS 2.x.
It's my understanding that a 3.x-only application will now be rejected. However, it is trivial to ensure that your 4.0-built application will run on 3.x devices by setting the Deployment Target to 3.0 (or later).