Info.plist options

If you have an iOS app (including Mobile Flutter or React Native) or a watchOS app, then the following additional Info.plist options are available.

APLLogging

To enable debug logging in the Appfigurate library early on, add the APLLogging key to the Info.plist file. The APLLogging key is optional.

Info.plist example

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
     <key>APLLogging</key>
     <true/>
     ...

The default value of APLLogging is false. You should not need to enable this to true unless you are having trouble integrating the library. It is best practice not to ship an app with this key set to true.

You can also call APLSetLogging function to achieve the same result in code.

Keychain accessibility

Appfigurate Library stores any configuration payload and digital signature (that may have been applied by Appfigurate) securely in your app's Keychain.

The APLKeychainAccessibility key affects the access level of that configuration payload and digital signature. Best practice is to use the most restrictive option that is compatible with your app (and app extensions). The APLKeychainAccessibility key is optional.

Value
Description

WhenUnlocked

Configuration can only be accessed while the device is unlocked. Will migrate to a new device when restored from an encrypted backup.

AfterFirstUnlock

Configuration can only be accessed once the device has been unlocked after a restart. Will migrate to a new device when restored from an encrypted backup.

Always

Configuration can always be accessed regardless of the lock state of the device. Will migrate to a new device when restored from an encrypted backup.

Deprecated use an accessibility level that provides some user protection, such as WhenUnlocked.

WhenPasscodeSetThisDeviceOnly

Configuration can only be accessed while the device is unlocked.

WhenUnlockedThisDeviceOnly

Configuration can only be accessed while the device is unlocked.

AfterFirstUnlockThisDeviceOnly

Configuration can only be accessed once the device has been unlocked after a restart.

AlwaysThisDeviceOnly

Configuration can always be accessed regardless of the lock state of the device.

Deprecated use an accessibility level that provides some user protection, such as WhenUnlockedThisDeviceOnly.

Info.plist example

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
     <key>APLKeychainAccessibility</key>
     <string>AfterFirstUnlock</string>
     ...

The default value of APLKeychainAccessibility is Always.

Info.plist key availability by platform

Key
iOS app
iOS app extension
watchOS app
watchOS app extension

APLLogging

1

2

APLKeychainAccessibility

1

2

APLKeychainAccessGroup

1

2

1=iOS app extensions automatically use the Info.plist file from the containing app. You do not need to modify the iOS app extension's Info.plist file.

2=watchOS app extensions automatically use the Info.plist file from the containing watch app. You do not need to modify the watchOS app extension's Info.plist file.

Standard Info.plist behaviour

App name

The standard key CFBundleDisplayName (if specified) will be used to populate the name of the app in Appfigurate. If not specified, then the CFBundleName value is used.

App version

The standard key CFBundleShortVersionString (if specified) will be used to populate the version of the app in Appfigurate. If not specified, then the CFBundleVersion value is used.

App icon

To populate the icon of the app in Appfigurate, the following search order is used: CFBundleIcons,CFBundleIconFiles,CFBundleIconFile.

For iOS, the search order of app icon sizes is: 60x60@2x, 60x60@3x, 76x76@2x, 83.5x83.5@2x, 60x60@1x, 76x76@1x

For watchOS, the search order of app icon sizes is: 40x40@2x

Last updated