Skip to main content

SeeTestAutomation - Entitlements

info

Please note that this tool is classified as a Legacy tool. We recommend transitioning to our updated solutions to maintain optimal performance and security in your workflows. For more information on this matter, please reach out to technical support .

Overview

Entitlements grant specific capabilities or security permissions to your iOS app.

Developers decide what entitlements to use. Each entitlement has a specific declaration of a key-value structure. 

Chosen entitlements are mentioned in the provision profile used for signing the app during development.

As described in code sign - SeeTestAutomation re-signs applications and most-likely uses a different profile.

Apple page on entitlements

iCloud Document Storage

Key 

com.apple.developer.ubiquity-container-identifiers

Value

$(TeamIdentifierPrefix)com.mycompany.myapplication

Includes bundle-ids this app can access documents created by them on iCloud.

You must not use a wildcard ("*") character in the string for an iCloud container entitlement value

Configuring Keychain Sharing

Key 

keychain-access-groups

Value

$(TeamIdentifierPrefix)com.mycompany.myapplication

App can restrict Keychain sharing to a set of app groups

Will change when signing with a wildcard ("*") profile - see Troubleshooting section below.

Enabling Data Protection

 Stores files in an encrypted format on disk.

This can interfere with SeeTest working with the app

Entitlements Troubleshooting

Using the ios.entitlements.fix.keychain property

The studio has the ability to automatically add the "allow Keychain access" capability when designing an app that had this capability in the original signing (when the app was created).

To do so, add the following property to the app.property file: ios.entitlements.fix.keychain=true.

Follow the following link to learn how to add properties in the app.properties file.

app.properties file

Basic Instrumentation

There is an option to instrument your application with basic capabilities only (doesn't include features like Simulate Capture, Mock Authentication). This option is recommended only when experiencing problems with the default instrumentation.

To set Basic Instrumentation, add the following line to the app.properties file: ios.instrument.with.basic.frameworks=true

Or use keyle.

Override Application Entitlements (advance usage)

For advanced usage, you can import entitlements to your application during the installation process. This option is recommended only when experiencing problems with entitlements.

You must supply valid entitlements.plist file for your application.

To sign applications with custom entitlements.plist add this property  to the app.properties file:

override.entitlements.file.path_<BundleID>=<Path_To_entitelments.plist>

Override Application Plugins Entitlements (advance usage)

To sign application plugins with custom entitlements.plist add this property to the app.properties file:

override.entitlements.file.path_<BundleID>_plugins=<Path_To_entitelments.plist> 

For more information on that matter, please contact to support.

Manual instrumentation

Manually Instrumenting iOS Applications