Changelog for the iOS Document Scanner SDK
tip
For additional details about the API, please refer to our API reference documentation.
Version 9.0.2 (21 July 2026)β
- π Bug fixes:
- PDF Generation:
- Fixed an issue where PDF generation produced an invalid file when the license key did not include the OCR feature, even though no
ocrConfigurationwas provided.
- Fixed an issue where PDF generation produced an invalid file when the license key did not include the OCR feature, even though no
- PDF Generation:
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.
- π Bug fixes:
- 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.
Version 7.0.0 (22 April 2025)β
- π New:
- Document Scanner:
DocumentDetectorwas renamed toDocumentScannerand has a more advanced configuration and scanning API. SeeSBSDKDocumentScanner.- RTU-UI v2: Added the auto-rotate document option. The document will now be automatically rotated based on the text orientation detected by the Document Quality Analyzer. See
SBSDKUI2CameraScreenConfiguration.autoRotateImages. - Introduced advanced generation settings for PDFs and TIFFs (via
SBSDKPDFConfigurationandSBSDKTIFFGeneratorParameters). - Added a new document detection status
okButTooDark. - Ability to set the bad aspect ratio hint of the Document Scanner. See
SBSDKDocumentScannerStatusTextConfiguration.textHintBadAspectRatio. - Image Processor can be initialized with
SBSDKImageRef,UIImage, orimageURL. New methods to apply filters, crop, rotate, and resize. SeeSBSDKImageProcessor. - Advanced configuration of the PDF Generator. See
SBSDKPDFConfiguration. Introduced new OCR configuration:SBSDKPDFGenerator.ocrConfiguration.
- Document Quality Analyzer:
- New and advanced API. See
SBSDKDocumentQualityAnalyzer,SBSDKDocumentQualityAnalyzerConfiguration, andSBSDKDocumentQualityAnalyzerResult. - Can now also return the orientation of the document in steps of 90 degrees. Enabled by setting
SBSDKDocumentQualityAnalyzerConfiguration.detectOrientationto true. - Optionally,
QualityHeatmapis returned as a part of theSBSDKDocumentQualityAnalyzerResult. - Added support for an advanced on-image scanning configuration
SBSDKDocumentQualityAnalyzer.analyze(image:)call. - Added an option to include small text on the image in the analysis. Disabled by default.
- New and advanced API. See
- Credit Card Scanner:
- Introduced a new beta feature: Credit Card Scanner, capable of detecting credit cards and extracting data from them. See
SBSDKCreditCardScanner. - New RTU UI v2 component for Credit Card Scanner.
- Introduced a new beta feature: Credit Card Scanner, capable of detecting credit cards and extracting data from them. See
- MRZ Scanner:
- Advanced configuration of MRZ Scanner. See
SBSDKMRZScannerConfiguration. - New RTU UI v2 is now available for MRZ Scanner. See
SBSDKUI2MRZScannerViewController. - Added support for non-ICAO conformant machine readable zones on US border crossing cards.
- Added an option to enable the cropped image of the MRZ code to be returned. Disabled by default.
- Advanced configuration of MRZ Scanner. See
- Text Pattern Scanner:
- Feature was renamed from Generic Text Recognizer to Text Pattern Scanner and has more advanced configuration and scanning API. See
SBSDKTextPatternScanner. - New RTU UI v2 is now available for Text Pattern Scanner. See
SBSDKUI2TextPatternScannerViewController. - Added an option to define if the RegEx or Pattern should be used for validation.
- Feature was renamed from Generic Text Recognizer to Text Pattern Scanner and has more advanced configuration and scanning API. See
- VIN Scanner:
- Added a new property
extractVINFromBarcodeinSBSDKUIVINScannerBehaviorConfigurationthat allows VIN data extraction from barcodes (for RTU UI v1).
- Added a new property
- Document Data Extractor:
- Feature was renamed from Generic Document Recognizer to Document Data Extractor and has more advanced configuration and scanning API. See
SBSDKDocumentDataExtractor. - Now supports fallback to extraction of only the MRZ on unsupported documents by using the config
SBSDKMRZDocumentType.unknown. - Added support for German driver qualification card.
- Document field validation now supports two additional statuses:
inferredandignored. SeeSBSDKGenericDocumentFieldValidationStatus. - Generic document fields now support
parsedDataattributes for standardized data (ISO 8601 dates, ISO 3166-1 countries, "Male"/"Female" gender). SeeSBSDKGenericDocumentFieldParsedData. - Added support for an advanced on-image scanning configuration for:
SBSDKDocumentDataExtractor,SBSDKEuropeanHealthInsuranceCardRecognizer,SBSDKMedicalCertificateScanner,SBSDKMRZScanner, andSBSDKCheckScanner.
- Feature was renamed from Generic Document Recognizer to Document Data Extractor and has more advanced configuration and scanning API. See
- Health Insurance Card (EHIC) Scanner:
- Advanced configuration of Health Insurance Card Recognizer. See
SBSDKEuropeanHealthInsuranceCardRecognizerConfiguration.
- Advanced configuration of Health Insurance Card Recognizer. See
- Check Scanner:
- Feature was renamed to Check Scanner and has more advanced configuration and scanning API. See
SBSDKCheckScanner. - Ability to configure Check Scanner Classic UI using
SBSDKCheckScannerViewController.setConfiguration(_:).
- Feature was renamed to Check Scanner and has more advanced configuration and scanning API. See
- Medical Certificate Scanner:
- Feature was renamed to Medical Certificate Scanner and has more advanced configuration and scanning API. See
SBSDKMedicalCertificateScanner. - Introduced a new method to scan a medical certificate from frames. See
SBSDKMedicalCertificateScanner.scan(from:parameters:).
- Feature was renamed to Medical Certificate Scanner and has more advanced configuration and scanning API. See
- Barcode Scanner:
- Added support for barcode types Pharma Code, Pharma Code Two Track and PZN (Pharmazentralnummer).
- Added support for the HIBC barcode document format.
- Added support for an advanced on-image scanning configuration for
SBSDKBarcodeScanner.scan(from:useLiveMode:)call. - Added ability to configure common barcode properties via
SBSDKBarcodeFormatCommonConfiguration. - Added
minimumSizeScoreto barcode configurations;SBSDKBarcodeItemhas newsizeScore. Barcodes withsizeScore < minimumSizeScoreare ignored. - Introduced
strictModefor certain barcode configurators (QR Code,Micro QR Code,rMQR Code,PDF417,MicroPDF417andgs1Composite). - Added the ability to return the barcode image in the resulting object via
SBSDKUI2BarcodeScannerConfiguration.returnBarcodeImage. - Added new engine modes
nextGenLowPower,nextGenFarDistanceandnextGenLowPowerFarDistance. SeeSBSDKBarcodeScannerEngineMode. - Barcode scanning results have been enhanced with more detailed information. See
SBSDKBarcodeItem. - Added new predefined subsets of barcode formats (1D, 2D, Postal, Pharma, etc.). Old sets removed. See
SBSDKBarcodeFormat,SBSDKBarcodeFormats. - Ability to initialize Barcode Scanner using
SBSDKBarcodeScanner.init(formats:, extractedDocumentFormats:). - Introduced new property
optimizeOverlaystoSBSDKBarcodeScanner. - Ability to configure Barcode Scanner Classic UI and Scan-and-Count Classic UI using
setConfiguration(_:). - Ability to get
extractedDocumentFormatsfromSBSDKBarcodeDocumentParser. - Ability to know when a barcode was last detected using
SBSDKBarcodeScannerAccumulatingResult.dateOfLastDetection.
- Added property
hardwareButtonsEnabledtoSBSDKBaseScannerViewController(all Classic UI) to toggle volume button behavior. - Cropped images returned as part of the scanner results are now represented as image references (
SBSDKImageRef), convertible toUIImage. - Ability to additionally process frames before main scanner via
SBSDKBaseScannerViewController.additionalFrameProcessor. - Introduced
SBSDKUI2PermanentViewFinderConfigurationfor always visible view finder. - Document Data Extractor, Medical Certificate Scanner and Check Scanner now return document detection results (
SBSDKDocumentDetectionResult). - Added new enum case
phototoSBSDKVideoFrameResolution.
- Document Scanner:
- π Improvements:
- Document Scanner:
- Added
okButOrientationMismatchstatus, returned when screen and document orientations don't match. Can be disabled by settingignoreOrientationMismatchto True. SeeSBSDKDocumentDetectionStatusandSBSDKDocumentScannerParameters. - Improved the Document Scanner RTU-UI v2 acknowledgment's bad image hint by adding the ability to present up to 5 lines.
- Improved performance when editing
SBSDKScannedPageand in the RTU-UI v2 Document Scanner Review Screen. - Improved captured image quality when using the Document Scanner Classic UI or RTU-UI (v1 and v2).
- Improved the user guidance in the Document Scanner RTU-UI v2 to support longer text entries.
- Added
- Document Quality Analyzer (DQA):
- Guarantee the same document quality score for 90 degrees rotated images.
- Image Processing:
- New Image Processor preset
BinarizationFilterPreset.PRESET_5for documents with barcodes.
- New Image Processor preset
- Text Pattern Scanner:
- Improved performance with the same quality.
- VIN Scanner:
- Validation of VINs implements the full ISO 3779 standard, reducing false positives.
- Document Data Extractor (DDE):
- Digits can no longer be recognized as part of given names or surnames.
- Higher accuracy for document classification.
- Barcode Scanner:
- By default, Code 93 now includes check digits in the result. To disable this and restore the previous behavior, set
stripCheckDigits = true. - Significant speed-up in live mode on very large input resolutions.
- Improved barcode detection for various barcode types.
- More robust QR code recognition (timing patterns, alignment, artistic QR codes).
- QR codes with non-square finder patterns and embedded in adversarial backgrounds can now be recognized.
- Improved quiet zone checks for
ITF,Code 11,MSI Plessey,IATA 2 of 5,Industrial 2 of 5, andCode 25. - Improved the false positive rate for
ITF. - Added the option to ignore barcodes that do not decode to one of the accepted document formats for Barcode Scanner RTU-UI v2 (
SBSDKBarcodeScannerConfiguration.onlyAcceptDocuments). - Improved performance when scanning four-state postal barcodes (i.e. Australia Post, Japanese Post, RM4SCC, Royal TNT Post and USPS Intelligent Mail).
- Improved the recognition of
PDF417barcodes. - Improved the barcode scanner to better recognize the
QRcodes if the top left finder pattern is corrupted (up to QR code version size 20).
- By default, Code 93 now includes check digits in the result. To disable this and restore the previous behavior, set
- Document Scanner:
- π Bug Fixes:
- Document Scanner and Data Capture modules:
- Fixed processing of still images of an indexed color space model in all scanners, Document Quality Analyzer, and PDF and TIFF generators.
- Fixed a UI bug in the Document Scanner Classic UI where
accepteddocument'sfillColorwas not being removed when theautoSnapProgressfillColorwas being shown. - Fixed a UI bug in the Document Scanner RTU-UI v2 where the bar buttons were not properly grayed out when in disabled state.
- Fixed a bug in the TIFF generator that prevented the creation of JPEG-encoded colored TIFF files.
- Barcode Scanner:
- Fixed returned results for all types of
SBSDKUpcEanExtensionBehavior. - Fixed the checksum of the
Code 39barcode format. - Fixed a bug in the Barcode Scanner RTU-UI v2 where the flip camera button was not resetting the widest camera available if chosen.
- Fixed a bug in
SBSDKBarcodeScannerViewControllerthat could lead to a crash when embedded within aUIViewControllerRepresentable. - Fixed a bug in the AR Barcode Scan and Count where the scanner would be stuck if there was no barcode detected.
- Fixed a UI bug in the Barcode Scanner RTU-UI v2 where the sheet button overlapped with the action bar.
- Fixed returned results for all types of
- Document Scanner and Data Capture modules:
- β οΈ Breaking changes:
- General API structure & naming:
- Extensive renaming of classes, properties, methods, and enums (e.g.,
DocumentDetectortoSBSDKDocumentScanner,GenericDocumentRecognizertoSBSDKDocumentDataExtractor,CheckRecognizertoSBSDKCheckScanner,SBSDKHealthInsuranceCardRecognizerrelated classes,SBSDKMachineReadableZoneRecognizertoSBSDKMRZScanner,SBSDKGenericTextLineRecognizertoSBSDKTextPatternScanner,SBSDKMedicalCertificateRecognizertoSBSDKMedicalCertificateScanner,SBSDKPDFRenderertoSBSDKPDFGenerator,SBSDKTIFFImageWritertoSBSDKTIFFGenerator). - Many
recognize...methods renamed toscan...orextract.... - Many initializers changed to accept new configuration objects.
- Extensive renaming of classes, properties, methods, and enums (e.g.,
- Feature removal:
- Removed the License Plate Scanner and all of its related files.
- Result type changes:
- Result objects updated for many scanners (e.g.,
SBSDKDocumentDetectionResult,SBSDKBarcodeItem,SBSDKMRZScannerResult,SBSDKCheckScanningResult,SBSDKMedicalCertificateScanningResult). SBSDKMachineReadableZoneRecognizerResultreplaced bySBSDKMRZScannerResult.SBSDKMachineReadableZoneRecognizerResultDocumentTypebySBSDKMRZDocumentType.SBSDKCheckRecognizerResultbySBSDKCheckScanningResult.SBSDKMedicalCertificateRecognizerResultbySBSDKMedicalCertificateScanningResult.SBSDKHealthInsuranceCardRecognitionResulttoSBSDKEuropeanHealthInsuranceCardRecognitionResult.
- Result objects updated for many scanners (e.g.,
- Configuration object changes:
- Removed old configuration APIs for most scanners; use new
setConfiguration(_:)methods with dedicated configuration objects. SBSDKPDFRendererOptionsreplaced bySBSDKPDFConfiguration.SBSDKUI2BarcodeRecognizerConfigurationtoSBSDKBarcodeScannerConfiguration.SBSDKUI2AspectRatioreplaced bySBSDKAspectRatio.
- Removed old configuration APIs for most scanners; use new
- Document Scanner:
- Properties related to detection parameters (angle, size, brightness, and aspect ratios) moved from
SBSDKUI2DocumentScannerCameraConfigurationtoscannerParametersinSBSDKUI2CameraScreenConfiguration. ignoreBadAspectRatiorenamed toignoreOrientationMismatchin UI configurations.SBSDKDocumentDetectorResultreplaced bySBSDKDocumentDetectionResult.SBSDKPolygonEdgebySBSDKLineSegment.- Renamed class
SBSDKDocumentDetectorModetoSBSDKDocumentScannerEngineMode.
- Properties related to detection parameters (angle, size, brightness, and aspect ratios) moved from
- Barcode Scanner:
- Initializers for
SBSDKBarcodeScannerViewControllerandSBSDKBarcodeScanAndCountViewControllerchanged to accept configuration objects. SBSDKUI2BarcodeScannerResultrenamed toSBSDKUI2BarcodeScannerUIResult.- Removed properties like
acceptedBarcodeTypes,engineMode, etc., fromSBSDKBarcodeScannerViewController; configure viaSBSDKBarcodeScannerConfiguration. SBSDKBarcodeScannerAccumulatingResult.coderemoved, useitem.SBSDKBarcodeTyperenamed toSBSDKBarcodeFormat.SBSDKBarcodeDocumentRootTypetoSBSDKBarcodeDocumentFormat. Display names of various barcode formats changed.- Replaced
SBSDKUI2BarcodesExtensionFilterenum withSBSDKUpcEanExtensionBehavior. PropertybarcodesExtensionFilterinSBSDKUI2BarcodeScannerConfigurationrenamed toextensions. - Methods of
SBSDKBarcodeTrackingOverlayControllerDelegateandSBSDKTrackedBarcodeInfoViewablenow useSBSDKBarcodeItem. - Removed
SBSDKBarcodeImageGenerationTypeand related properties.
- Initializers for
- Other class & enum renames:
SBSDKCheckDocumentRootTypetoSBSDKCheckDocumentModelRootType.SBSDKCheckRecognitionResultStatusbySBSDKCheckMagneticInkStripScanningStatus.SBSDKGenericDocumentRootTypetoSBSDKDocumentsModelRootTypeand related constants/model classes.SBSDKHealthInsuranceCardFieldTypetoSBSDKEuropeanHealthInsuranceCardRecognitionResultFieldTypeand related field/status/type classes.SBSDKMedicalCertificateRecognizerCheckboxTypetoSBSDKMedicalCertificateCheckBoxTypeand related result/enum renames.- Renamed parameter
completionHandlertocompletionincreateandpresentfunctions ofSBSDKUI2DocumentScannerController. - Renamed parameter
handlertocompletionincreateandpresentfunctions ofSBSDKUI2BarcodeScannerViewController. - Renamed async function
presentAsync(on:configuration)topresent(on:configuration)inSBSDKUI2BarcodeScannerViewController. - Completion result type for
SBSDKUI2CroppingViewControlleris now optional (SBSDKUI2CroppingResult?).
- Other removed classes:
- Removed
SBSDKCaptureInfo,SBSDKDocumentDetectionMetrics,SBSDKGenericDocumentRecognizerAccumulationConfiguration,SBSDKMachineReadableZoneRecognizerFieldName,SBSDKImageProcessorError, etc.
- Removed
- General API structure & naming:
- β οΈ Deprecations:
- MRZ Scanner RTU-UI v1 is deprecated. Use new
SBSDKUI2MRZScannerViewController. - Text Pattern Scanner RTU-UI v1 is deprecated. Use new
SBSDKUI2TextPatternScannerViewController.
- MRZ Scanner RTU-UI v1 is deprecated. Use new
- π Under the hood:
- The regex filters are applied for substrings instead of the entire output string.
- Upgraded nlohmann::json to 3.11.3.
- Upgraded xsimd to 13.0.
- Upgraded xtl to 0.7.7.
- Upgraded xtensor to 0.25.
- Upgraded yaml-cpp to 0.8.
Version 6.2.0 (24 January 2025)β
- π New:
- Added support for encryption/decryption of images and PDFs using the AES-GCM algorithm with random 96-bit initialization vectors and variable length authentication tags, as required for ePA-FdV-certification by gematik and BSI. See
SBSDKAESGCMEncrypterclass. - Added support for encryption key derivation using PBKDF2, HKDF and Random key derivation on both the standard AES encrypter (
SBSDKAESEncrypter) and the new AES-GCM encrypter (SBSDKAESGCMEncrypter) with variable key lengths (128 and 256 bits). See the new protocolSBSDKStorageCryptingKeyGeneratorand the new classesSBSDKRandomKeyGenerator,SBSDKPBKDF2KeyGeneratorandSBSDKHKDFKeyGenerator. - Added protocol-based support for encryption key management. See the new protocol
SBSDKStorageCryptingKeyProviderand the new classSBSDKVolatileKeyProvider. - Added new class
SBSDKVolatileKeyProviderthat stores, restores and deletes keys in memory per context. For a persistent storage, e.g. in the keychain or in a file, you can implement your own key provider by conforming to theSBSDKStorageCryptingKeyProviderprotocol. - Added support for encryption/decryption on a encryption-key-per-context base. See
SBSDKStorageCryptingKeyProviderandSBSDKStorageCrypting. - When storing files in image storages, with the PDF renderer, or the TIFF writer, a context in the form of the file URL is being passed to the encrypter APIs to allow for context-based key derivation.
- Added new property
autoCropOnManualSnaptoSBSDKDocumentScannerViewControllerandSBSDKUI2DocumentScannerCameraConfigurationto enable/disable the automatic cropping of the document after a manual snap. - Added new property
croppingPolygonMagneticLineColortoSBSDKUI2CroppingScreenConfigurationto set the color of the magnetic lines in the cropping screen. - Added compliance to NSCopying protocol to
SBSDKScannedDocument. - Added new delegate method
barcodeTrackingOverlay(_ controller:overrideTextFor:proposedString:)toSBSDKBarcodeTrackingOverlayControllerDelegate. - Added new property
topBarTitletoSBSDKUI2AcknowledgementScreenConfiguration.
- Added support for encryption/decryption of images and PDFs using the AES-GCM algorithm with random 96-bit initialization vectors and variable length authentication tags, as required for ePA-FdV-certification by gematik and BSI. See
- π Improvements:
- The Generic Document Recognizer no longer needs the additional data bundle with OCR languages.
- The Generic Document Recognizer now returns ID number (document number field) and sequence number (personal number field) separately for pre-2022 Costa Rican passports.
- π Bug fixes:
- Fixed layout when hiding the text of the close button on zooming in RTU-UI v2 Document Scanner.
- Fixed a layout bug in the RTU-UI v2 cropping screen's top bar.
- Fixed a bug in the barcode RTU-UI v2 action bar items where the
accessibilityDescriptionwas not being applied correctly.
- π Under the hood:
- Removed third-party-library symbols from the binary to avoid linking conflicts.
Version 6.1.1 (28 November 2024)β
- π Bug fixes:
- Fixed a bug that did not properly store an
SBSDKScannedDocumentwithout pages. - Fixed a bug that caused
SBSDKTIFFImageWriterto crash when the input images are encrypted.
- Fixed a bug that did not properly store an
- β οΈ Breaking Changes:
- Changed signature of
SBSDKScannedPagemethodapply(rotation: SBSDKImageRotation?, polygon: SBSDKPolygon?, filters: [SBSDKParametricFilter]?)toapply(rotation: SBSDKImageRotation, polygon: SBSDKPolygon?, filters: [SBSDKParametricFilter]?)to properly expose it to Objective-C.
- Changed signature of
Version 6.1.0 (7 November 2024)β
- π New:
- Added a new property
hardwareButtonsEnabledthat enables snapping from the hardware volume buttons and the new hardware camera control button toSBSDKDocumentScannerViewControllerandSBSDKBarcodeScanAndCountViewController, available on iOS 17.2 and later. - Added new zoom control slider controlled by the new camera control button on all view controllers, available on all the new iPhone 16 models.
- Added a new property
captureWithHardwareButtonsEnabledtoSBSDKUI2DocumentScannerCameraConfiguration. - Added a new mode
SBSDKUI2PageSnapFeedbackNoneto disable the animation when a page is captured. - Added a new property
allowEmptySubmissiontoSBSDKUI2MultipleScanningMode.
- Added a new property
- π Improvements:
- Document detector:
- Improved detection speed and robustness against orientation changes.
- Improved robustness against picking up random contours.
- Improved robustness against documents with colored corners, booklets, handheld documents and cards, documents near edges of tables and overlapping documents.
- Document detector:
- π Bug fixes:
- Fixed KANJI mode for QR codes.
- Fixed a bug with wrong raw bytes returned for some 2D barcode types.
- Fixed potential broken generic document field validation status that could lead to a crash or undefined behavior.
- Fixed a bug with the page counters visibility in the RTU-UI v2 Document Scanner.
- Fixed a bug in RTU-UI v2 Document Scanner where the document could not be captured in auto snap mode when
enabledInAutoSnappingModeis set to false inSBSDKUI2ShutterButton. - Fixed a memory leak in
SBSDKUI2DocumentScannerViewControllerwhen the document scanner is dismissed.
- β οΈ Breaking Changes:
- Replaced the buggy initializer
init?(json: Data)inSBSDKUI2BarcodeScannerConfigurationby the static functionSBSDKUI2BarcodeScannerConfiguration.fromJson(json: String)?. - Replaced the buggy initializer
init?(json: Data)inSBSDKUI2DocumentScanningFlowby the static functionSBSDKUI2DocumentScanningFlow.fromJson(json: String)?.
- Replaced the buggy initializer
Version 6.0.0 (15 October 2024)β
- π New:
- Added new RTU-UI V2 component, see
SBSDKUI2DocumentScannerController. - Added document capture animation in
SBSDKDocumentScannerViewController. - Added new optional delegate function
documentScannerViewControllerCaptureAnimationConfiguration(_ controller: SBSDKDocumentScannerViewController) -> SBSDKDocumentAnimationConfigurationinSBSDKDocumentScannerViewController. - Added class
SBSDKDocumentAnimationConfigurationto configure document capture animation. - Added classes
SBSDKScannedDocumentandSBSDKScannedPage. - Added support for the new
SBSDKScannedDocumentclass toSBSDKPDFRenderer,SBSDKUIPDFRenderer,SBSDKTIFFImageWriterandSBSDKOpticalCharacterRecognizer. - Added
init(uiColor: UIColor)inSBSDKUI2Color. - Added new property
isAnimatingCapturetoSBSDKDocumentScannerViewController. - Added new class
SBSDKDocumentScannerPolygonConfiguration. - Added new properties
polygonConfigurationAccepted,polygonConfigurationRejectedandautoSnapProgressPolygonConfigurationtoSBSDKDocumentScannerViewController. - Added new optional delegate method
documentScannerViewController(_ controller: SBSDKDocumentScannerViewController, polygonConfigurationFor: SBSDKDocumentDetectionStatus) -> SBSDKDocumentScannerPolygonConfigurationto protocolSBSDKDocumentScannerViewControllerDelegate. - Added new optional delegate method
imageEditingViewController(_ editingViewController: didDetectPolygon:)toSBSDKImageEditingViewControllerDelegate. - Added new property
addAdditionalQuietZonetoSBSDKBarcodeAdditionalParameters. - Added new property
postalTypestoSBSDKBarcodeType.
- Added new RTU-UI V2 component, see
- π Improvements:
- Improved sharpness of captured images in
SBSDKDocumentScannerViewControllerby tweaking various timing related default values, such asinitialScanDelayandautoSnappingDelay. - The AR-overlay in
SBSDKUI2FindAndPickScanningModeis now visible by default. - For CODE_128 and ITF, we improved the recognition of barcodes generated by defective thermal printers that do not print certain black bars correctly.
- Improved sharpness of captured images in
- π Bug fixes:
- Fixed a bug in RTU-UI v2 Barcode Scanner where extended barcodes are displayed along with their non-extended versions.
- Fixed a UI issue in the RTU-UI v2 Barcode Scanner where a title that was too long would cut off the cancel button.
- Fixed a UI issue in the RTU-UI v2 Find & Pick scanner in
buttonsheet mode where the counter badge was not visible. - Fixed a UI issue in
SBSDKFinderViewwhere the background color overlapped with the line color. - Fixed a crash when zooming with invalid
minZoomandmaxZoomvalues. - Fixed a bug that did not mirror the front camera as expected.
- Fixed a bug in
SBSDKUI2SingleScanDialogModelProviderwhere the default displayed texts were not correct.
- β οΈ Breaking Changes:
- Deprecated
SBSDKUIDocumentScannerViewController,SBSDKUIFinderDocumentScannerViewController,SBSDKUICroppingViewControllerand their related classes. - Renamed the values of the enum
SBSDKDocumentDetectionStatus. - Removed optional delegate method
documentScannerViewController(_ controller:, polygonLineColorFor:) -> UIColorfrom protocolSBSDKDocumentScannerViewControllerDelegate. - Removed optional delegate method
documentScannerViewController(_ controller:, polygonFillColorFor:) -> UIColorfrom protocolSBSDKDocumentScannerViewControllerDelegate. - Removed properties
polygonLineWidth,polygonLineColorAccepted,polygonLineColorRejected,polygonFillColorAccepted,polygonFillColorRejected,polygonAutoSnapProgressEnabled,polygonAutoSnapProgressColor,polygonAutoSnapProgressLineWidthandpolygonCornerRadiusfromSBSDKDocumentScannerViewController. - Renamed property
residencePermitFronBacktoresidencePermitFrontBackinSBSDKUIDocumentType. - Removed parameter
encrypterfrom allSBSDKPDFRenderermethods and added it to the initializer of the class.
- Deprecated
Version 5.2.2 (2 August 2024)β
- π Bug fixes:
- Fixed the false positive document detection (introduced in v5.2.0).
Version 5.2.1 (24 July 2024)β
- π New:
- Added support for United Arab Emirates (UAE) and Canadian (CAN) checks.
- Added new properties
resultAccumulatorConfigurationtoSBSDKGenericDocumentRecognizerandSBSDKGenericDocumentRecognizerViewController. See new classSBSDKGenericDocumentRecognizerAccumulationConfiguration.
- π Improvements:
- Made the SwiftUI Barcode Scanner more flexible. See
SBSDKUI2BarcodeScannerView.
- Made the SwiftUI Barcode Scanner more flexible. See
- π Bug fixes:
- Fixed a UI issue on the RTU-UI V2 barcode sheet screen where the subtitle label was being vertically cut off.
- Fixed a UI issue on the RTU-UI V2 barcode confirmation sheet in the single use case where the loading indicator was not centered when the loading message was hidden.
- Fixed a bug in
compressionofSBSDKTIFFImageWriterParameterswhere theSBSDKTIFFImageWriterwas not using the chosen compression value. - Fixed a bug in
SBSDKCheckRecognizerwhere theacceptedCheckTypeswere not being applied correctly. - Fixed a bug in
SBSDKUICheckRecognizerViewControllerwhere theacceptedCheckStandardswere not being applied correctly.
- β οΈ Breaking Changes:
- Changed SwiftUI Barcode Scanner initializer to accept blocks instead of binding vars. See
SBSDKUI2BarcodeScannerView. - Removed
ccittfax3andccittfax4options fromSBSDKTIFFImageWriterCompressionOptions, you should now useccitt_t4andccitt_t6respectively.
- Changed SwiftUI Barcode Scanner initializer to accept blocks instead of binding vars. See
Version 5.2.0 (26 June 2024)β
- π New:
- Added support for german health insurance card front side and european health insurance card to
SBSDKGenericDocumentRecognizer,SBSDKGenericDocumentRecognizerViewControllerandSBSDKUIGenericDocumentViewController. - Added support for new barcode types Maxicode, rMQR code, Code 11 and Code 32.
- Added properties
australiaPostCustomerFormat,useIATA2OF5ChecksumanduseCode11ChecksumtoSBSDKBarcodeAdditionalParametersandSBSDKUI2BarcodeRecognizerConfiguration. - Added support for PDF metadata attributes when rendering PDF files: see new class
SBSDKPDFAttributesand new propertypdfAttributesonSBSDKPDFRendererOptions.
- Added support for german health insurance card front side and european health insurance card to
- π Improvements:
- Improved detection of UPC- and EAN extensions.
- The generic document recognizer and its UI components now use the new Scanbot OCR engine under the hood. In order to scan for generic documents the additional OCR language data bundle is no longer required.
- Improved document detection on booklet documents.
- Improved performance of
SBSDKDocumentQualityAnalyzer. - Added support for Extended Channel Interpretation (ECI) for Datamatrix and Aztec.
- Improved GS1 string handling with new modes for decoding and validation. See
SBSDKGS1Handling. - Added the ability to display the scanned barcodes image in the FindAndPick usecase of
SBSDKUI2BarcodeScannerViewControllerby specifyingSBSDKUI2ExpectedBarcode.barcodeImageKeyfor the expected barcodesimageproperty.
- π Bug fixes:
- Fixed a bug in the FindAndPick usecase of
SBSDKUI2BarcodeScannerViewControllerthat never showed the expected barcodes title, but always the barcode value.
- Fixed a bug in the FindAndPick usecase of
- β οΈ Breaking Changes:
- Removed enum
SBSDKBarcodeDensity. - Removed property
codeDensityfromSBSDKBarcodeAdditionalParameters. - Removed enum values
validateanddecodefromSBSDKGS1Handlingand replaced them bydecodeStructure,decodeFull,validateStructureandvalidateFull. - Removed property
sharpnessAcceptanceFactorfromSBSDKGenericDocumentRecognizer,SBSDKGenericDocumentRecognizerViewControllerandSBSDKUIGenericDocumentRecognizerBehaviorConfiguration. - Removed property
isAccumulatingDocumentsfromSBSDKGenericDocumentRecognizerandSBSDKGenericDocumentRecognizerViewController. - Deprecated
SBSDKHealthInsuranceCardRecognizer,SBSDKHealthInsuranceCardScannerViewControllerandSBSDKUIHealthInsuranceCardScannerViewController. - Removed class
SBSDKPDFMetadataEditor.
- Removed enum
Version 5.1.3 (26 June 2024)β
- π Improvements:
- Improved detection of UPC/EAN barcode extensions in live mode.
- The barcode scanner now supports transposed (mirrored/flipped) Aztec barcodes.
- π Bug fixes:
- Fixes a bug in
SBSDKUI2Colorwhere settingisArgbto true, resulted in a wrong color.
- Fixes a bug in
Version 5.1.1 (6 June 2024)β
- π Bug fixes:
- Fixes a crash with all Classic UI components when energy saving is disabled.
- Fixes a bug in
SBSDKUI2BarcodeScannerViewControllerin single scan mode that prevented the barcode scanner from pausing the recognition while the submit dialog is shown.
Version 5.1.0 (21 May 2024)β
- π New:
- Added new property
regularExpressionPatterntoSBSDKBarcodeScannerandSBSDKBarcodeScannerViewControllerto limit detection results. - Added support of the new 'Find and Pick' barcode scanning mode, see
SBSDKUI2FindAndPickScanningMode. - Added support for continuous scanning in
SBSDKUI2BarcodeScannerViewController. - Added a new configuration class
SBSDKHealthInsuranceCardRecognizerParametersto configure the live detection recognizer inSBSDKHealthInsuranceCardRecognizer. - Added a new property
liveDetectionParametersinSBSDKHealthInsuranceCardRecognizer. - Added a new property
recognizerParametersinSBSDKHealthInsuranceCardScannerViewControllerandSBSDKUIHealthInsuranceCardScannerViewController. - Added support for new barcode type
SBSDKBarcodeTypeMicroPdf417. - Added a new class
SBSDKBarcodeDocumentConstantswhich has all the constants related to the barcode document format. - Added new classes for all the barcode document formats. See the API documentation for more details.
- Added a new class
SBSDKBarcodeDocumentRootTypewhich replaces the oldSBSDKBarCodeScannerDocumentFormat. - Added read-only, Key-Value observable property
pagesof type[SBSDKDocumentPage]toSBSDKDocument. - Added Swift structured concurrency API (async/await) to
SBSDKUI2BarcodeScannerViewController,SBSDKUIPDFRenderer,SBSDKPDFRenderer,SBSDKTIFFImageWriter,SBSDKOpticalCharacterRecognizer,SBSDKPDFPagesExtractorandSBSDKTextLayoutRecognizer. - Added a new struct
SBSDKUI2BarcodeScannerViewwhich is the SwifUI wrapper forSBSDKUI2BarcodeScannerViewController. - Added possibility to inject an image to simulate a video stream and a captured image to any scanner's camera session for UI testing. See
Scanbot.testData,SBSDKTestDataandSBSDKSimulatedCameraMockData. - Added
isCameraFrozenproperty toSBSDKBaseScannerViewController. - Added property
acceptedBrightnessThresholdtoSBSDKDocumentScanner,SBSDKDocumentScannerViewController,SBSDKUIDocumentScannerBehaviourConfigurationandSBSDKUIFinderDocumentScannerBehaviorConfiguration. - Added property
averageBrightnesstoSBSDKDocumentDetectionMetrics. - Added new static properties
allFormats,commonFormats,oneDFormatsandtwoDFormatstoSBSDKUI2BarcodeFormat. - Added new class
SBSDKUI2BarcodeTextLocalizationand new propertylocalizationtoSBSDKUI2BarcodeScannerConfigurationto support localized strings. - Added support for parsing of AAMVA Certificate of Title for motor vehicle barcodes.
- Added new property
- π Improvements:
- IMPORTANT: Changed the default rear cameras on all scanners to the triple or dual camera. On some devices with triple camera this results in a different view port (more zoomed in). Please make sure to adapt your zoom ranges and factors.
- Improved image quality and capture speed on most iOS devices slightly by capturing HEIF images.
- The health insurance card recognizer now implements the new scanbot OCR engine. The recognition is faster and more accurate than before.
- Added support of haptic feedback on capable devices.
- Made properties
polygon,filter,parametricFilters,documentImageSizeLimit,documentImage,documentImageURL,documentPreviewImageanddocumentPreviewImageURLof classSBSDKDocumentPageKey-Value observable. SBSDKPDFPagesExtractorfunctions now create the output directory if it doesn't exist yet.- Added support for structured logging (OSLog) to the SDK (iOS 14+).
- π Bug fixes:
- Fixed a bug with the generic textline recognizer not returning multiline results.
- Fixed a bug with the asynchronous functions of
SBSDKPDFPagesExtractorwhich returned an empty array of image URLs. - Fixed a UI bug in the
SBSDKUI2BarcodeScannerViewController. - Fixed the documentation of
isShutterButtonHiddeninSBSDKUIFinderDocumentScannerUIConfigurationto correctly mention its default value. - Fixed JSON representation of
SBSDKUI2BarcodeItem.
- β οΈ Breaking Changes:
- Important: The default rear camera in all scanners has been changed from the ultra-wide or wide camera to the triple or dual camera.
- Renamed function
captureJPEGStillImagetocaptureStillImageinSBSDKBaseScannerViewController(and all subclasses) andSBSDKCameraSession. - Renamed function
captureOutput(_ output:, didOutput:, from:)tocameraSession(_ session:, didOutput:)in protocolSBSDKCameraSessionDelegate. - Replaced the class
SBSDKBarcodeDocumentTypebySBSDKBarcodeDocumentRootType. - Renamed
supportedBarcodesTypes(for:)tosupportedBarcodeTypes(for:)in the new classSBSDKBarcodeDocumentRootType. - Removed the protocol
SBSDKBarCodeScannerDocumentFormatand all of its children classes. - Removed default properties of use cases in
SBSDKUI2BarcodeUseCase, now use the proper initializer for every use case, e.g.SBSDKUI2SingleScanningMode(). - Changed the type of numeric parametric filter parameters from Float to Double.
- Changed the order of parameters in the initializer of
SBSDKCustomBinarizationFilter. - Removed
barcodeTypesandacceptedDocumentTypesfromSBSDKUI2BarcodeRecognizerConfigurationas they are not needed anymore and we can usebarcodeFormatsandacceptedDocumentFormatsdirectly. - Made the property
typeinSBSDKUI2BarcodeItemoptional. - Changed type of property
rawBytesfrom [UInt8] to Data.
- π Under the hood:
- Updated third-party libraries zlib to version 1.3.1, libtiff to 4.6.0, libjpeg-turbo to 2.1.5.1, libpng to 1.6.40.
- Added third-party library libzueci version 1.0.0
Version 5.0.4 (27 March 2024)β
- π Bug fixes:
- Fixes a bug where barcode results formattedResult returned nil instead of the correct barcode document.
Version 5.0.3 (21 March 2024)β
- π Bug fixes:
- Changed privacy manifest to comply with the latest Apple specs.
Version 5.0.2 (15 March 2024)β
- π Bug fixes:
- Fixes a problem that slowed down still image capturing on some older iOS devices.
- π Improvements:
- Improved speed and image quality of still image capturing.
Version 5.0.1 (12 March 2024)β
- π Bug fixes:
- Fixed a critical bug in the camera session causing still images to be captured at a lower than expected resolution.
- Fixed a bug in the Generic Document Scanner which prevented the extraction of the given names as well as the valid from date from a residence permit card.
Version 5.0.0 (1 March 2024)β
- π New:
- Added new RTU-UI V2 component, see
SBSDKUI2BarcodeScannerViewController. - Added new class-based image filters with customizable parameters:
SBSDKParametricFilter(abstract base class)SBSDKScanbotBinarizationFilterSBSDKCustomBinarizationFilterSBSDKColorDocumentFilterSBSDKBrightnessFilterSBSDKContrastFilterSBSDKGrayscaleFilterSBSDKWhiteBlackPointFilterSBSDKLegacyFilter(encapsulates the deprecatedSBSDKImageFilterTypefilters)
- Added support for German residence permit documents to
SBSDKGenericDocumentRecognizer. SeeSBSDKGenericDocumentRootType. - Added class
SBSDKCheckDocumentto represent a document specifically used for checking purposes, inheriting properties and methods fromSBSDKGenericDocument. - Added the
returnCroppedDocumentImageproperty toSBSDKMedicalCertificateRecognizerConfigurationOptions,SBSDKMedicalCertificateScannerViewControllerandSBSDKUIMedicalCertificateScannerViewController. This property allows you to control whether the SDK should include a cropped document image in its output or not. - Added new property
minimumNumberOfSymbolstoSBSDKDocumentQualityAnalyzer. - Added streaming encryption support to
SBSDKStorageCrypting. - Added the
SBSDKFinderView.Styleenum and the propertystylethat defines the drawing styles of the finder view toSBSDKFinderViewandSBSDKBaseScannerViewFinderConfiguration. - Added the
viewFinderStyleproperty toSBSDKBaseScannerViewController. - Added a new property
supportedBarcodeTypesinSBSDKBarcodeDocumentTypethat has the supported barcode types of the barcode document format. - Added a new static method
supportedBarcodesTypes(for:)inSBSDKBarcodeDocumentTypeto return the supported barcode types of a given array of barcode document formats. - Added a new modern beep sound in
SBSDKSoundController. - Added a new enum
SBSDKSoundTypeto configure the default beep sound ofSBSDKSoundController. - Added Privacy manifest file (
PrivacyInfo.xcprivacy) to the SDK. - Added new static property
maximumRecommendedImageSizetoSBSDKDeviceInformation. - Added a new property
boundingBoxWithImageSizetoSBSDKOCRResultBlockto get the bounding box of the receiver in absolute image coordinate system. - Added new function
resetAccumulationtoSBSDKBarcodeScannerViewController.
- Added new RTU-UI V2 component, see
- π Improvements:
- Improved the installation of custom OCR languages for the Tesseract OCR engine. See
SBSDKOCRLanguagesManager. - Streaming rendering and encrypting for
SBSDKPDFRendererandSBSDKTIFFImageWriter. Memory footprint during rendering reduced by up to 5x for TIFF. Unlimited PDF rendering.
- Improved the installation of custom OCR languages for the Tesseract OCR engine. See
- π Bug fixes:
- Fixed a bug where the
recognizeOnImageStorage:completion:was unable to detect text on imageStorage when the encryption was on.
- Fixed a bug where the
- β οΈ Breaking Changes
- Due to the refactoring of Scanbot SDK to the Swift language a lot of properties and method parameters have changed in order to provide a clean and consistent interface for Swift and Objective-C.
- Renamed barcode type RSS14 to Databar and RSSExpanded to DatabarLimited.
- Removed adjustable filters and partially replaced them with the parametric filters.
- Deprecated
SBSDKImageFilterType. Use the new parametric filtersSBSDKParametricFilterand its subclasses if possible. - Replaced parameters of type
SBSDKImageFilterTypebySBSDKParametricFilterin most classes. - Changed type of
binarizationFilterinSBSDKTIFFImageWriterParametersfromSBSDKImageFilterTypetoSBSDKParametricFilter. - Renamed
SBSDKUIDocumenttoSBSDKDocument,SBSDKUIPagetoSBSDKDocumentPageandSBSDKUIPageFileStoragetoSBSDKDocumentPageFileStorage. - Refactored
SBSDKImageProcessormoving away from the complex asynchronous functions to a straight object oriented approach. - Deprecated
SBSDKUIBarcodeScannerViewControllerandSBSDKUIBarcodesBatchScannerViewControlleralong with their related classes. Please consider switching to the newSBSDKUI2BarcodeScannerViewController. - Changed
isLicenseValid,licenseStatusfrom functions to variables inScanbotclass. - Changed
defaultImageStoreEncrypter,defaultPDFEncrypter,shouldShowStatusBarOnScanningScreens,defaultStatusBarStylefrom separated getters and setters to variables inScanbotUIclass. - Removed
printInfo:,printError:andprintWarning:fromSBSDKLog. - Changed
setLoggingEnabled:to propertyisLoggingEnabledinSBSDKLog. - Functions
logInfo:,logError:andlogWarning:inSBSDKLognow acceptStringas a parameter instead ofva_list. - Changed all properties of type
NSNumberto optionalDoubleinSBSDKImageMetadata. - Replaced default initialization
initWithParentViewController:containerViewby the new static methodcreateWithParentViewController:containerViewinSBSDKImageEditingViewController. - Changed
SBSDKTIFFImageWriterfrom static class to instantiated class and simplified the interface. - Changed all
SBSDKBarcodeTypeglobal constants to static properties ofSBSDKBarcodeType. - Refactored
SBSDKBarcodeType, it introduces a style naming change for all barcode types, please see the documentation. - Moved the global constants
SBSDKBarcodeMetadataEANUPCExtensionKeyandSBSDKBarcodeMetadataIsGS1MessageKeytoSBSDKBarcodeScannerResultas its static properties. - Renamed enum
SBSDKAutosnappingModetoSBSDKAutoSnappingMode. - Renamed enum
SBSDKMedicalCertificateRecognizerFormTypetoSBSDKMedicalCertificateRecognizerForm, please see the documentation for the refactored types. - Renamed properties
patientInformationRecognitionEnabledandbarcodeRecognitionEnabledtoisPatientInformationRecognitionEnabledandisBarcodeRecognitionEnabledinSBSDKMedicalCertificateRecognizerConfigurationOptions. - Renamed and refactored class
SBSDKPDFMetadataProcessortoSBSDKPDFMetadataEditor. - Renamed and refactored class
SBSDKResourcesManagertoSBSDKOCRLanguagesManager. - Renamed functions
mlConfigurationandlegacyConfigurationWithLanguages:inSBSDKOpticalCharacterRecognizerConfigurationtoscanbotOCRandtesseractWithLanguages:. - Renamed enum values
SBSDKOpticalCharacterRecognitionModeLegacytoSBSDKOpticalCharacterRecognitionModeTesseractandSBSDKOpticalCharacterRecognitionModeMLtoSBSDKOpticalCharacterRecognitionModeScanbotOCR. - Renamed the function
recognizeFromStillImage,recognizeFromVideoFrameImage,recognizeFromSampleBuffer:orientation:,recognizeFromSampleBuffer:searchInRect:orientation:torecognizeOnStillImage,recognizeOnVideoFrameImage,recognizeOnSampleBuffer:orientation:,recognizeOnSampleBuffer:searchInRect:orientation:inSBSDKHealthInsuranceCardRecognizer. - Renamed the static factory functions in
SBSDKUIHealthInsuranceCardScannerViewControllerto fix their ugly signatures. - Renamed the function
recognizeFromSampleBuffertorecognizeOnSampleBufferinSBSDKGenericTextLineRecognizer. - Renamed the static factory functions in
SBSDKUITextDataScannerViewControllerto fix their ugly signatures. - Changed all
SBSDKBarcodeDocumentTypeglobal constants to static properties ofSBSDKBarcodeDocumentType. - Changed all
SBSDKGenericDocumentglobal constants to static properties ofSBSDKGenericDocumentandSBSDKCheckDocument. - Replaced the default value of
acceptedBarcodeTypeswithSBSDKBarcodeType.commonTypes, this property will no longer accept nil anywhere, if it's set to an empty array, this will automatically be translated toSBSDKBarcodeType.commonTypes. - The property
acceptedDocumentTypesofSBSDKBarcodeScannerandSBSDKBarcodeScannerViewControllercan no longer be set to nil. - Renamed the property
optional1FieldinSBSDKMachineReadableZoneRecognizerResulttovisaOptionalField. - Renamed enum value
SBSDKMachineReadableZoneRecognizerFieldNameOptional1toSBSDKMachineReadableZoneRecognizerFieldNameVisaOptional.
- π Under the hood:
- Refactored all public SDK code to Swift.
Version 4.2.2 (21 March 2024)β
- π Bug fixes:
- Changed privacy manifest to comply with the latest Apple specs.
Version 4.2.1 (13 February 2024)β
- π New:
- Added Privacy manifest file (
PrivacyInfo.xcprivacy) to the SDK. - Added new static property
maximumRecommendedImageSizetoSBSDKDeviceInformation.
- Added Privacy manifest file (
- π Bug fixes:
- Fixed a bug in
SBSDKOpticalCharacterRecognizerwhererecognizeText:completion:was unable to detect text on imageStorage when the encryption was enabled. - Fixed the issue when the top and bottom toolbars' background color in
SBSDKUICroppingViewControllerdidn't update on dark mode change, when set toUIColor.systemBackground.
- Fixed a bug in
Version 4.2.0 (8 January 2024)β
- π New:
- Added support for Kuwait ID cards in the MRZ scanner.
- Added support for Israelian checks to the check recognizer.
- Added support for new barcode type
SBSDKBarcodeTypeGS1Composite. - Added property
imageSizeLimittoSBSDKDocumentQualityAnalyzer.
- π Improvements:
- Improved the performance and memory footprint of the document quality analyzer.
- Added more control over how to handle GS1 messages in barcodes. See
SBSDKGS1Handling.
- β οΈ Breaking Changes:
- The property
enableGS1Decodinghas been replaced by the enumSBSDKGS1HandlinginSBSDKBarcodeAdditionalParameters. GS1codes are now handled differently for various barcode types. Using the default optionPARSEwill give the same result as before for all barcode types, except ofRSS_EXPANDED. Previously, forRSS_EXPANDED, the result was inconsistently returned with parentheses. Now, to get results with parentheses for all barcode types, it is needed to choose the optionDECODE.
- The property
Version 4.1.0 (24 November 2023)β
- π New:
- Added a new class
SBSDKDocumentQualityAnalyzer. - Added support for 6 new barcode types to the barcode scanner:
SBSDKBarcodeTypeUSPSIntelligentMailSBSDKBarcodeTypeRoyalMailSBSDKBarcodeTypeJapanPostSBSDKBarcodeTypeRoyalTNTPostSBSDKBarcodeTypeAustraliaPostSBSDKBarcodeTypeDatabarLimited
- Added a new class