How to develop iPhone app for iPhone 5 and newer? - ios

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.

Related

iOS app for specific devices

We are working on a kids app similar to Talking Ben app. It has lots of JPEG image sequences in it for interactive animations.
The thing is the animations are playing fine on iPad Air but they are playing slow or lagging on iPad 2. This is obviously due to the 512 MB RAM in iPad 2.
My question is can we mention in the app description something like - "Recommended devices iPad 3 or later" so that users dont download it on iPad 2 ?
Or can we straight away submit app for only iPad 3 or later devices ?
Whats the legal method for this ?
In short, I want to restrict my app to be downloaded in iPad 2.
Please help guys.
Thanks
Not too familiar with specifically what architecture is used on the iPad 2, but this post may help you with regards to making sure the app is only compatible with certain architectures: Restricting app installations from AppStore only to users with iPhone 5/5s/5c
You should set bluetooth-le as a requirement in your app Required device capabilities in your info.plist.
This should prohibit your app from being installed on iPad 2 as Bluetooth-LE (bluetooth 4.0) is available only since iPad 3rd generation (see here).

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

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

Performance testing of native iOs apps

I have a native iOS app developed in house which need to be tested for performance. Any suggestions regarding this like the approach, tools that can be used for this etc.
I would disagree with the notion that if iPhone 3GS works it works with everything above. I have done lots of testing across devices and versions of iOS and find bugs all the time that don't manifest on iOS 5 but will on 6 or 7. Bugs that happen on one device but not another because of performance differs in the hardware.
I would suggest that identify who your primary audience is and what devices they are likely to be using. What device/os combinations do you care the most about making a "legendary" experience. Do you want to limit/complicate yourself to supporting an older SDK or simply build against the latest and greatest?
Once you have these questions answered, get a few physical devices if possible for "real" testing, and then use simulator to flush out and iOS version bugs. A good spread might be an iPad 2, iPad Air, iPhone 4, and iPhone 5 or 5s.
Hope this helps.

AppStore: App downloadable only for 3GS and above?

My test unfortunately show that my app runs too slow on an iPhone 3G.
Therefore I decided to support only iPhone 3GS and above.
How can I do this?
Read up on UIRequiredDeviceCapabilities. Namely the armv7 or opengles-2 should filter to 3GS and above.
You might also look at limiting the iOS Version that is required. I believe that a 3G phone cannot upgrade to 4.3. So if you mark it as requiring 4.3 or above you'll limit the phones that can run it.

Resources