Iphone version support requirements - ios

My ios app is designed for iphone 5 and up. Will my app still be approved if it does not work on iphone 4s, assuming it would be approved at all?

There is no requirement that your app work on older devices, but you cannot prevent it from being loaded on older devices either - for example, you cannot specify "iPhone 5 or later". You can require a system (i.e. iOS 7).

Related

iOS: how to exclude pre iPhone 5s devices from universal app without excluding pre 4th generation iPads?

We have an application for iPad (compatible to all iPads running iOS 6.0 and above, so only 1st generation iPads are excluded generally).
Now we are working on an iPhone version and would like to release it as a universal upgrade to the existing app (since universal apps seem to rank better in the appstore than apps with individual versions).
However - for iPhone we would like to exclude all pre iPhone 5s devices. The only way I know of to exclude devices is by having RequiredDeviceCapabilities in the info.plist - and going by this list https://developer.apple.com/library/ios/documentation/DeviceInformation/Reference/iOSDeviceCompatibility/DeviceCompatibilityMatrix/DeviceCompatibilityMatrix.html to exclude pre iPhone5s devices one needs to require either OpenGL ES 3.0 or metal. However, in a universal app I guess this would also exclude all pre 4th generation iPads.
So - is there any way, in a universal ios app - to exclude pre 5s iPhones but still allow the app to be downloaded to all iPads (except for 1st generation, which is excluded by minimum iOS)?

How can I drop iPhone 4 support in an update

My app supports iPhone 4.
However, in the next major update I plan to add features that require better hardware (iPhone 4S and above). If I attempt to exclude iPhone 4 by adding requirements in UIRequiredDeviceCapabilities, Apple rejects the app during submission, citing that I cannot drop support for existing devices that can run the app.
iPhone 4 supports up to iOS 7, so even if I drop iOS6, I cannot exclude the device. Do I have any good options?
You can add "bluetooth-le*” for UIRequiredDeviceCapabilities.
Here you can find a compatibility matrix… is not complete… but… http://blog.manbolo.com/2012/10/30/uirequireddevicecapabilities-and-device-compatibility-matrix

Is UIDevice multitaskingSupported checking necessary nowadays?

I checked this wiki and got to know that from the 3rd-generation iOS device (iPod touch 3 and iPhone 3GS I guess), the multitasking was supported.
So that means all the iOS device nowadays are multitasking supporting since the deployment target is 4.3. And the devices running that version of iOS are newer than "the 3rd-generation".
So no need to check [UIDevice currentDevice].multitaskingSupported , am I right?
You are correct. The last iPhone that didn't support multitasking was the iPhone 3G.
And since new apps these days shouldn't support anything older than iOS 7 (maybe nut rarely, iOS 6), there is no reason to check for multitasking.
And Apple only accepts apps that support iOS 4.3 or later. Any device that didn't support multitasking could never be updated to 4.3.
Any device a modern app will be running on these days will support multitasking.

Make app not support iOS 7

If for managerial reasons I'm am developing an app that has not been designed with iOS7 in mind(the notion of supporting iOS7 wasn't apparent until I upgraded to XCode5 and tested the app in the simulator running iOS7), can I restrict my app to devices not running iOS7?
I know it's possible to change the app to support iOS 7 but we're already in the testing phase and it's not my decision how the app is made.
You can compile your application using Xcode 4, which will mark the binary to run in a compatibility mode on an iOS 7 device.
I'm assuming you want the app to still work on an iOS 7 device, just not with an iOS 7 user interface.
No, you can not restrict your app to devices not running iOS7.
You could check if the device is running with iOS 7 and through some kinde of exception or show an error message. Of course you won't get it through apples revision.
But it might work if you only deliver it to local devices.

ios versions compatibility

Just saw wiki article "ios version history", which says that ios 5 is compatible with iPhone 3GS and greater devices. Does iPhone 3GS, iPad 1 and 2 really support storyboards and new components of iOS 5? or do they require a software update for being compatible with iOS 5?
ios 5 is compatible with iPhone 3GS and greater devices
Means that users can update these devices to run iOS 5. They have to do the update for you to be able to use story board and other new features. But if they are still running iOS 4 or older versions, you can't.
Don't mix operating system with hardware. iPhone 3GS supports storyboard ONLY if it's running iOS5, otherwise not.
There can be some hardware related differences even if all devices use same iOS version, for example iPad without SIM card cannot make phone calls. Storyboard is not such a thing.

Resources