Entitlement List

From RAD Studio
Jump to: navigation, search

Go Up to Application

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

See Common Items on Project Options Pages.

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:

  • Click the checkbox NewerTrueCheckbox.png (to change from False to True, for example).
  • Click the down-arrow Down Arrow to select from the available choices.

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:

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
Note: Entitlements are restricted due to Apple sandboxing requirements.

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).
Note: ATS converts all HTTP requests to HTTPS automatically. Therefore, attempts to connect insecurely fail when ATS is enabled. See the Apple documentation for more information.
Note: Entitlements are restricted due to Apple sandboxing requirements.

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.

Warning: You must save your project in a specific folder to have its own entitlement file.
Note: Notice that the name of the generic xml file is the same as the name of your project's xml file. Be careful if you want to modify the starting point of all your projects or only the entitlements for one project in particular.

See Also