Before integrating the TAD Signing SDK, confirm that your development environment and backend infrastructure meet the following requirements. Missing any of these will prevent the SDK from building or functioning correctly at runtime.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 minimum iOS deployment target is 16.0. Devices running iOS 15 or earlier are not supported because the SDK depends on passkey APIs introduced in iOS 16.
Development environment
| Requirement | Minimum version |
|---|---|
| iOS deployment target | 16.0 |
| Xcode | 16.0 |
| Swift | 5.9 |
| Platform | iOS only (UIKit and SwiftUI compatible) |
Bundle ID convention
The demo app uses the prefixuz.tad (e.g. uz.tad.TadSigningDemo). Your production app can use any valid bundle ID prefix, but the prefix you choose must be consistent with your Apple Developer team and the Associated Domains entitlement you configure for passkeys.
Backend requirements
The SDK delegates cryptographic verification and passkey management to a backend service. That service must provide:- ES512 public key — an ECDSA P-521 public key in PEM format used to verify signed tokens.
- Signing API endpoint — a base URL the SDK calls to initiate and complete signing operations (e.g.
https://signing.tadi.uz). - Relying party domain (
rpId) — a registered domain that matches thewebcredentialsentry in your Associated Domains entitlement. The SDK’sTadSigningConfig.rpIdmust equal this value exactly.
Required entitlements and permissions
| Capability | Key | Purpose |
|---|---|---|
| Associated Domains | com.apple.developer.associated-domains | Binds WebAuthn passkeys to your domain via webcredentials:<domain> |
| Camera | NSCameraUsageDescription | Required for face liveness detection during sign-in |
| Face ID | NSFaceIDUsageDescription | Secures passkey registration and sign-in with biometrics |
App Store encryption
SetITSAppUsesNonExemptEncryption to false in your Info.plist. The SDK uses only standard OS-level encryption (TLS and the Secure Enclave), which is exempt from US export compliance declarations.