For the complete documentation index, see llms.txt. This page is also available as Markdown.

Installation Guide

Install and configure Certta for iOS. Learn SDK requirements, permissions, repositories, dependencies, session setup, runtime token updates, and color theming.

This guide covers version 7.0.0 and above. For versions below 7.0.0, please see the legacy documentation.

Requirements

Before integrating, ensure your environment meets the minimum Xcode, Swift, and iOS versions for the CafSDK release you use. Check GitHub Releases.

You need:

  • CafSDK and CafFaceLiveness linked to your target

  • Optional provider packages (for example iProov, FaceTec 2D, Fortface) as agreed with CAF for your product — match your Package.swift or CocoaPods subspecs to the providers your backend expects.

Requirement
Version

iOS deployment target

15.0+

Xcode

26


Permissions

Add camera usage text so the system can show the permission prompt when Face Liveness uses the camera.

Info.plist

<key>NSCameraUsageDescription</key>
<string>We need access to the camera for face verification.</string>

Standard iOS apps can use the network without an extra manifest entry; configure App Transport Security only if your environment requires exceptions (see Apple documentation).


Adding dependencies

In Package.swift, add the package (adjust the version range to match your release):


Configuring the session

Initialize Certta when you have a valid mobile token (JWT) and user ID — for example after login. Call Certta.shared.configure(configuration:) from your app code (typically from the same place you establish the user session, not necessarily application(_:didFinishLaunchingWithOptions:) unless that fits your flow).

  • If mobile token or user ID is empty, the session is not updated and a warning is logged; call configure again with both values set.

  • environment: must match the CAF environment your backend uses (for example .prod, .dev .beta).

  • securityEnabled: when true, jailbreak / instrumentation checks may block flows (see CAF product guidance).

CerttaConfiguration parameters

Parameter
Type
Description

mobileToken

String

CAF mobile JWT from your backend.

userID

String

End-user identifier.

environment

CafEnvironment

CAF backend environment (for example .prod).

securityEnabled

Bool

When true, enables security checks where applicable. Default true.

Mobile token (JWT)

Your backend should obtain and pass the mobile token according to CAF platform rules. Use your CAF integration / backend documentation for how to generate and refresh the JWT; do not embed secrets in the client.


Runtime configuration updates

userID and mobileToken can be updated after the initial configure without repeating the full struct. Call these from your coordinator, view controller, or wherever you handle login, logout, or token refresh:

Use these when the user logs in again or when your backend issues a refreshed JWT, so the Certta SDK stays aligned with the active session.

End session

Call on logout. Flows will not run until configure succeeds again with valid credentials.


Colors and theming

The Face Liveness UI can use a custom palette when useFaceLivenessUi is true in LivenessConfiguration. Provide colors as hexadecimal strings (for example #RRGGBB).

  1. After a successful configure, set session colors: Certta.shared.setColorConfiguration(_:).

  2. Set useFaceLivenessUi: true so those colors apply to the built-in Certta Face Liveness interface.

Dark / light mode: build CafColorConfiguration using UITraitCollection.current.userInterfaceStyle if you need different palettes.

CafColorConfiguration parameters

Parameter
Description

primaryColor

Primary accent (hex string).

secondaryColor

Secondary accent.

contentColor

Foreground / content.

backgroundColor

Main background.

mediumColor

Muted / medium emphasis.

dialogBackgroundColor

Dialog background.

dialogBorderColor

Dialog border.

All parameters are optional in the initializer; set the ones your theme needs.


Signed response (success)

The string in didFinish(signedResponse:) is the signed result from the module. Your backend or CAF integration documentation defines how to validate, decode, and store it. Do not log the full token in production builds.


Next steps:

Face LivenessDocument Detector

Release notes

See GitHub Releases for versions, breaking changes, and minimum Xcode / iOS.

Last updated