Changelog for the iOS Data Capture SDK
tip
For additional details about the API, please refer to our API reference documentation.
Version 9.0.1 (6 July 2026)β
- π Bug fixes:
- Document Scanner:
- Fixed an issue in the RTU UI Document Scanner where the camera screen remained black when swiping back from the Review Screen.
- Fixed an issue in the RTU UI Document Scanner Crop Screen where the polygon was not always applied with pixel-perfect accuracy.
- Document Scanner:
Version 9.0.0 (30 June 2026)β
- π Release notes:
- Explore the release highlights and key improvements here.
- π New:
- General:
- SBSDKImageRef:
optimizeflag added tosaveImageandencodeImage. When set totrue, the encoder spends additional time to improve JPEG output quality. - Added
accessibilityStateandactiveAccessibilityStateproperties for flash and flip camera buttons in the RTU UI Barcode Scanner and Data Capture screens. VoiceOver now announces the current state in accessibility mode. - Added properties
isTapToFocusEnabledandtapToFocusDurationtoSBSDKBaseScannerGeneralConfiguration. You can now enable the tap-to-focus functionality in all Custom UI screens. Disabled by default.
- SBSDKImageRef:
- Document Scanner:
- Added
SBSDKDocumentEnhancerwith astraightenmethod that removes crinkles, creases, folds, and curl from document photos. It is enabled by default in the RTU UI and automatically applied in auto-cropping flows. See the Document Enhancer documentation for details. - Support for recognizing cropped documents.
SBSDKDocumentScannerParametersnow includesalreadyCroppedScoreThreshold, andSBSDKDocumentDetectionScoresnow includesalreadyCroppedScore. In single-shot mode, if no document is detected and the score exceeds this threshold, a newSBSDKDocumentDetectionStatusvalueokButAlreadyCroppedis returned, along with a quad (points) corresponding to the image corners. This feature is supported by all downstream components of the Document Scanner (Check Scanner, Credit Card Scanner, Document Classifier, Document Data Extractor, and Medical Certificate Scanner). - Added
backgroundproperty toSBSDKUI2TextButtonModeandSBSDKUI2TextWithBadgeButtonModeto configure the background style for the preview button in the RTU UI Document Scanner. - Added
accessibilityDescriptionDocumentImagePreviewproperty toSBSDKUI2ReviewScreenConfigurationto configure the accessibility description of the document image preview.
- Added
- Image Processing:
- New
SBSDKColorDocumentShadowRemovalFiltercapable of removing shadows from documents without damaging text, barcodes, or images.
- New
- PDF & TIFF Generation:
- Added methods to
SBSDKPDFGeneratorthat generate a PDF from an array ofSBSDKImageRefimages. - Added processing block parameter to all
SBSDKPDFImageExtractorextract methods, allowing real-time image manipulation during PDF extraction with memory-efficient processing. SeeSBSDKPDFImageProcessingBlock. - Added
extract(from:extraction:)method toSBSDKPDFImageExtractorfor conditional PDF image extraction with callback-based flow control, allowing extraction to be stopped midway and enabling memory-efficient processing of extracted images. SeeSBSDKPDFImageExtractionBlock.
- Added methods to
- Document Quality Analyzer:
- A new Document Quality Analyzer algorithm was introduced. The result object
SBSDKDocumentQualityAnalyzerResult'squalityproperty can now beacceptable,unacceptable, oruncertain, indicating whether a user-provided document image meets the required quality standard. Advanced configuration is available using thequalityAnalysisModelproperty inSBSDKDocumentQualityAnalyzerConfiguration, which allows the Document Quality Analyzer to be fine-tuned for specific use cases using an external script. This capability is currently in closed beta. To request access and obtain the script, sign up here. - Added threshold property
qualityAcceptableUncertainThresholdfor categorizing documents into three classes:acceptable,unacceptable, anduncertain. - Added the
inputScalesproperty inSBSDKDocumentQualityAnalyzerConfigurationto run the model at multiple resolutions and automatically select the best result. - Added the
inputScaleThresholdToProcessEntireImageproperty inSBSDKDocumentQualityAnalyzerConfigurationto run the Document Quality Analyzer on the entire image, even whenminProcessedFractionandmaxProcessedFractionare not equal to 1 for small input scales. - The resulting
bestInputScaleis now included in the outputSBSDKDocumentQualityAnalyzerResult. - Added
compatibilityModeproperty toSBSDKDocumentQualityAnalyzerConfigurationto allow running the legacy (v8) document quality analysis engine.
- A new Document Quality Analyzer algorithm was introduced. The result object
- OCR Engine:
- Added a method to
SBSDKOCREngineManagerthat generates a PDF from an array ofSBSDKImageRefimages.
- Added a method to
- Document Data Extractor:
- Added support for Romanian, Italian, Turkish, and Polish ID cards.
- Barcode Scanner:
- Added the
touchToFocusEnabledproperty toSBSDKUI2CameraConfigurationto allow enabling or disabling tap-to-focus in the RTU UI screen. - Added the
twoDDecoderModeproperty toSBSDKBarcodeFormatDataMatrixConfiguration. It defaults tohighEffortand can be set tolowEffortfor very low-power devices requiring higher frame rates.
- Added the
- General:
- π Improvements:
- General:
- Optimized still image capturing by switching to the 420YCbCr format internally.
- Improved camera session management across all scanning components.
- Enhanced accessibility of the zoom button in the RTU UI Barcode Scanner and Data Capture screens. VoiceOver now announces its current state in accessibility mode.
- Document Scanner:
- Updated document detector models with improved accuracy.
- Partially visible documents are now supported in all processing modes. Auto and single-shot modes now return the
errorPartiallyVisibledocument status when only 1β3 document corners are visible in the input image and the scanner is configured withallowPartiallyVisibleDocumentsset to true inSBSDKPartiallyVisibleDocumentConfiguration. - Improved captured image quality when capturing with a virtual camera device, e.g., the triple camera.
- Document Quality Analyzer:
- Increased the default threshold for
minRequiredOrientationConfidenceto 0.9 inSBSDKDocumentQualityAnalyzerConfiguration, reducing false positives in orientation estimation. - Orientation detection now considers text at any angle, not just within Β±10Β° of 0Β°, 90Β°, 180Β°, or 270Β°. For orientation estimation, text at any angle is rounded to the nearest multiple of 90Β° β for example, a 30Β° angle yields a predicted orientation of 0Β°.
- Improved performance on very bright or very dark images.
- Increased the default threshold for
- OCR Engine:
- New model with better performance for German diacritics and Γ/αΊ recognition.
- Added support for Turkish, Polish, Italian, and Romanian alphabets.
- Increased accuracy without increasing inference time.
- VIN Scanner:
- Live or single-shot mode, derived from the input image, is now propagated to the internal barcode scanner.
- Document Data Extractor:
- Reduced the likelihood of reading incorrect values for eye color on German ID cards (e.g., GRUN instead of GRΓN).
- Document types are now classified using an ML model, resulting in higher quality and faster recognition.
- Check Scanner:
- For Canadian checks, the scanner now allows more whitespace characters in the MICR line.
- Credit Card Scanner:
- Various improvements to check digit validation and aspect ratio handling.
- Barcode Scanner:
- Clean barcodes (QR Code, Data Matrix, and all 1D formats) are detected faster in single-shot mode and can be detected without a quiet zone.
- Significantly improved decoding performance for truncated PDF417 barcodes.
- Reduced the false positive rate for barcode formats EAN-8, EAN-13, and UPC-A when
enableOneDBlurScanneris enabled (now the default). - Improved recall and precision for barcode formats EAN-8, EAN-13, UPC-A, and UPC-E when ink spread is present.
- Data Matrix codes can now be scanned under harsher conditions. With
twoDDecoderModeset tohighEffort, scanning works even on curved surfaces or when the code is partially occluded. - Reduced the number of false-positive Codabar barcodes when scanning in live mode and the barcode is only partially visible.
- General:
- π Bug fixes:
- General:
- Fixed a crash on iPhone SE when switching to the front camera in the Barcode Scanner or Check Scanner.
- Fixed the viewfinder's initial position when launched in landscape orientation in all RTU UI Data Capture screens.
- Document Scanner:
- Fixed an issue in the RTU UI Document Scanner where the user could become stuck on the camera screen when the
pageCountLimitwas set to 1.
- Fixed an issue in the RTU UI Document Scanner where the user could become stuck on the camera screen when the
- PDF & TIFF Generation:
- Fixed an issue where JPEG compression was applied twice to images being rendered to a PDF.
- Document Quality Analyzer:
- Fixed
SBSDKProcessByTileConfiguration.enabledbeing ignored regardless of its value.
- Fixed
- VIN Scanner:
- Fixed a bug where the result was not displayed properly in
SBSDKUI2VINScannerViewControllerwhenconfirmationAlertDialogEnabledwas enabled.
- Fixed a bug where the result was not displayed properly in
- Document Data Extractor:
- Fixed an issue where documents containing Cyrillic text were sometimes classified incorrectly.
- Check Scanner:
- Fixed missing support for longer check number fields on Canadian checks.
- Barcode Scanner:
- Fixed an arithmetic exception occurring when processing images with very small heights (lower than 5 px) in single-shot mode.
- Fixed the orientation of quads for barcode formats DataBar and DataBar Expanded with multiple stacks.
- Fixed a rare issue with the DataBar barcode format, which could lead to a crash.
- Fixed an issue in the RTU UI Barcode Scanner screen where the confirmation alert would reappear upon tapping the submit button while in Find & Pick mode.
- General:
- β οΈ Breaking changes:
- General:
- All APIs that receive or return normalized coordinates of points assume that normalization is performed by dividing image coordinates by (width - 1, height - 1) instead of
(width, height). This ensures that rotation operations that are performed on the normalized coordinates are mathematically correct. Callers that call functions that receive normalized coordinates or process results with normalized points and perform conversion on their own should adjust their implementations.
- All APIs that receive or return normalized coordinates of points assume that normalization is performed by dividing image coordinates by (width - 1, height - 1) instead of
- Document Scanner:
- Renamed the
stylefield totitleinSBSDKUI2TextButtonModeand thetextfield totitleinSBSDKUI2TextWithBadgeButtonMode. - Updated the Acknowledge Screen logic in the RTU UI Document Scanner to properly handle document quality scenarios. The
unacceptableQualityacknowledgment mode now shows the Acknowledge Screen for "document not found" cases whendocumentNotFoundWarning.visibleis configured totrue. This may change the behavior for applications relying on the previous logic where "document not found" cases were always bypassed inunacceptableQualitymode. - Improved the button visibility logic on the Acknowledge Screen. The proceed anyway button visibility now correctly considers both the specific button configuration and the global
proceedAnywayButton.visiblesetting. This may affect existing configurations that rely on the previous behavior. By default, when the image is unacceptable, the proceed anyway button is no longer shown unless explicitly configured to be visible (seescreens.camera.acknowledgement.bottomBar.proceedAnywayButton.unacceptableQuality). - The
badImageHintproperty has been removed fromSBSDKUI2AcknowledgementScreenConfiguration. The warning shown for bad image capture is now configured separately usingunacceptableQualityWarning,uncertainQualityWarning, anddocumentNotFoundWarning. - Strings were introduced for the Acknowledge Screen in the RTU UI Document Scanner to support the new document quality scenarios. Update custom translations for the Acknowledge Screen to include these strings:
proceedAnywayButtonDocumentNotFound,proceedAnywayButtonUnacceptableQuality,proceedAnywayButtonUncertainQuality,acknowledgementWarningDocumentNotFound,acknowledgementWarningUnacceptableQuality, andacknowledgementWarningUncertainQuality. - Enhanced the document quality warning configuration logic to better handle edge cases where no analyzer result exists or document detection fails, which may change the acknowledgment flow for imported images or manual captures in certain configurations.
- Renamed the
- PDF & TIFF Generation:
- When adding a PNG file to a PDF, the image is now always re-encoded as JPEG. Previously, this occurred only in specific situations.
- Document Quality Analyzer:
- The configuration properties
qualityThresholdsandqualityIndiceshave been renamed toqualityLevelThresholdsandqualityLevelIndices. The renamed properties are now deprecated; use the newqualityAnalysisModelproperty instead. - The
detectOrientationproperty has been removed. Orientation detection now always runs. - The
inspectSmallTextproperty has been removed.
- The configuration properties
- Document Data Extractor:
- When initialized with no accepted document types, or only invalid ones, and with MRZ fallback disabled, an
invalidArgumenterror is now thrown.
- When initialized with no accepted document types, or only invalid ones, and with MRZ fallback disabled, an
- General:
- β οΈ Deprecations:
- Document Quality Analyzer:
- The
SBSDKDocumentQualityenum and result object property are deprecated; useSBSDKDocumentQualityAssessmentinstead. - The
SBSDKDocumentQualityAnalyzerResult.documentFoundproperty is now deprecated. This deprecated property indicates if too few characters are detected. The newSBSDKDocumentQualityAssessmentwill be reported asuncertainin this situation. If this is not suitable for your use case, consider using the Document Scanner instead to determine if an image contains a document. In the RTU UI Document Scanner, thedocumentNotFoundWarningcase is now based on the Document Scanner output. - Properties
qualityLevelThresholdsandqualityLevelIndicesare deprecated (see Breaking changes).
- The
- Document Quality Analyzer:
- π Under the hood:
- Updated
magic_enumto version 0.9.7. - Added a new barcode decoding model, increasing SDK size by approximately 650 KB.
- Updated
Version 8.0.6 (9 April 2026)β
- π New:
- Check Scanner:
- Added support for more USA check formats. Newly supported formats: (TT)xxx(TT)xxxx(UU)xxx(UU), and the ones enumerated in the MICR line identification documentation.
- Added support for xxx-xxx-x account number format for Canadian checks.
- Check Scanner:
- π Bug fixes:
- Document Scanner:
- Fixed an iPad layout issue with the RTU UI Acknowledge Screen.
- Fixed an issue where the auto-rotation feature would incorrectly rotate certain kinds of images by 180 degrees.
- Document Scanner:
- β οΈ Breaking changes:
- Check Scanner:
- Leading and trailing whitespace for all USA check fields is now trimmed.
- A group of numbers in the Canadian check account number section preceding the first dash is now treated as a designation number only if its length is 4. Previously, a sequence of any length was treated as a designation number. Dashes present in the MICR line are preserved in the Account Number parsed field.
- Check Scanner:
Version 8.0.5 (1 April 2026)β
- π Bug fixes:
- Document Scanner:
- Fixed an issue where the RTU UI Acknowledge Screen was not showing when the
acknowledgementModewas set tobadQualityand the captured image was not classified as a document image.
- Fixed an issue where the RTU UI Acknowledge Screen was not showing when the
- Document Scanner:
Version 8.0.4 (23 February 2026)β
- π Bug fixes:
- Document Scanner:
- Fixed wrong polygon orientation when capturing a page with auto-detect orientation enabled in the RTU component, leading to the inaccurate crop of the document image.
- Document Scanner:
Version 8.0.3 (17 February 2026)β
- π Bug fixes:
- PDF Generator:
- Fixed an error when encrypting and decrypting PDFs with the AES/GCM encrypter.
- PDF Generator:
Version 8.0.2 (5 February 2026)β
- π Bug fixes:
- Document Scanner:
- Fixed a bug that left a temporary copy of captured images on disk when scanning with the RTU-UI v2 Document Scanner. Once you have fully migrated all
SBSDKDocumentobjects toSBSDKScannedDocument, you can clean up the old storage and temporary copies by callingSBSDKDocumentPageFileStorage.defaultStorage.removeAll().
- Fixed a bug that left a temporary copy of captured images on disk when scanning with the RTU-UI v2 Document Scanner. Once you have fully migrated all
- Document Scanner:
Version 8.0.1 (2 February 2026)β
- π Bug fixes:
- General:
- Fixed a memory leak in all RTU-UI v2 data capture screens.
- Fixed a possible error when an image ref is created from a 16-bit image.
- Document Scanner:
- Fixed a UI regression in
SBSDKUI2DocumentScannerViewControllerwhere the bottom bar height was incorrectly increased.
- Fixed a UI regression in
- PDF Generator:
- Fixed a bug where invalid PDFs were generated from certain images.
- Document Data Extractor:
- Fixed a bug which prevented the recognition of mixed letters in the address field of some ID cards.
- Speed up verification of
DeResidencePermitFrontby using interpolation-verification for the "Remarks" field.
- General:
Version 8.0.0 (13 January 2026)β
- π New:
- General:
- The SDK now supports a new license key format, which does not contain special characters or line breaks.
SBSDKImageRefconstructor now supports HEIC images.- Added the possibility for providing custom encryption for individual images from path load / image save operations.
- Added property
cameraLiveScannerResolutionto all the RTU-UI v2 screens to control the camera live scanning resolution. - Added property
keepScreenOnto all RTU-UI v2 screens to prevent the system from going idle or entering the lockscreen while scanning. - Added property
keepScreenOnto all Classic UI screens (seeSBSDKBaseScannerEnergyConfiguration) to prevent the system from going idle or entering the lockscreen while scanning. - Added mandatory delegate functions
...scannerViewController(controller:didFailScanning:)to all Classic-UI components. - All scanner and generator classes now throw errors instead of returning
nilorfalsein case of failures. - Added a read-only property
colorStringtoSBSDKUI2Colorto retrieve the color in HEX format or a reference to a palette color. - Added functions
toRgba()andtoArgb()toSBSDKUI2Colorto retrieve the color in RGBA and ARGB hex formats.
- Document Scanner:
- Added the new
partiallyVisibleDocumentConfigurationobject inSBSDKDocumentScannerConfigurationto determine how partially visible documents are aggregated and tracked. This feature is disabled by default. - Two new
SBSDKDocumentDetectionStatusvalues have been introduced:errorPartiallyVisibleanderrorPartiallyVisibleTooClose. - The
SBSDKDocumentDetectionResultnow includes adisplacementVectorand adisplacementenum to indicate the direction towards the center of a partially visible document. - Added support for Document Quality Analyzer configuration to RTU-UI v2 Document Scanner.
- Added support for bottom bar visual modes, see
SBSDKUI2BottomBarMode. - Added
SBSDKUI2TextWithBadgeButtonModepreview mode in RTU-UI v2 Document Scanner.
- Added the new
- Cropping Screen:
- Added support for selecting and moving individual corners in the cropping screen using a hardware keyboard. Press the tab key to cycle through the corner and edge handles. Use the arrow keys to move the selected corner or edge handle. Hold shift while pressing the arrow keys to move faster.
- Image Processing:
- The color document filter now has parameters controlling contrast, color, and paper enhancement.
- Document Quality Analyzer:
- Added
cumulativeContrastHistogramandcumulativeTextSizeHistogramfor text contrast and size estimation inSBSDKDocumentQualityAnalyzerResult. - Added the
orientationConfidenceproperty to theSBSDKDocumentQualityAnalyzerResultresult object. - Added an option to explicitly enable/disable by tile processing via
ProcessByTileConfiguration.
- Added
- Text Pattern Scanner:
- Added the option
optimizeSingleLinetoSBSDKTextPatternScannerConfiguration. Enable this option when scanning a single line or a single word that is hard to scan reliably. Disabled by default.
- Added the option
- Document Data Extractor:
- Added a metadata child document to all supported formats.
- Added
CountryCodevalues to all supported formats. - Introduced the
okButInvalidDocumentreturn status toSBSDKDocumentDataExtractionStatus. This is returned if a field's contents are confirmed but fail validation rules. - Introduced
personalIdcommon field type toSBSDKCommonFieldType.
- Check Scanner:
- Support a wider range of USA check formats.
- Barcode Scanner:
- New supported document parser for British Columbia driver licenses PDF417 codes.
- Introduced a new algorithm for recognizing 1D symbologies, enhancing performance with blurred and distant barcodes. This feature is enabled by default but can be turned off using the
enableOneDBlurScannerproperty in barcode format configurations on low-power devices if necessary. - Added a new
SBSDKBarcodeScannerEngineMode:nextGenMaxDistance, which is optimized for scanning from far distances on very high-power devices with a 4K video stream. - All 1D barcode formats can be configured with a new
oneDConfirmationModewhich isthoroughby default. Setting it tominimalornonecould lead to higher recall in difficult scenarios, but could also cause more false positives.
- General:
- π Improvements:
- General:
- All OCR-based features now benefit from new OCR models that are optimized for speed and accuracy.
- The "Created TensorFlow Lite XNNPACK delegate for CPU." log is no longer an output in production builds.
- If a global or custom encrypter is set when an image is created from a file, it will be automatically detected if the image is encrypted or not. Note that now
encryptionModeis NOT ignored if a custom encrypter/decrypter is used. - When creating an
SBSDKImageReffromUIImageor from a .png file containing an alpha channel, it is blended with a user specified canvas color instead of simply discarding the alpha channel. It is possible to select whether to use aWHITEorBLACKbackground inSBSDKRawImageLoadOptions,SBSDKPathImageLoadOptions, andSBSDKBufferImageLoadOptions. - Improved error handling and reporting in all scanners, this includes licensing errors, cancellation by user, file I/O errors, image conversion errors, and scanning errors. In case of an error, an
SBSDKErroris thrown with a descriptive error message and error code. - Camera sessions no longer show a black screen in case of license error. Instead, the camera runs but the detection fails with appropriate license error.
- Classic UI components can now be configured directly by setting the properties of the configuration objects instead of creating new configuration objects.
- Document Scanner:
- Aspect ratio scores are now symmetrical, and low scores are more consistent.
- Cropping Screen:
- Improved cropping handle movement, preventing irregular polygons and glitches.
- Image Processing:
- The color document filter now preserves colors better by default.
- Removed unused image filter models, saving about 2.4MB from binaries.
- PDF Generation:
- PDF generation now supports binarized images. Binarized images are stored in the PDF with an optimized compression algorithm, resulting in extremely small file sizes.
- Document Quality Analyzer:
- Improved performance.
- If provided configuration is invalid, an error will be returned instead of changing invalid fields to default values.
- OCR Engine:
- Improved detection of text, specifically for lines that are close together.
- Document Data Extractor:
- Improved
FrameAccumulationlogic. - Increased accuracy, specifically fewer false positives.
- General speed improvements.
- Glare detection now works more reliably.
- Improved
- Credit Card Scanner:
- Higher recall for expiry date detection.
- Improved
FrameAccumulationlogic.
- Medical Certificate Scanner:
- Improved date recognition.
- Barcode Scanner:
- Improved quiet zone checks for the barcode format
PharmaCodeto reduce the false positive rate. - Reduced the false positive rate of blurred barcodes in live mode when the barcode is only partially visible.
- Improved quiet zone checks for the barcode format
- General:
- π Bug fixes:
- General:
- SBSDKImageRef: If
SBSDKImageRefwas created in a lazy mode from an encrypted file and then saved to some location, a simple copy was performed. Because of this, the created file could become invalid if the decryption key depends on location. - SBSDKImageRef: If
SBSDKImageRefwas saved to an already existing location, in some cases it could return an error instead of overwriting the existing file. - SBSDKImageRef: Fixed possibility of
SBSDKImageRefto be saved as an invalid JPEG (when only part of the image was actually saved).
- SBSDKImageRef: If
- Document Scanner:
- Now correctly returns
errorTooDarkwhen nothing is detected and the image brightness is below the threshold. - Fixed a bug in the SwiftUI Document Scanner that prevented the proper display of the review screen automatically when
showReviewScreenOnStartwas set to true.
- Now correctly returns
- Document Quality Analyzer:
- Fixed a bug that could lead to incorrect DoQA results. This bug affected documents with text lines that were not strictly vertical or horizontal.
- Document Data Extractor:
- Fixed a rare case where an EHIC card could be returned with an excluded country.
- MRZ Scanner:
- Fixed a rare crash with inverted text.
- Fixed an issue with an incorrect birth date being parsed from the MRZ date, when the birth date could be returned from the future.
- VIN Scanner:
- Fixed a bug when scanning VINs that could have discarded valid results.
- Credit Card Scanner:
- An invalid status will now be correctly returned if the frame accumulator confirms a field that is invalid.
- Barcode Scanner:
- Fixed a bug in Barcode RTU-UI v2 Multiple Scanning Mode where the count of the sheet button was not updated properly.
- General:
- β οΈ Breaking changes:
- General:
- API Consistency Improvements: We went through our APIs and made several improvements to make them more consistent and easier to use. The SDK now throws errors instead of returning
nilorfalsein many places. This also affects how you handle results from various operations in the SDK. Please review your error handling code when updating to this version. - All scanners now have a common public interface:
- Replaced
recognize...anddetect...functions by arunfunction. - Replaced all platform specific image parameters, e.g.
UIImageandCMSampleBuffer, by a parameter of typeSBSDKImageRef.
- Replaced
SBSDKImageRefis now immutable. Theclone()method has been removed, and cloning now acquires a new strong reference.- Changed encryption of images, generated PDFs, and TIFFs:
- Removed properties
defaultPDFEncrypteranddefaultImageStoreEncrypterfrom classScanbotUI. - Images, generated PDFs, and TIFFs are now encrypted using the new
defaultCryptingProviderproperty in theScanbotclass.
- Removed properties
- Changed the completion handlers of all RTU-UI v2 screens to either return a result or an error. Cancellation by user is treated as an error. Check
SBSDKError.isCanceled. - The default license error handler
Scanbot.defaultLicenseFailureHandlerno longer tries to display an alert, instead it logs the error to the console. SBSDKImageRef:encryptionModedefault value has been replaced withAUTO.- Removed function
setupDefaultLicenseFailureHandler(completion: (() -> ())?)fromScanbotclass. Instead callsetupDefaultLicenseFailureHandler(). The completion handler is no longer needed. - Removed
SBSDKOCRPageandSBSDKOCRResultBlockclasses.SBSDKOCRResultnow contains all recognized pages asSBSDKPageobjects.
- API Consistency Improvements: We went through our APIs and made several improvements to make them more consistent and easier to use. The SDK now throws errors instead of returning
- Feature removal:
- Removed the License Plate Scanner.
- Document Scanner:
- The
processingModehas been moved fromDocumentScannerParameterstoSBSDKDocumentScannerConfiguration. - Accepted score thresholds are now all
ints. - Removed Document RTU-UI v1 completely, including
SBSDKUIDocumentScannerViewController,SBSDKUIFinderDocumentScannerViewController,SBSDKUICroppingViewControllerand all related components.
- The
- Image Processing:
- The
Image Processornow returns a newSBSDKImageRefinstead of applying operations in place. Filters: TheSBSDKColorDocumentFilternow works slightly differently by default. To get the previous behavior, setpaperWhitening=0andpaperWhiteningBias=64.- The behavior of the
LegacyImageFilterwas changed to be a no-op. The class is kept only for migration purposes. It is now required to migrate to the other parametric filters.
- The
- PDF Image Extractor:
- The constructor
init(configuration:, ocrConfiguration: , useEncryptionIfAvailable)now throws anSBSDKErrorif the license check has failed.
- The constructor
- TIFF Generation:
- Removed the empty constructor initializer, please use
init(parameters:, useEncryptionIfAvailable:)instead. - The constructor
init(parameters:, useEncryptionIfAvailable:)now throws anSBSDKErrorif the license check has failed. - The methods
generate(from images:, to fileURL:),generate(from imageURLs:, to fileURL:),generate(from document:, to fileURL:), andgenerate(from scannedDocument:, to fileURL:)now throw anSBSDKErrorif the TIFF generation has failed and do not return a Boolean anymore. - The asynchronous methods
generate(from images:, to fileURL:),generate(from imageURLs:,to fileURL:),generate(from document:, to fileURL:), andgenerate(from scannedDocument:, to fileURL:)now throw anSBSDKErrorif the TIFF generation fails. - The completion blocks of
generate(from images:, to fileURL:, completion:),generate(from imageURLs:, to fileURL:, completion:),generate(from document:, to fileURL:, completion:),generate(from scannedDocument:, to fileURL:, completion:), andgenerate(from images:, completion:)now include an additionalError?parameter which is non-nil if the TIFF generation fails.
- Removed the empty constructor initializer, please use
- Document Quality Analyzer:
- The
minProcessedFraction,maxProcessedFraction,minNumberOfRequiredSymbols, andtileSizeoptions are moved into the separateSBSDKProcessByTileConfiguration.
- The
- MRZ Scanner:
- Removed MRZ RTU-UI v1 completely, including
SBSDKUIMRZScannerViewControllerand all related components. - Replaced methods
SBSDKMRZScanner.scan(from: UIImage)andSBSDKMRZScanner.scan(from: SBSDKBaseScannerFrame)bySBSDKMRZScanner.run(image: SBSDKImageRef).
- Removed MRZ RTU-UI v1 completely, including
- Text Pattern Scanner:
- Removed TextPattern RTU-UI v1 completely, including
SBSDKUITextPatternScannerViewControllerand all related components.
- Removed TextPattern RTU-UI v1 completely, including
- VIN Scanner:
- Removed VIN RTU-UI v1 completely, including
SBSDKUIVINScannerViewControllerand all related components.
- Removed VIN RTU-UI v1 completely, including
- Document Data Extractor:
- No longer returns crops by default. This can be re-enabled in the configuration.
- All documents:
CommonFieldType.CountryCodehas been renamed toIssuingCountryinSBSDKCommonFieldType. EuropeanDriverLicenseFront: The common field type forCitizenshiphas been changed toNationality.- Renamed output statuses and improved their documentation to align with the new
okButInvalidDocumentstatus. - Updated
SBSDKDocumentDataExtractionStatusstatuses. - Removed the
SBSDKUIDataExtractorViewControllerclass and its related components as part of the DDE RTU-UI v1 removal.
- EHIC Scanner:
- Removed EHIC RTU-UI v1 completely, including
SBSDKUIHealthInsuranceCardRecognizerViewControllerand all related components.
- Removed EHIC RTU-UI v1 completely, including
- Check Scanner:
- Removed Check RTU-UI v1 completely, including
SBSDKUICheckScannerViewControllerand all related components. - Changed
SBSDKCheckScannerViewControllerDelegatefunctioncheckScannerViewController(_:didScanCheck:)tocheckScannerViewController(_:didScanCheck:isHighRes:). - Renamed enum
SBSDKCheckRecognizerStatetoSBSDKCheckScannerState. - Renamed the enum case
recognizingtoscanninginSBSDKCheckScannerState.
- Removed Check RTU-UI v1 completely, including
- Medical Certificate Scanner:
- Removed Medical RTU-UI v1 completely, including
SBSDKUIMedicalCertificateRecognizerViewControllerand all related components.
- Removed Medical RTU-UI v1 completely, including
- Barcode Scanner:
- No longer returns crops by default. This can be re-enabled in the configuration.
- The
MicroQrCodebarcode format has been removed from the list of common barcode formats. - Removed Barcode RTU-UI v1 completely, including
SBSDKUIBarcodeScannerViewController,SBSDKUIBarcodesBatchScannerViewControllerand all related components. - Removed
SBSDKUI2BarcodeScannerConfigurationand replaced it withSBSDKBarcodeScannerConfigurationin Barcode RTU-UI v2. - Removed properties
isSelectableandisAutomaticSelectionEnabledfromSBSDKBarcodeTrackingOverlayConfiguration. - Renamed parameter
isSelectedtoisHighlightedin tracking overlay methods. - Changed delegate method signatures in
SBSDKBarcodeTrackingOverlayControllerDelegate:- Removed
didChangeSelectedBarcodesmethod. - Added
shouldHighlightmethod to determine barcode highlighting state. - Added
proposedStyleparameter to style-related delegate methods.
- Removed
- General:
- π Under the hood:
- Upgraded libzueci to 1.0.1.
- Added snowflake-arctic-embed-xs eadfba3b.
Version 7.1.4 (28 October 2025)β
- π Bug fixes:
- Barcode Scanner:
- Fixed truncated text on the back button in the RTU-UI v2 Barcode Scanner screen.
- Document:
- Fixed truncated texts on the back buttons in the RTU-UI v2 Document Scanner screens.
- Barcode Scanner:
Version 7.1.3 (15 October 2025)β
- π New:
- Barcode Scanner:
- Barcode configurations for 1D barcode types have a new field
minimumNumberOfRequiredFramesWithEqualRecognitionResultthat requires this number of frames on which the barcode has to be detected.
- Barcode configurations for 1D barcode types have a new field
- Check Scanner:
- We now extract the field after the account number on US checks. The name in the result is
checkNumber. Note that this name is only based on common usage and not on any enforced standard. - Added
SBSDKCheckScannerViewControllerDelegatefunctioncheckScannerViewControllerShouldCaptureHighResImage(_ controller: SBSDKCheckScannerViewController, forResult result: SBSDKCheckScanningResult) -> Bool.
- We now extract the field after the account number on US checks. The name in the result is
- Barcode Scanner:
- π Improvements:
- Check Scanner:
- Updated US check field documentation.
- Check Scanner:
- π Bug fixes:
- General:
- Fixed a bug in the RTU-UI v2 user interface that prevented the proper display of the view finder in landscape mode.
- Document Scanner:
- Fixed a bug in RTU-UI v2 that did not always crop images from the photo library.
- Check Scanner:
- Fixed a bug in the implementation of the US check standard which lead to rejection of valid checks.
- Fixed a bug in Check Scanner RTU-UI v2 that delivered (invalid) results when
documentDetectionModewas set todetectAndCropDocument.
- General:
- β οΈ Breaking changes:
- Barcode Scanner:
- The field
minConfirmationsStandaloneEANinSBSDKBarcodeAccumulationConfigurationwas moved and renamed to the fieldminimumNumberOfRequiredFramesWithEqualRecognitionResultExtensionlessinSBSDKBarcodeFormatUpcEanConfiguration.
- The field
- Check Scanner:
- Changed
SBSDKCheckScannerViewControllerDelegatefunctioncheckScannerViewController(: SBSDKCheckScannerViewController, didScanCheck: SBSDKCheckScanningResult)tocheckScannerViewController(: SBSDKCheckScannerViewController ,didScanCheck: SBSDKCheckScanningResult, isHighRes: Bool).
- Changed
- Barcode Scanner:
Version 7.1.2 (1 September 2025)β
- π New:
- General:
- Added property
isInterruptedtoSBSDKCameraSessionto indicate if the camera session was interrupted by the system.
- Added property
- Document Scanner:
- Added property
documentPreviewImageSizeLimitinSBSDKDocumentPageto limit the size of the document preview image.
- Added property
- General:
- π Improvements:
- Document Scanner:
- Rebalanced the internally used photo capture settings to better match the photo quality prioritization modes. The mode
speedis now significantly faster, the modebalancedis a bit faster, and the modequalityis a bit slower with the best possible image quality.
- Rebalanced the internally used photo capture settings to better match the photo quality prioritization modes. The mode
- Document Scanner:
- π Bug fixes:
- Document Scanner:
- Fixed an issue on simulators where the shutter button was missing in the RTU-UI Document Scanner.
- General:
- Fixed a bug with scanned documents cloning when using per-file encryption.
- Document Scanner:
Version 7.1.0 (24 July 2025)β
- π New:
- Document Scanner:
- Added property
showReviewScreenOnStarttoSBSDKUI2DocumentScanningFlow. If enabled, the scanner automatically navigates to the Review Screen when the flow starts. - Added property
openReviewAfterEachScantoSBSDKUI2CameraScreenConfiguration. If enabled, the Review Screen is opened after each addition of a new page. - Added property
showLastPageWhenAddingtoSBSDKUI2ReviewScreenConfiguration. If enabled, the Review Screen will be opened showing the last page.
- Added property
- General:
- Added property
hardwareButtonsEnabledtoSBSDKUI2CameraConfiguration. If enabled, it allows zooming using the camera control button (iPhone 16 series). - Added property
fpsLimittoSBSDKUI2CameraConfigurationandSBSDKUI2DocumentScannerCameraConfigurationto limit the rate of detections per second in normal performance mode. - Added property
didEndZoomHandlertoSBSDKZoomingImageScrollView. - Added analytics support with new classes:
SBSDKAnalyticsManager,SBSDKAnalyticsEvent,SBSDKAnalyticsFeature,SBSDKAnalyticsCategory,SBSDKAnalyticsEventName,SBSDKAnalyticsEventFactory, andSBSDKAnalyticsSubscriberfor tracking and managing SDK usage analytics.
- Added property
- Document Scanner:
- π Improvements:
- Document Scanner:
- Improved landscape-orientation layout of RTU-UI v2 screens.
- Increased performance for Document Scanner algorithms.
- The zoomed page view in the Document Scanner RTU-UI v2 Review Screen now closes when you finish zooming while being below the minimum zoom value.
- Document Quality Analyzer:
- Speed improvements. Note: document quality scores may slightly change for the same input images when compared to the previous version of the DoQA.
- Document Scanner:
- π Bug fixes:
- Document Scanner:
- Fixed a bug in RTU-UI v2 Document Scanner where the document could not be captured in auto snap mode when
enabledInAutoSnappingModewas set to false inSBSDKUI2ShutterButton. - Fixed a bug in RTU-UI v2 Document Scanner Swift UI component
SBSDKUI2DocumentScannerViewwhere the completion handler was not called when the view was a root view. Additionally, the view is now prevented from being automatically dismissed upon completion. - Fixed a bug in RTU-UI v2 Document Scanner where auto rotation was applied if no document was detected.
- Fixed a bug in RTU-UI v2 Document Scanner where the document could not be captured in auto snap mode when
- Image Editing:
- Fixed a rare crash when the screen orientation changed.
- PDF Image Extractor:
- Fixed wrong orientation of extracted images when the PDF page had a transform applied.
- Document Quality Analyzer:
- Fixed quality estimation for rotated images.
- Storage Crypting:
- Fixed data corruption issues in AES encryption/decryption that could result in corrupted or partially corrupted files.
- Document Scanner:
- β οΈ Breaking changes:
- Document Data Extractor:
- Renamed
SBSDKDeDriverLicenseFrontandSBSDKDeDriverLicenseBacktoSBSDKEuropeanDriverLicenseFrontandSBSDKEuropeanDriverLicenseBack. - By default, only German documents are now enabled for scanning. Previously all supported documents were enabled.
- Renamed
- Document Scanner:
- Changed the
inittoconvenience initinSBSDKUI2DocumentScannerController. - The
SBSDKUI2DocumentScannerControllerdoes not dismiss itself automatically anymore when usingconvenience init(configuration:completion:)or the staticcreate(configuration:completion:)method.
- Changed the
- PDF Image Extractor:
- Removed parameter
scalingfrom all methods and replaced it by member variablescaleFactor.
- Removed parameter
- General:
- Replaced all occurrences of the deprecated
AVCaptureVideoOrientationenum by an equal enum namedSBSDKVideoOrientation.
- Replaced all occurrences of the deprecated
- Document Data Extractor:
- π Under the hood:
- Added flatbuffers 2.0.6.
Version 7.0.3 (June 2025)β
- π Bug fixes:
- Document Scanner:
- Fixed a memory leak when dealing with grayscale images.
- Document Scanner:
Version 7.0.2 (28 May 2025)β
- π New:
- Added property
hardwareButtonsEnabledtoSBSDKBaseScannerViewControllerwhich can be set tofalseto restore the original volume button behavior. - Added properties
cameraSessionKeepAliveTimeoutandanimateCameraOverlaytoSBSDKBaseScannerGeneralConfiguration. - Added properties
sessionDidChangeHandlerandisSessionRunningtoSBSDKBaseScannerViewController. - Added functions
pauseandresumetoSBSDKBaseScannerViewController.
- Added property
- π Improvements:
- The camera permission screen will now appear if camera access is restricted in all RTU-UI screens.
- Improved the accessibility handling in RTU-UI v2 Document Scanner. Accessibility for the document preview button is now activated only when scanned pages are available.
- π Bug fixes:
- Fixed a race condition in
SBSDKScannedPage. - Fixed an issue where quickly stopping and starting the camera session of any scanner screen could lead to a crash or unpredictable behavior.
- Fixed a bug in all cropping screens where the magnetic lines were missing.
- Fixed an issue in RTU-UI v2 where the introduction screen appeared automatically even when camera access was denied.
- Fixed a crash in
SBSDKBaseScannerViewControllercaused by camera access being restricted by system-wide settings (e.g. Parental Controls / Screen Time).
- Fixed a race condition in
- β οΈ Breaking changes:
defaultBackFacingCamera,defaultFrontFacingCameraandwidestAvailableBackFacingCameranow returns a simulated camera instead ofnilif the physical camera is not available.- Removed property
stopsCameraSessionWhenDisappearedfromSBSDKBaseScannerGeneralConfiguration. To emulate this behavior, setcameraSessionKeepAliveTimeoutto a high value, e.g.TimeInterval.greatestFiniteMagnitude.
- π Under the hood:
- Upgraded xtensor to 0.26.
- Upgraded xtl to 0.8.
- Upgraded xsmid to 13.2.
- Upgraded CLI11 to 2.5.
- Upgraded spdlog to 1.15.2.
- Upgraded Boost to 1.88.
Version 7.0.1 (May 2025)β
- π New:
- Added property
hardwareButtonsEnabledtoSBSDKBaseScannerViewControllerwhich can be set tofalseto restore the original volume button behavior.