I'm writing an app which requires the M7 Motion co-processor chip in the iPhone 5S. Since this chip isn't in any other iPhone, the app will only function properly on an iPhone 5S.
Is there any way to require that a user has an iPhone 5S before downloading my app? Sort of like how you can make an app iPad specific?
I am looking for a way to select the iPhone hardware requirement. Not the iOS version requirement.
Normally you would do something like this by adding the
UIRequiredDeviceCapabilities
key to your app's info.plist and specifying a value corresponding to the hardware feature you require. However, among the possible values listed here, there doesn't appear to be a value for the motion co-processor. Apple may still add one, but until then perhaps you could come up with a combination of those values that is unique to the iPhone 5S and specify that.I spoke with Apple and the correct answer is at this time NO. You can not specify via Required device capabilities or otherwise that an iPhone 5S is required for a specific app. You can however state clearly in your app's description that it requires the iPhone 5S/M7 motion co-processor and Apple will accept it.
You should add the key "Required device capabilities" - UIRequiredDeviceCapabilities to your app's main plist. By adding this key, you can define what are the app requirements.
Here you find the values available for this key: https://developer.apple.com/library/ios/documentation/general/Reference/InfoPlistKeyReference/Articles/iPhoneOSKeys.html#//apple_ref/doc/uid/TP40009252-SW3