Android Verifier SDK v6.0.0 Migration Guide
A guide to help developers migrate from Android Verifier SDK v5.x to v6.0.0, including breaking changes, new features, and best practices.
Overview
This guide provides a comprehensive overview of the changes introduced in MobileCredentialVerifierSDK v6.0.0 for Android, including breaking changes, new features, and migration steps.
Key Features
- Improved reliability in contactless flows: Enhanced BLE performance delivers more consistent proximity credential exchanges and faster engagements.
- Stronger cryptography and standards alignment: Updated COSE algorithms (as per RFC 9864) strengthen cryptographic compatibility and ensure continued compliance with evolving standards.
- Simpler, Decoupled Releases: The Android Verifier SDK no longer has a shared common module. This allows us to decouple the releases of Holder and Verifier and versions no longer need to match.
- General stability and performance improvements: Multiple refinements reduce integration friction, increase consistency across mobile environments, and improve overall user experience.
For a detailed list of changes included in this release, refer to the SDK Changelog.
Breaking Changes
This section outlines the breaking changes introduced in v6.0.0 that require updates to your existing implementation:
| # | Element | Change | Impact |
|---|---|---|---|
| 1 | MobileCredentialVerifier.sendProximityPresentationRequest(skipStatusCheck = ...) | Parameter renamed to checkStatus = ... with inverted semantics | All call sites using skipStatusCheck = ... must be updated. |
| 2 | mattr.global.mobilecredentials.common | Package path moved to mattr.global.mobilecredentials.verifier | All imports must be updated. |
Bug Fixes
- Fixed parsing of status lists that use a bit size other than 2.
- Fixed an issue where the Wallet could attempt to start a new session before the previous session had completed.
- Resolved BLE retry issues during proximity presentations that resulted in "SDK not ready (Engaging)" errors.
- Improved cross-device flow handling in DCM scenarios and resolved result mismatches.
- Corrected UI refresh issues following automatic session termination.
Minimum Requirements
- Android 7 / Nougat / API 24.
- The Android Verifier SDK is built using Kotlin 2.0. This adds some intrinsic dependencies into your build tools.
Migration Steps
Rename any references to the common package to verifier
The shared common module has been removed and bundled into the Android Verifier SDK. The package path has moved from mattr.global.mobilecredentials.common to mattr.global.mobilecredentials.verifier. Update all imports accordingly:
- import mattr.global.mobilecredentials.common.*
+ import mattr.global.mobilecredentials.verifier.*This can be done with a global find and replace across your codebase. If you are using both the Holder and Verifier SDKs, you will need to limit your search to the relevant parts of your application.
Remove the Common dependency from your project
The Common dependency is now bundled into the Verifier SDK. Remove it from your project's build.gradle or build.gradle.kts file:
dependencies {
implementation("global.mattr.mobilecredentials:verifier:6.0.0")
- implementation("global.mattr.mobilecredentials:common:5.x.x")
}Update sendProximityPresentationRequest calls
The skipStatusCheck parameter has been renamed to checkStatus with inverted semantics. When checkStatus is true (default), the SDK will verify credential status. When false, it will skip status checking. Update all calls accordingly:
- val response = verifier.sendProximityPresentationRequest(request = requests, skipStatusCheck = true)
+ val response = verifier.sendProximityPresentationRequest(request = requests, checkStatus = false)| Old Parameter | New Parameter | Mapping |
|---|---|---|
skipStatusCheck = false (default) | checkStatus = true (default) | No change needed |
skipStatusCheck = true | checkStatus = false | Invert the boolean |
How would you rate this page?
Last updated on