Skip to main content
  • Minimum SDK: 24 (Android 7.0)
  • Compile SDK: 35+
  • JDK: 17-21
  • Kotlin: 2.0+
  • UI frameworks: Jetpack Compose and Views

Add the repository

The SDK is published privately to GitHub Packages, not to Maven Central, so Gradle needs the repository and credentials before it can resolve it. settings.gradle.kts:
Credentials come from a GitHub personal access token with read:packages.
Keep the token out of the repository. Put it in ~/.gradle/gradle.properties locally, and in GITHUB_ACTOR / GITHUB_TOKEN on CI. A PAT committed to source is a credential leak, and GitHub will revoke it for you once it notices.
~/.gradle/gradle.properties:

Add the dependency

gradle/libs.versions.toml:
app/build.gradle.kts:

Manifest and permissions

Nothing to add. The SDK’s own manifest declares CAMERA, INTERNET, ACCESS_NETWORK_STATE, ACCESS_FINE_LOCATION and ACCESS_COARSE_LOCATION, and manifest merging pulls them into your app. Its activity is declared too, and is exported="false".
Do not request camera or location yourself. The flow asks for them at the right moment and turns a refusal into a typed result. Requesting them early gets you a denial with no context to show the user.

R8 and minification

Covered as well. The SDK ships consumerProguardFiles, so a minified release build keeps the public API intact without any rule on your side.

Next

Quick start

Launch the flow from Compose or Views.

Handling the result

Every outcome and error code.