The application's Info.plist property list enables you to specify the application's requirements when submitting an application to itunes. These restrictions allow you to tell your itunes application which device features are required.
Each iOS unit provides a unique set of features. Some devices provide camera and GPS capabilities back, while others do not. Some devices have onboard gyroscopes, auto-focus, and other powerful options. You can specify which features are required to run the application on the device.
When you include the Uirequireddevicecapabilities key in the Info.plist file, itunes restricts the installation of the application to devices that provide the necessary capabilities. Provide this list as a string array or as a dictionary.
An array specifies each of the required capabilities, and each item in the array must exist on the device. The dictionary allows a feature to be displayed or forbidden, the dictionary key is the ability, the dictionary value is used to set whether the attribute must exist (Boolean true) or must be omitted (Boolean value false).
Figure 1 Required device capabilities
Key |
Use |
Telephony |
Applications require the phone app or use Tel://url |
Wifi |
Applications require local 802.11-based network access. If iOS must maintain the Wi-Fi connection while the application is running, you can add Uirequirespersistentwifi as the top-level property list key |
Sms |
Applications need to messages applications or use Sms://url |
Stil-camera |
The application requires an onboard still life camera and can capture photos from the still camera using the image Picker interface |
Auto-focus-camera |
Applications require additional focus for macro photography, or to take particularly sharp images for data monitoring in images |
Front-facing-camera |
Applications need to forward the camera to the device |
Camera-flash |
Application requires Flash characteristics |
Video-camera |
Application requires a camera capable of recording video |
Accelerometer |
The application needs the accelerometer-specific feedback, not just the simple Uiviewcontroller-directed event. |
Gyriscope |
The application requires an onboard gyroscope on the device |
Location-services |
Applications require any type of core location |
Gps |
Applications need to use core location and require more accurate GPS positioning |
Magnetometer |
The application needs to use the core location, and it needs events related to the forward direction, both in the direction (Magnetometer is the built-in compass) |
Gamekit |
App needs access to game Center |
Microphone |
Applications need to use a built-in microphone or can provide a microphone accessory |
Opengles-1 |
Application requires OpenGL ES 1.1 |
Opengles-2 |
Application requires OpenGL ES 2.0 |
ARMv6 |
The application compiles only for the ARMV6 instruction set |
ARMv7 |
The application compiles only for the armv7 instruction set |
Peer-peer |
Application uses Gamekit peering connection via Bluetooth technology |
Blueetooth-le |
Applications require low-power support for Bluetooth technology |
|
|
(1) Description of user rights
To protect privacy, end users must explicitly allow applications to access reminders, photos, locations, contacts, and calendar data. To persuade the user to accept it, it helps to explain how the application can use such data and explains why it is being accessed. Assigns a string value to the following key at the top level of the Info.plist file. When iOS prompts the user for permissions on a specific resource, he displays the strings as part of his standard dialog box.
nsremindersusagedescription
Nsphotolibraryusagedescription
Nslocationusagedescription
Nscontactsusagedescription
Nscalendarsusagedescription
(2) Other commonly used info.plist keys
Here are a few other common keys you might want to assign in the attribute list, and a description of what they can do.
Uifilesharingenabled (Boolean, off by default): Allows users to access the contents of the application's Documents folder from itunes. This folder appears at the top level of the application sandbox.
Uiappfonts (array type, string of font name (including its extension): Specifies that a custom TTF font is provided in the package. When you add fonts, you can use standard Uifont calls to access them.
IOS device-specific development: settings for the Info.plist property list