NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
pub.dev · #4140 most downloaded on pub.dev
Didit Identity Verification SDK for Flutter. Wraps native iOS and Android SDKs for document scanning, NFC passport reading, face verification, and liveness detection.
Last release 2 days ago
06 Oct 2026
Ships fairly regularly
a new release about every 2 weeks
Nearly every release is documented
notes for 47 of 48 stable releases
Nothing withdrawn
no release was ever pulled
7 months old
48 releases · first in 2026
One column per month.
Pins the iOS and Android native SDKs exactly to 4.9.1.
Pins the iOS and Android native SDKs exactly to 4.9.1.
org.jmrtd.BACKey class in the didit_sdk (all features) package.Adds the opt-in showLanguageSelector configuration option.
Adds the opt-in showLanguageSelector configuration option.
When enabled, users can change the verification language from the welcome screen using the same compact, searchable selector as the web verification flow.
The selector remains hidden by default.
Pins the iOS and Android native SDKs exactly to 4.9.0.
Pins both native SDKs to 4.8.0. No integration API changes are required.
Pins both native SDKs to 4.8.0. No integration API changes are required.
Pins both native SDKs to 4.7.6.
Pins both native SDKs to 4.7.6.
No integration API changes are required.
Native SDKs 4.7.5 on both platforms: iOS moves from 4.7.2 to 4.7.5, Android from 4.7.4 to 4.7.5.
UNEXPECTED_CAMERA_ERROR on devices that expose usable cameras but no front lens. Camera options are now built from the cameras CameraX will actually bind, so such a device no longer falls back to requesting a front camera that cannot bind.CAMERA_TIMEOUT while it is still waiting for the camera permission dialog or for the front-camera selfie pre-capture. The stall timer is armed only once the preview can exist, so it no longer spends its restart attempts tearing down a session that is still binding.Android native SDK 4.7.3 -> 4.7.4. Active liveness now keeps the camera view visible while the camera pipeline starts up, fixing the Android 16 / API
cameraReady fired but no camera preview ever appeared.Android native SDK 4.7.3. Fixes the "Try Again", "Scan the front" and "Scan Back" buttons doing nothing on the upload status sheets on physical Androi
Native SDKs 4.7.2 on both platforms.
welcome.step.document, welcome.step.selfie, welcome.step.questionnaire) now resolve against their own workflow step instead of always the first one.Native SDKs 4.7.1 on both platforms.
no such module 'TensorFlowLite' - the 4.7.0 all and autodetection binaries leaked an internal import into their Swift interface (didit-protocol/sdk-ios#9). The dependency is implementation-only again and the release pipeline now gates on the emitted interface.welcome.title copy overrides now apply on whitelabel apps.languageCode is set; explicit Hebrew (he, with legacy iw normalized) is preserved for token and workflow sessions.Native SDKs 4.7.0 on both platforms.
didit-sdk-autodetection-play artifact that runs auto-capture on the Google Play services ML runtime (~43 MB smaller universal APK). This package's diditSdkAndroidVariant options are unchanged in this release; wrapper-level opt-in support is planned as a follow-up.Native SDKs 4.6.0 on both platforms.
me.didit:didit-sdk-wallet artifact instead of being bundled in didit-sdk-core, shrinking every integration that does not use it and dropping its JitPack-only dependencies from slim variants. The full didit-sdk bundle (the all variant) is unchanged. Slim-variant apps that use native wallet signing must add the new artifact; without it, wallet-ownership flows complete in the browser instead.Android: fixed a hard crash of the host app right after passive-liveness selfie capture on high-megapixel cameras (reported on Samsung Galaxy S25 Ultr
CAPTURE_PROCESS_DEATH diagnostic event, making these crashes visible server-side instead of silent.Android: fixed a fatal NoSuchMethodError crash ( FlowLayoutKt.FlowRow ) in host apps that resolve Jetpack Compose 1.8+/1.9, hit at the selfie upload s
NoSuchMethodError crash (FlowLayoutKt.FlowRow) in host apps that resolve Jetpack Compose 1.8+/1.9, hit at the selfie upload sheet and in KYB screens (didit-protocol/sdk-react-native#33). The native SDK no longer uses experimental Compose layout APIs, making it binary-compatible with any host Compose version from its 1.7 floor upward.Native SDKs 4.5.1 on both platforms: the white-label page background now fills the top and bottom safe areas on iOS (fixes the letterboxed look on cus
Native SDKs 4.5.0 on both platforms: the image-capture review screen now defaults to off, matching the backend, so a capture is no longer stranded beh
Native SDKs 4.3.1 on both platforms: the face flow no longer resets to its intro screen when the upload response advances within the face family (FACE
The smaller native SDK variants are now available under BOTH Swift Package Manager and CocoaPods via standalone packages with an identical Dart API: d
didit_sdk_core (manual capture only, iOS 13.0+), didit_sdk_autodetection (automatic capture without NFC, iOS 13.0+), and didit_sdk_nfc (NFC without automatic capture, iOS 15.0+). Depend on exactly one of the didit_sdk packages; each variant package pins the matching native SDK on both iOS and Android.didit_sdk itself is unchanged (full native SDK by default) - existing Swift Package Manager and CocoaPods setups, including $DiditSdkIosVariant, keep working as before.iOS: Swift Package Manager support. The plugin now ships a Swift package alongside the existing CocoaPods podspec, so apps built with Flutter's SPM mo
all variant) and requires an iOS 15.0+ deployment target; CocoaPods integration and variant selection are unchanged.Native SDKs 4.3.0 on both platforms: redesigned document/face upload status with a full-screen, theme-native view and an animated per-character "think
Sandbox (test-mode) support in the native SDKs: banner on every screen, bundled sample documents for ID/POA/Document AI uploads, scenario picker with
No breaking changes to the public Flutter API
submitTransaction / getTransaction) with required-action auto-launch (both platforms); Android also includes WalletConnect message signingX-Didit-Device-Model header used for backend IP-analysis / device identification (both platforms)No breaking changes: this release tracks the native 4.0.9 SDKs with no Flutter API changes
No breaking changes: this release tracks the native 4.0.8 SDKs with no Flutter API changes
No breaking changes: this release tracks the native 4.0.6 SDKs with no Flutter API changes
OpenSSL.framework — the native SDK now resolves OpenSSL-Universal 3.3.3001, which ships its own PrivacyInfo.xcprivacy and code signature; the NFC dependency NFCPassportReader was bumped 2.1.2 → 2.3.0 and verified end-to-end against a real chip read. No API changeNo breaking changes: this release tracks the native 4.0.5 SDKs with no Flutter API changes
re2::* private-symbol collision. No API or runtime changeDZA) for ID and passport on both platforms; the instructional video is now resolved from the document's detected countryNo breaking changes: no Flutter API changes
No breaking changes: this release tracks the native 4.0.3 SDKs with no Flutter API changes
4.0.3 version — the iOS dependency was previously a floating ~> 4.0, and the iOS podspec source is now tag-pinned to 4.0.3 — so a given plugin release always resolves the same tested native SDKs on both platformsSocial Security Card (SSC) document type support so document selectors on both platforms match the web frontend's full document list (data-driven, no Flutter API change)CoreLocation or requests location, so you can drop NSLocationWhenInUseUsageDescription from your app's Info.plistcomposite_hash fingerprint (X-Didit-FP-Hash header) for parity with the web SDK and the backend device-identification contractNo breaking changes: all new DiditConfig fields are optional with defaults matching the native SDKs
Tax Card (TC) document type support (data-driven, no Flutter API change) so document selectors on both platforms now match the web frontend's full document list, including the India PAN Card (Permanent Account Number) overrideexpected_document_types whitelist so a session that restricts allowed document types now applies the same filter natively on both platformsCameraLens enum (front / back) and four new DiditConfig options that expose the native camera configuration:
defaultDocumentCamera (defaults to native back) — lens used when first entering the document capture screendefaultLivenessCamera (defaults to native front) — lens used when first entering the liveness (passive face) capture screenshowDocumentCameraSwitchButton (defaults to true) — hide to lock the user to defaultDocumentCamerashowLivenessCameraSwitchButton (defaults to true) — hide to lock the user to defaultLivenessCamerashow…SwitchButton flagDiditConfig options that mirror the native Configuration surface:
showCloseButton (defaults to true) — show the close (X) button on verification step screensshowExitConfirmation (defaults to true) — show a confirmation dialog when the user attempts to exitcloseOnComplete (defaults to false) — auto-dismiss the verification UI when completebc-pill-text token for the title text (was incorrectly using bc-primary)DiditConfig fields are optional with defaults matching the native SDKsFix iOS variant selection getting silently downgraded to all whenever flutter build ran. Inline env vars set on the host shell do not survive flutter
all whenever flutter build ran. Inline env vars set on the host shell do not survive flutter build's implicit pod install, so a DIDIT_SDK_IOS_VARIANT=core flutter build would still ship the full 38 MB MediaPipe binary instead of the 6 MB Core slice. The iOS variant is now selected via $DiditSdkIosVariant set in the host app's ios/Podfile, which CocoaPods re-reads on every install. DIDIT_SDK_IOS_VARIANT is kept as a CI fallback.core produces a 6.0 MB DiditSDK Mach-O, nfc 6.6 MB, both with zero MediaPipe symbols.ios/Podfile.Update native Android SDK to 4.0.0
all, core, autodetection, and nfcall as the default full SDK variantcore variants for apps that only need manual captureautodetection variants for apps that need automatic capture without NFCnfc variants for apps that need passport chip reading without automatic captureUpdate native Android SDK to 3.5.10
Update native Android SDK to 3.5.8
Update native Android SDK to 3.5.7
Add iOS no-NFC installation support through DIDIT_SDK_IOS_NFC_ENABLED=false
DIDIT_SDK_IOS_NFC_ENABLED=falseNFCPassportReader, CoreNFC-linked reader code, and OpenSSL by selecting DiditSDK/CoreUpdate native Android SDK to 3.5.5
Handle new RetryBlocked error variant from native Android SDK 3.4.4
Fix Swift 6 compile error: add @unknown default to exhaustive switch on DiditSDK enums
Update native Android SDK to 3.4.3 (Kyrgyz language support, new session step fields)
update native android sdk to 3.4.2
update readme with correct api references and integration naming
update native android sdk to 3.4.0
Add consumer ProGuard/R8 rules to prevent release build crashes
java.lang.Class cannot be cast to java.lang.reflect.ParameterizedType in release modeFix backend-only step handling (AML, DATABASE_VALIDATION, IP_ANALYSIS) on Android
Fix camera permission handling for active liveness on Android
Nothing published for this version
Align with native SDK v3.2.1 for both iOS and Android
Align with native SDK v3.2.0 for both iOS and Android
Wraps native DiditSDK for iOS (3.1.1) and Android (3.0.0)
Your coding agent can read these notes before it upgrades. Set up the MCP server →