Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/signing-sdk/face-auth-ios/llms.txt

Use this file to discover all available pages before exploring further.

The TAD Signing SDK uses the device camera for face liveness detection and Face ID for passkey operations. iOS requires you to declare the reason for both accesses in your Info.plist before your app is allowed to request them. If either key is missing, iOS will terminate your app at the point where the permission is first requested.
Both NSCameraUsageDescription and NSFaceIDUsageDescription are required. Omitting either one causes a runtime crash when the SDK attempts to start face liveness detection or a passkey operation.

Required permission strings

KeyValue
NSCameraUsageDescriptionRequired for face liveness check during biometric sign-in
NSFaceIDUsageDescriptionUsed to secure your Passkey during registration and sign-in

Adding permissions to Info.plist

1

Open your Info.plist

In Xcode, select your target, go to Info, and click the + button to add a new key. Alternatively, right-click Info.plist in the file navigator and choose Open As → Source Code.
2

Add the camera usage description

Add the NSCameraUsageDescription key with the exact string shown below. The string is displayed to the user in the system permission prompt.
<key>NSCameraUsageDescription</key>
<string>Required for face liveness check during biometric sign-in</string>
3

Add the Face ID usage description

Add the NSFaceIDUsageDescription key directly below the camera key.
<key>NSFaceIDUsageDescription</key>
<string>Used to secure your Passkey during registration and sign-in</string>
4

Set the encryption export flag

Add ITSAppUsesNonExemptEncryption and set it to false. This tells the App Store that your app uses only standard OS-level encryption and does not require an export compliance declaration.
<key>ITSAppUsesNonExemptEncryption</key>
<false/>

Complete Info.plist snippet

The following block shows all three keys together as they appear in the demo app’s Info.plist:
<?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>
    <!-- ... other keys ... -->
    <key>ITSAppUsesNonExemptEncryption</key>
    <false/>
    <key>NSCameraUsageDescription</key>
    <string>Required for face liveness check during biometric sign-in</string>
    <key>NSFaceIDUsageDescription</key>
    <string>Used to secure your Passkey during registration and sign-in</string>
</dict>
</plist>

Adding permissions via XcodeGen (project.yml)

If you manage your project with XcodeGen, add the permission strings under the target’s info.properties block in project.yml:
targets:
  YourApp:
    info:
      path: YourApp/Info.plist
      properties:
        NSCameraUsageDescription: "Required for face liveness check during biometric sign-in"
        NSFaceIDUsageDescription: "Used to secure your Passkey during registration and sign-in"
        ITSAppUsesNonExemptEncryption: false
The permission strings shown above are the exact values used in the TAD Signing SDK demo app. You may customise the wording, but keep the description accurate and user-facing — App Review rejects vague or misleading permission strings.

Build docs developers (and LLMs) love