Sandbox mode is currently not supported, due to incompatability with the locking mechanism that prevents different applications using the SDK from interrupting each other.
The Issue with Sandbox Mode
The Jabra SDK creates a lock file in
/private/tmp when initializing. This lock prevents different applications using the SDK from interrupting each other when communicating with the devices.
The lock file needs to be accessible by all applications using the SDK. However, when running in Sandbox mode the app is running in an isolated environment, unable to interact with other applications. This is why Sandbox mode currently is not supported.
Sandboxed applications can be granted access to the
/private/tmp folder using the
Please note that Apple has rejected our attempts to publish applications to the App Store with this entitlement.
Below is an example of the entitlements needed to use the SDK in Sandbox mode.
com.apple.security.device.usbis needed to enable the connection to the devices.
com.apple.security.network.clientis needed to download manifest files and certain other features like the Settings API and downloading product images.
com.apple.security.temporary-exception.files.absolute-path.read-writeis needed to create a lock file and communicate with devices.
<?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>com.apple.security.app-sandbox</key> <true/> <key>com.apple.security.device.usb</key> <true/> <key>com.apple.security.network.client</key> <true/> <key>com.apple.security.temporary-exception.files.absolute-path.read-write</key> <array> <string>/private/tmp/</string> </array> </dict> </plist>