Requirements
iOS 14.0 or later. Built and tested with Xcode 26.3; Swift tools 5.9. The package brings its own privacy manifest and needs noInfo.plist key or entitlement to run.
Install
Podfile: CocoaPods takes a pod from the first source that has it.
Build the configuration
OneSessionConfig per session the user starts. Field names are the same in Swift and Kotlin.
Run a session
show, send and message(for:) are yours.
Things to know
- Begin the lifecycle after
login. The login page is the user’s to take time over, for example to fetch an SMS code.ZkTlsLifecycleasks iOS for background time while the capture runs, usually about 30 seconds. - Network changes. The lifecycle notices a Wi-Fi to cellular handover and reconnects.
- The login is private. Each login runs on a new non-persistent
WKWebsiteDataStoreand touches none of your app’s cookies. - The disclosure.
WebViewLoginPresentershows it before the page, every time. Passdisclosure:to translate it. A custom presenter must show an equivalent one. - Threads. Every verb runs on the SDK’s own threads.
onProgresscalls you on an SDK thread, so hop to the main actor for UI. - Logging. Log error variants and their text only.
print(config)shows every field, the app credential included.