Lowest permitted base SDK for App Store submissions - ios

I'd like to know if Apple states the lowest permissible base SDK for submission to the iOS App Store. There was a statement somewhere around 2010 that said you need to use at least SDK 4, but i cannot find this any longer.
Now, before you jump me, I always build against the latest base SDK. The reason i ask this question is because i want facts to counter some customer requests.

Apple seems to have never explicitly required any Base SDK above iOS 3.0 as far, as far I can find, today, either in their app submission guidelines or any official developer email. Thus, there likely is no such link as you require. However there are many indirect hints.
As of 2013-May-01, Apple indirectly requires a Base SDK of 6.0 for submitting iPhone apps by requiring 4" display support and no longer approving any apps where 4" support was added using any Base SDK lower than 6.0 (that latter stated in their enrolled developer forums, login required). This requirement may or may not apply to iPad-only apps, where Apple might still allow submission using a Base SDK of 5.1.
There is a statement (in their enrolled developer forums, login required) from an Apple employee that currently a Base SDK of 7.0 or higher is not required for app submission, but with no date given as to when this may or may not change.
Note that if a developer uses an SDK lower than 7.0 to build an app, they still need to test the app on a iOS 7.x device or risk rejection by Apple if the app fails to run properly on such a device.
The Deployment Target of an app can get set to a much lower OS version. But an iOS Base SDK of 6.0 lacks armv6 support, and thus doesn't allow XCode to build an app with a Deployment Target lower than 4.3 where armv6 support is required.

You should always use the latest SDK as Base SDK whenever possible. If you set the deployment target to a lower SDK, your app will run on device with previous SDK version.
Starting from XCode 4.5 (and also in XCode 5) iOS 4.3 is the lowest available SDK for deployment target. You have no way to submit new App on the App Store running on SDK lower than 4.3.
To answer the initial question, Apple seem to still accept application compiled with SDK 6.0 ( at least a few weeks ago).

Apple has recently announced that as of March 27, 2019, you will have to have a base SDK of 12.1:
Upcoming App Store Submission Requirements
March 20, 2019
iOS 12 is now running on more than 80% of devices worldwide. Make sure your app delivers a great user experience by seamlessly integrating with the latest advances in iOS. Starting March 27, 2019, all new apps and app updates for iPhone or iPad, including universal apps, must be built with the iOS 12.1 SDK or later and support iPhone XS Max or the 12.9-inch iPad Pro (3rd generation). Screenshots for these devices will also be required. All new apps and app updates for Apple Watch will need to be built with the watchOS 5.1 SDK or later and support Apple Watch Series 4.
Understanding Changes in Memory Accounting
iOS 12 and tvOS 12 require apps to use memory far more efficiently than before. If you have difficulty reducing your app’s memory requirements, contact us to request an entitlement for your app to use iOS 11-style memory accounting.

Related

Check Build SDK Version

With the new App Requirements and Guidelines from Apple, one of them is that Apps for iPhone or iPad must be built with the iOS 13 SDK or later.
My company has several apps on iTunes, and I was wondering if there is some way to see what SDK version a build was built with, either in iTunes or in the Organiser in Xcode.
Otherwise I guess the only option is to rebuild and upload apps that we haven't build for a while, but I'm not sure.
The requirement to use the iOS 13 SDK only applies to new submissions. Apps already on the App Store don't need to be updated.
If you submit a new version containing enhancements or bug fixes, then you need to use the iOS 13 SDK.
You do not need to submit an otherwise unchanged app simply to use the iOS 13 SDK.

Using latest version of Xcode 8, support and test on for iOS 5.1.1

