fix(verifier): support SDK Tethering in iOS & Android verifier sample apps#305
Merged
Conversation
MobileCredentialVerificationFailureType is a String-backed enum and has no member 'message' (message only exists as an internal CodingKey), so 'failureType?.message' fails to compile: Value of type 'MobileCredentialVerificationFailureType' has no member 'message' Use the enum's rawValue, which is the human-readable failure message (e.g. "mDoc authentication failed"). Fixes both the in-person and remote verification tutorial sample apps.
…on sample The in-person verifier sample app uses GENERATE_INFOPLIST_FILE with no camera usage description, so the app crashes when tapping 'Scan QR Code': This app has crashed because it attempted to access privacy-sensitive data without a usage description. The app's Info.plist must contain an NSCameraUsageDescription key... Add INFOPLIST_KEY_NSCameraUsageDescription for QR scanning and INFOPLIST_KEY_NSBluetoothAlwaysUsageDescription for the subsequent BLE proximity session (which would otherwise crash on the next step), to both the Debug and Release build configurations.
…ad tenant/applicationId from it
…er samples The Verifier SDK artifact repackages common sources from global.mattr.mobilecredential.common to global.mattr.mobilecredential.verifier (see Verifier/transform-sources.gradle in android-mobile-credential-sdks), so PlatformConfiguration ships under ...verifier.platformconfig, not ...common. Both Android verifier sample apps used the common import and failed to compile.
dylan-paul
approved these changes
Jun 29, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes a set of issues that prevent the iOS and Android verifier tutorial sample apps from building and running against the tethered Verifier SDK (Android Verifier SDK v7.0.0+ / the matching iOS release), where the SDK is tethered to a MATTR VII tenant and requires a
PlatformConfigurationat initialization.1. Android: wrong
PlatformConfigurationimport (build error)Both Android verifier samples imported
PlatformConfigurationfrom thecommonpackage:The published Verifier SDK artifact repackages the common sources —
Verifier/transform-sources.gradlerewritesglobal.mattr.mobilecredential.commontoglobal.mattr.mobilecredential.verifier— so the class ships under theverifiernamespace. Corrected to:Applied to both:
android-in-person-verifier-tutorial-sample-appandroid-remote-verification-tutorial-sample-app2. iOS build error:
failureType?.messagedoes not compileMobileCredentialVerificationFailureTypeis aString-backed enum with nomessageproperty —messageonly exists as an internalCodingKey. Switched to the enum'srawValue, which is the human-readable failure message (e.g."mDoc authentication failed").Applied to both sample apps:
ios-in-person-verifier-tutorial-sample-appios-remote-verification-tutorial-sample-app3. iOS crash on "Scan QR Code": missing camera usage description
The in-person sample uses
GENERATE_INFOPLIST_FILE = YESand declared no camera usage description. Added to both the Debug and Release configs:INFOPLIST_KEY_NSCameraUsageDescription— for QR scanning.INFOPLIST_KEY_NSBluetoothAlwaysUsageDescription— for the subsequent BLE proximity session, which would otherwise crash on the next step.The remote verification sample uses neither camera nor Bluetooth, so it needs no usage descriptions.
4. Android in-person sample: extract tenant config into a
ConstantsfileTethering requires a tenant-specific
PlatformConfiguration.MainActivity.kthard-coded thetenantHostandapplicationIdplaceholders inline. Moved them into a newConstants.kt(TENANT_HOST/APPLICATION_ID) with guidance comments, and updatedMainActivityto read from it — giving a single, documented place to drop in tenant-specific values.5. Repo hygiene
Added
docs/superpowers/to.gitignoreso Superpowers process artifacts (specs/plans) don't get committed to product PRs.Out of scope (follow-ups)
The React Native verifier tutorials reference
verificationResult.reason.message. That's a different (JS) SDK with a different result shape and was not touched here.🤖 Generated with Claude Code