Release Notes for iOS SDK - 3.x
3.6.2000 (09/22/2026)
The version number jumps from 3.4.1300 to 3.6.2000 to stay aligned with the Dynamsoft Capture Vision base the SDK ships against. There were no public 3.5.x or 3.6.1000 releases.
The minimum supported iOS version is now 16.0, raised from 13.0, as required by the Core ML models the scanner ships. Apps on an earlier deployment target must raise it to iOS 16.0 or later to adopt this release.
New
- Per-field MRZ validation:
MRZData.getFieldValidationStatus(_:)returns a field’s check-digit result as aValidationStatusof.none,.succeeded, or.failed. It takes the same field names as theMRZDataproperties; the compositesdateOfBirth,dateOfExpire, andmrzTextreport their worst component.- Behavior change: scans failing check-digit validation are no longer discarded. Values are returned with their status, so you can accept them, re-scan, or request correction.
- Camera permission handling:
MRZScannerViewControllernow gates the camera onAVCaptureDeviceauthorization and never opens it without access. When unavailable it offers Open Settings, then reports the outcome.- New
ErrorCode(DSMRZErrorCodein Objective-C):cameraPermissionDenied(1001), resolvable through Settings, andcameraPermissionRestricted(1002), withheld by device policy. Both are reported byerrorCodewith.exception. The bundle owns codes 1000–1999; Capture Vision codes are all<= 0. - New
isCameraPermissionPromptEnabled(default:true) suppresses the alert for integrators presenting their own UI. Denials are still reported.
- New
-
Scanning progress indicator: Shown while the scanner is actively processing frames, prompting the user to hold the device steady.
- Flip document prompt: For TD1 and TD2 IDs with the portrait on the opposite side, the scanner now prompts a flip after the MRZ is captured.
Fixes & Improvements
- Upgraded the Dynamsoft Capture Vision base to 3.6.2000, addressing a known CVE and adding crash fixes. An MRZ rotated 180° can now be read.
- Constrained the scan region to the guide frame; previously a document held outside the guide could be accepted.
- Fixed capture staying clipped to an invisible box when
isGuideFrameVisible = false. The whole preview is now scanned, and the spinner and flip prompt remain visible. - Fixed small documents going undetected once the scan region covered the whole preview.
- Fixed the guide frame fading to white before the result view appeared; the green is now held through the handover.
- Fixed image assets failing to load when
DSMRZScannerViewControlleris subclassed from Objective-C. Swift integrators were unaffected. - Reduced memory retained after dismissal; the last frame’s full-resolution image buffers are now released on teardown.
- The
DynamsoftMRZScannerBundle.xcframeworkis now published unsigned, so archive builds no longer require access to the signing team that produced it.
3.4.1300 (04/27/2026)
Fixes & Improvements
- Fixed an issue where the portrait extraction task failed to signal completion on TD2 documents, stalling the transition to the result view despite successful portrait detection.
3.4.1200 (04/02/2026)
New
- Image results:
MRZScanResultnow returns captured images alongside the parsed MRZ data. Three types of images can be retrieved from the result:- Document image: A cropped and perspective-corrected image of the document, available via
getDocumentImage(_ side: DocumentSide). Returned by default. - Original image: The raw full-frame camera image captured at the moment of scanning, available via
getOriginalImage(_ side: DocumentSide). Disabled by default. - Portrait image: The detected portrait extracted from the document, available via
getPortraitImage(). Returned by default. - For two-sided ID cards, images for both sides are accessible by passing
DocumentSide.mrzorDocumentSide.oppositetogetDocumentImage()andgetOriginalImage().
- Document image: A cropped and perspective-corrected image of the document, available via
-
New
DocumentSideenumeration: AddedDSDocumentSide(DocumentSidein Swift) with valuesDSDocumentSideMrz/.mrz(the side containing the MRZ) andDSDocumentSideOpposite/.opposite(the reverse side) to identify which side of a document an image belongs to. - Image return configuration: Added three new
MRZScannerConfigproperties to control which images are included in the scan result:returnDocumentImage(default:true)returnOriginalImage(default:false)returnPortraitImage(default:true)
- Additional MRZ data fields:
MRZDatanow exposes the following additional parsed fields:issuingStateRaw— the raw issuing state value as encoded in the MRZ, before standardization.nationalityRaw— the raw nationality value as encoded in the MRZ, before standardization.optionalData1— the first optional data field (nullable).optionalData2— the second optional data field (nullable).personalNumber— the personal number field, typically present on TD3 passport documents (nullable).
- New UI button visibility controls: Added three new
MRZScannerConfigproperties to control the visibility of toggle buttons in the scanning UI:isBeepButtonVisible— shows or hides the beep sound toggle button (default:true).isVibrateButtonVisible— shows or hides the vibration toggle button (default:true).isFormatSelectorVisible— shows or hides the document format selector at the bottom of the scanning UI (default:true).
Changed
-
MRZScanResult.datais now nullable: Thedataproperty onMRZScanResulthas been changed from a non-optional type to a nullable type (nullable DSMRZData*/MRZData?in Swift). Code that accessesresult.datawithout a nil check must be updated. See the upgrade guide for migration details. -
errorMessagerenamed toerrorString: TheerrorMessageproperty onMRZScanResulthas been renamed toerrorString. Update any references in your code. See the upgrade guide for migration details.
3.2.5000 (12/18/2025)
Fixes & Improvements
- Resolved a libPNG CVE issue by updating the C++ dependencies to use the latest libPNG CVE.
3.2.3000 (11/05/2025)
Fixes & Improvements
- Resolved an issue where scanning could take longer than expected.
- Fixed a potential crash that could occur in certain scenarios.
3.2.1000 (10/16/2025)
- 🚀 High-Speed and Precise MRZ Region Detection: Revolutionary neural network
MRZLocalizationmodel delivers 42.7% faster processing with enhanced region detection accuracy for passport and ID workflows
3.0.5200 (08/18/2025)
Fixes & Improvements
- Fixed an xcframework signature issue.
3.0.5100 (08/05/2025)
Fixes & Improvements
- Small fixes and tweaks.
3.0.5000 (07/29/2025)
Fixes & Improvements
- Default Camera Changed: To address short-distance focusing issues on Pro Max iPhones, the default camera has been switched to
BackDualWideAuto, enabling automatic switching between the wide and ultra-wide cameras. - Fixed various minor bugs and improved overall stability.
3.0.0 (05/15/2025)
Fixes & Improvements
- Improved the read-rate and the accuracy of MRZ text recognition.