macOS Sandbox Mode

Sandbox mode is currently not supported.

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.

Possible Work-Around

Sandboxed applications can be granted access to the /private/tmp folder using the com.apple.security.temporary-exception.files.absolute-path.read-write entitlement.
Please note that Apple has rejected our attempts to publish applications to the App Store with this entitlement.

Example Entitlements File

Below is an example of the entitlements needed to use the SDK in Sandbox mode.

  • com.apple.security.device.usb is needed to enable the connection to the devices.
  • com.apple.security.network.client is 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-write is 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>