I have been searching for an answer for this for a while now and I can't seem to get a straight answer anywhere. I'm new to iOS development and am looking to get started porting my android app over to make my first iOS app. I'm not a big apple user, so I'm just running xcode in a VM and trying to build and test on my old ipod touch 3rd generation running iOS 5.1.1. I understand how out of date this is, but I want to develop and test on this device for 2 reasons:
I dont want to buy a $750 new apple product just to test my very simple app
When I publish my app, I want to reach the most users possible
So my question is this:
In xcode 8, is it possible to develop applications with a deployment target of iOS 5.1.1?
If so, will it build for all versions of iOS?
When I attach my ipod to xcode, it says device is not supported, can I fix this by installing some 5.1.1 developer package or sdk to allow support? Or would I have to build, then manually install and test each iteration?
If all of these are possible, and I build an app targeted to 5.1.1, can I publish it to the app store? If I open the app store on my 5.1.1 ipod, there are still apps in the store with recent update dates, so people must still be releasing updates to apps on iOS 5.1.1 right? Or am I missing something and an app that runs on iOS 5.1.1 is entirely banned by Apple.
A lot of questions, but If possible I really want to do this. Even getting a fully known, confirmed answer for ANY of these questions would be greatly appreciated.
Thanks
I dont want to buy a $750 new apple product just to test my very
simple app
Xcode has a simulator, you don't need a device to test your app.
When I publish my app, I want to reach the most users possible
As of July 31th 2017, https://developer.apple.com/support/app-store/
86% of devices are using iOS 10.
11% of devices are using iOS 9.
3% of devices are using earlier. (probably iOS 8)
It makes sense that you have this concern coming from Android, but iOS is quite different. Devices are designed to be uniform and apple encourages (almost forces) people to update them. (You won't stop receiving a notification to update your device)
It would actually be bad to focus on developing for that specific device you have, specially because a lot of the APIs will be deprecated, plus the screen ratio of that specific device is not so common.
In xcode 8, is it possible to develop applications with a deployment
target of iOS 5.1.1?
No*
If so, will it build for all versions of iOS?
Kind of, it will run but it won't probably be what you expect until you FIX it for that specific iOS version. (many things break between iOS updates so developers are sometimes forced to branch code)
When I attach my ipod to xcode, it says device is not supported, can I
fix this by installing some 5.1.1 developer package or sdk to allow
support? Or would I have to build, then manually install and test each
iteration?
Maybe, but probably not. You can actually copy files from older xcodes to enable testing in newer ones. You can search about how to do this by googling for "Using iOS 7 in Xcode 8". However I doubt going as far back as iOS 5 will be possible. The Xcode needed for running on iOS 5 is not even supported macOS Sierra (The newest OS)
If all of these are possible, and I build an app targeted to 5.1.1,
can I publish it to the app store? If I open the app store on my 5.1.1
ipod, there are still apps in the store with recent update dates, so
people must still be releasing updates to apps on iOS 5.1.1 right? Or
am I missing something and an app that runs on iOS 5.1.1 is entirely
banned by Apple.
Theoretically yes, iOS Apps can still "support" old iOS version, the reason why developers drop support for older os is because it gets increasingly hard to debug them as well as they just don't have support for new features and APIs that come with newer iOS.
My suggestion if you are really obsessed with building for iOS 5.1.1 is to ensure it's a 64 bit app:
https://developer.apple.com/library/content/documentation/General/Conceptual/CocoaTouch64BitGuide/ConvertingYourAppto64-Bit/ConvertingYourAppto64-Bit.html
And Download an old version of Xcode: (Maybe Xcode 7 or 6?)
https://developer.apple.com/download/more/
But I think you still have to Build with xcode 8 since you need to build against their latest SDK. The old Xcode is just to develop for it and facilitate debugging.

Can I opt that my app support up to iOS 8.4?

I have submitted app and it got rejected as it crashed in iOS 9 devices. Can I opt out for iOS9 like I will say my app will support up to iOS 8.4. I don't want to support iOS 9?
No, you can not opt out of the current (or about to be released) iOS version. Apple will test iOS app submissions to their App store on the iOS version currently running on the devices that its customers are currently buying or will soon be buying just days from now. And that's currently iOS 9.0. Why put an app in the store that will crash a couple days after a customer buys it just before upgrading their device?
Also, most apps built with the SDK for the previous iOS version should work on devices running the next iOS version, perhaps after testing (and tweaking API usage) on devices running a beta version of that next iOS version, which is available to all enrolled developers. This testing does require Xcode 7 (although using the Xcode-beta or GM makes some of the testing and debugging a lot easier). There are other ways to put a test app on your test device, such as Ad Hoc deployment via iTunes.

Does Apple accept a app with iOS6 SDK by using xcode-5?

Long back I submitted an app by using xocde4.5.2 with iOS 6.1 as base SDK. Now I need give version support for my old application.
I don't have much time to support iOS7 by using xcode-5. After goggling I came to know that, We can fix base SDK to iOS6.1 in xcode-5. I can able to run it on my iOS7 device with iOS6 appearance.
My question is, does apple accept this kind of applications( xocde-5 with iOS6 SDK)?
No. For now all applications should be distributed with iOS 7 SDK support and with new Xcode 5.1.1. if you are uploading through Xcode.
Unfortunately NO Apple will reject your application. On December 17th 2013 Apple made an announcement stating that any application submitted to the Apple App Store Review process from the 1st February 2014 must be submitted using xcode 5 and must be iOS 7 optimized.
You can find this announcement HERE but all it says is
Starting February 1, new apps and app updates submitted to the App Store must be built with the latest version of Xcode 5 and must be optimized for iOS 7. Learn more about preparing your apps by reviewing the iOS Human Interface Guidelines.
So you will need to fix any iOS 7 issues before you submit your application.

Submitting iOS 5 apps during the transition to iOS 6

Has Apple made any announcement as to how long they will accept apps built using the iOS 5 SDK (as opposed to the new iOS 6)?
No, and they don't tend to make any such announcements.
That said, you'd normally build against the iOS 6 SDK and simply set a deployment target of 5.0. Numerous bug fixes usually occur in the compiler-side part of the SDK between releases that don't relate to new features.
The legacy simulators will allow you to continue to test appropriately directly on your computer and obviously you can continue to connect up a real iOS 5 device.
The real question is when Apple will stop accepting 5.x deployment targets for the App Store. As they still accept 4.0 now I suspect that'll be a while.

Resources