UIRequiredDeviceCapabilities... how to test?

I'm struggling to discover how to test the UIRequiredDeviceCapabilities for iPhone. I can edit my Plist file, I can build my game in xCode. But I can't seem to test the values I added. I'm testing on an iPod Touch 2nd generation. And I'm assuming that by adding "telephony" as a required capability that the app won't install or load on my iPod. Despite my best efforts, I am able to install the game consistently. (This really frustrates me because in previous app store submissions you could select something like "iPod Touch 2nd Generation or Higher" in iTunes connect.) So my question is. How the bleep do I test this property file? Can I only really test these entries after it's up on the app store? (that would be quite silly IMO)

-Tom

OK, so I know this was asked quite a while ago. But it's a decent question so I'll handle it now.

Restricting the device requires that you add a bit to your Info.plist which resides in your project in XCode. Unfortunately, it appears that Unity overwrites this file everytime you build (as far as I can see), so you need to do a couple of things to get it to properly block devices via UIRequiredDeviceCapabilities.

1.) Build & Run your project from Unity.

2.)Once you are in Xcode, you can stop your project from running and Quit XCode (currently my version of Xcode cannot build more than once when launched via Unity. I suspect other have this bug, so this step is to ensure you don't have any building problems.)

3.) Now that you have quit Xcode, relaunch Xcode and select the correct project from the Wizard.

4.) On the left side of Xcode you will see a tab called "Groups & Files" You should see a file called Info.plist on the left side. Select this file.

5.) The easiest way to add the UIRequiredDeviceCapalities is to Right Click on Info.plist -> Open As -> Plain Text File.

6.) At the bottom of the file you should see a tag that looks like this: . Just before this tag cut and paste the following text in:

<key>UIRequiredDeviceCapabilities</key>
<array>
 <string>armv7</string>
</array>

You can replace "armv7" with whatever restriction you want to apply... Be careful, as if you put something inappropriate, this is a good way to fail your app submission. You can see the entire list of restrictions here:

http://developer.apple.com/library/ios/documentation/general/Reference/InfoPlistKeyReference/Articles/iPhoneOSKeys.html#//apple_ref/doc/uid/TP40009252-SW3

  • armv7 restricts your app from launching on any device before the iPhone 3GS. This includes the iPhone 3 8GB which is really a iPhone 2 8GB.