How can I drop iPhone 4 support in an update - ios

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

Related

How to develop iPhone app for iPhone 5 and newer?

We are developing an application, targeting iPhones, starting from 5 and all the newer models.
Recently, I discovered there is no way to say, that app does not support iPhone 4s.
My ideas are:
Just don't think about 4s. Whatever it looks there...
Give a message in application, that it does not work on 4s.
Questions are:
Are there any other options I have?
Is it a risk of not getting into App Store?
iOS 10 will not support the 4s. If you target your app for iOS 10 and later you can skip the 4s.
Aside from that you'll need some hardware feature that the 4s lacks that all subsequent models have, and make your app require that feature.
(I don't think Apple allows you to pick and choose the models you support.)
Build only for iPhone 5+ architecture armv7s & arm64
Might be one solution.
iPhone_architecture image
Thanks
You can do it by using xCode 8, and iOS 10 that not support iPhone 4s.

How to avoid selling app to iPad 3 (or earlier)?

I want to enable selling of my iPad app only for iPad 4 and later because it does not run fluently on an iPad 3.
Since Apple gives us no direct way to choose which device I can sell my app, the only ways to achieve this is via indirect methods like minimum iOS version support or so called required device capabilities.
However, it seems that there is no way to make a distinction between iPad 3 and iPad 4.
iOS 9, for instance, is supporting iPad back to 2nd generation.

Is there any way to for an iPhone app to require iPhone 5 or newer?

I am in the apparently not-common situation of wanting to deploy a new iPhone-only app and would love to require iPhone 5 or newer. That is, 4" screen or greater. I believe there is no way to accomplish that but though it was worth asking.
Requiring iOS 8 would be one way to get close but people can also run the app on iPhone 4s if they are a glutton for punishment and run iOS 8 on a 4s. Plus I would like to support iOS 7.
One other thought is to build ONLY for arm64. But I can't find anyone who has done that and I have to wonder if the app would be rejected.
Can anyone confirm or deny that this is possible?
There isn't really an explicit way to prevent a specific device from seeing your app on the app store, but you can use UIRequiredDeviceCapabilities in your Info.plist file to implicitly filter out devices by requiring capabilities:
https://developer.apple.com/library/ios/documentation/General/Reference/InfoPlistKeyReference/Articles/iPhoneOSKeys.html#//apple_ref/doc/uid/TP40009252-SW3

Iphone version support requirements

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).

How do I target an app to work on ipad 2 or newer (not ipad 1) before submission to appstore?

My app is for the iPad 2 only. I have seen other answers involving setting the UIRequiredDeviceCapabilities key, but I need to exclude the iPad 1 because of the CPU power, not any specific hardware feature.
I would like the app to show up in the appstore for people in the future also (iPad 3 etc. should have equal or stronger processor than 2), so I need only exclude iPad 1 specifically.
Any ideas?
Set UIRequiredDeviceCapabilities to require front-facing-camera. I don't think they are going to cut down on features. There isn't any other way, it seems.
There appears to be no Processor_MHz_GHz, CPU_core_count or GPU_shader_count keys currently documented for the UIRequiredDeviceCapabilities plist. And Apple currently appears not to allow adding more hardware restriction keys to existing apps already in the App store.
So you appear to be out-of-luck, if you don't want to risk requiring a camera. Or just selling a new app (not an update) to support hypothetical future products.
ADDED/UPDATE (2012-September): You can now exclude a 1st generation iPad by specifying iOS 6.x as the minimum Deployment target in your build settings, since an iOS 6 update is not offered by Apple for the 1st gen iPad, whereas an iPad 2 and newer will run iOS 6.
In my opinion, CPU power is a hardware feature. Try disabling the ARM version of the iPad 1, so only newer iDevices will be supported.
Keep in mind though when disabling certain ARM versions you might also be excluding the older iPods and iPhones if your app is an universal one.
Bryan

Resources