Entitlement List
Go Up to Application
Contents
Project > Options > Application > Entitlement List
You describe the way an application interacts with the system with the entitlements. An entitlement is a key-value pair, defined in a property list file that confers a specific capability or security permission to a target. For example, there are entitlement keys to indicate that your application needs access to the camera, the network, and user data such as Address Book.
Options | Description |
---|---|
Target, Apply, Save |
See Target Options. |
Common items |
Entitlement List
The Entitlement List controls run-time program access to system resources. Setting a specific entitlement entitles your application to use that specific privilege at run time.
The Entitlement List sets the entitlement options of the current project. The list is empty when you select an unsupported target platform in the Target combo box.
Entitlement List options | Description |
---|---|
Left-hand column |
Lists the target platform entitlements. Most entitlements are Boolean values (True/False). |
Right-hand column |
Specifies the settings for the entitlements, either True or False. To change the value of an option, do either of the following: |
Entitlement List for Android
Sets the entitlement options of the current Android project. Select Android platform in the Target combo box.
Examples of entitlements you can set in an Android application:
- AdMob Service: To enable Google advertising service for an Android application.
- Receive push notifications: To enable GCM support in an Android application and receive data from remote servers.
- Maps Service: Adds 2 entries to the Android manifest file to allow Google Maps to work (i.e. a TMapView to function). As mentioned in the Configuring Android Applications to Use Google Maps page.
- Secure File Sharing: To allow a TTakePhotoFromCameraAction or TShowShareSheetAction to function, as well as anything else that needs to expose a file via a file:// URI from its application.
Entitlement List for macOS
Sets the entitlement options of the current macOS project. Select macOS platform in the Target combo box.
Examples of entitlements you might choose to set:
- Interaction with USB devices
- Read/write access, address book
- Read-only access, Music folder
- Use of the computer's geographical location
- For full information from Apple about entitlements and sandboxing, see:
- Entitlement Reference
- Enabling App Sandbox (describes the options on the Entitlement List page)
- For information from Apple about sandboxing, see Designing for App Sandboxing.
Entitlement List for iOS
RAD Studio adds an option to the Entitlement List options page to enable HTTP protocol requests on iOS 9.0. This option, which is enabled by default, disables the ATS (App Transport Security) security feature of iOS to:
- Allow connections regardless of whether they use HTTP or HTTPS protocol.
- Allow connections to servers with lower TLS versions.
- Allow cipher suites that do not support forward secrecy (FS).
- For full information from Apple about entitlements and sandboxing, see:
- Entitlement Reference
- Enabling App Sandbox (describes the options on the Entitlement List page)
- For information from Apple about sandboxing, see Designing for App Sandboxing.
Customizing Your Entitlement List for iOS or macOS
RAD Studio allows you to manually edit the entitlements file for a single project, and also to predefine entitlement keys for all your projects.
When you build an application for either the iOS target platform or the macOS target platform for the first time, RAD Studio adds a file to your project folder: Entitlement.TemplateiOS.xml
, or Entitlement.TemplateOSX32.xml
, depending on the target. Whenever you build your application for iOS or macOS, RAD Studio reads this file, replaces some placeholders in the file with actual values from your project options, and writes the resulting content into an output file: <project folder>\<platform>\<build configuration>\<project_name>.entitlements
. This output file is the xml file that is included in the package that RAD Studio generates when you deploy your iOS or macOS application.
You can customize the content of the Entitlement.TemplateiOS.xml
file, or Entitlement.TemplateOSX32.xml
file, depending on the target, if you need to include custom data in this file that you cannot define visually in your project options.
To customize the Entitlement list for a single project, edit the content of the xml file that is placed in your project folder. The name of the file is Entitlement.TemplateiOS.xml
, or Entitlement.TemplateOSX32.xml
, depending on the target.
You can also predefine entitlement keys for all your projects. The xml files that RAD Studio adds to a project when you build that project for the iOS or macOS target platform for the first time comes from C:\Users\<username>\AppData\Roaming\Embarcadero\BDS\23.0\Entitlement.TemplateiOS.xml
or Entitlement.TemplateOSX32.xml
, depending on the target. If you want your new projects to have a different starting xml file, edit these files.
See Also
- Apple Application Entitlement File (*.entitlements)
- GCM support
- Using the AdMob Service
- Using the iAd Service
- Mobile Tutorial: Using Remote Notifications (iOS and Android)
- Provisioning Page (required for using the IDE to submit your app to the Mac App Store)
- Introduction to Codesigning for Mac
- Submitting Your Mac App to the App Store
- MacOS Application Development (describes code signing and submitting to the Mac App Store)
- Deploying Your iOS Application for Submission to the App Store