views:

42

answers:

1
+1  Q: 

Code paths on iOS

We have an app that uses network, compass, camera and telephony. It has been rejected because we don't specify in UIRequiredDeviceCapabilities the keys that are requiered or prohibited. This is a newer version of an app that we upload months ago and we don't had any problem before.

On documentation says

You should include keys only for the features that your application absolutely requires. If your application can accommodate missing features by not executing the appropriate code paths, you do not need to include the corresponding key.need to include the corresponding key.

How can I make "code paths" on my app? It refers to conditional compilation (#ifdef __IPHONE_3_X) or checking the device features on runtime and executing different code?

A: 

How does your app work? Do you need the compass or does it just work better with it? Same for the camera, telephony, etc. If your app will not work without those features then you need to list them in UIRequiredDeviceCapabilities.

I don't think you need to change any code, you just need to update your Info.plist.

Stephen Darlington
We have AR features and telephone calls. If the device don't have compass or camera, the AR is disabled. And if it doesn't support "tel:" protocol, phone calls are disabled too. So we don't need those features, so we never put that key on the plist. We don't know if this is a new requierement due to release of new iPod touch with camera or something else.
Espuz
If your app genuinely works without any of the features defined in the `UIRequiredDeviceCapabilities` property then it could be a bogus rejection. I just had two apps approved yesterday and neither has that property defined.
Stephen Darlington
Well, Stephen, that was a bogus rejection. We emailed Apple explaining the situation (newer version of the same app that was in Store since months) and now the app is on sale. What's wrong with Apple?
Espuz