Changelog for the iOS Data Capture SDK
tip
For additional details about the API, please refer to our API reference documentation.
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
- 🐞 Bug fixes:
- Fixed a bug with the iPad 5th generation where captured images were wrong.
- Fixed a bug where the finder text hint was still showing when
viewFinderEnabledwas disabled inSBSDKUIBarcodeScannerViewControllerandSBSDKUIBarcodesBatchScannerViewController. - Fixed a wrong polygon color in RTU-UI barcode scanner tracking overlay.
- ⚠️ Breaking Changes:
- The class
SBSDKBlurrinessEstimatorhas been removed and replaced by the far superiorSBSDKDocumentQualityAnalyzer.
- The class
Version 4.0.0 (18 October 2023):
- 🎉 New:
- Added new classes
SBSDKOpticalCharacterRecognizer,SBSDKOpticalCharacterRecognizerConfigurationandSBSDKTextLayoutRecognizer. - Added new method
widestAvailableBackFacingCameratoSBSDKCameraDevice. - Added new method
setupDefaultLicenseFailureHandlerWithCompletion:to theScanbotclass.
- Added new classes
- 🚀 Improvements:
- New improved document detector with better performance and less memory consumption.
- Added new Optical Character Recognition engine based on machine learning algorithms that is much faster and less error prone.
- The new OCR engine currently supports all languages with latin letters, there is no need to specify the languages for it. The legacy engine based on Tesseract can still be used.
- ⚠️ Breaking Changes:
- Renamed
photoQualityPriorizationtophotoQualityPrioritizationeverywhere in the SDK. - Removed
SBSDKImageMetricsAnalyzer,SBSDKImageChannelMetricsandUIImage+SBSDKMetricsAnalysis. - Refactored all OCR and PDF rendering classes to incorporate the new OCR engine and simplify the API:
- Removed
SBSDKOpticalTextRecognizerandSBSDKTextOrientationRecognizer. - Renamed
SBSDKPageOrientationtoSBSDKTextOrientation. - Renamed property
pageAnalyzerResulttotextLayoutRecognizerResultinSBSDKOCRPage. - Replaced
boundingBoxproperty bypolygoninSBSDKOCRResultBlock. - Changed function signatures of methods in
SBSDKPDFRendererandSBSDKUIPDFRenderer. - Added new values and removed unused values in
SBSDKPDFRendererPageSize.
- Removed
- Changed default value of the finder aspect ratio in
SBSDKUIFinderDocumentScannerUIConfigurationto DIN A4 portrait.
- Renamed
- 🚙 Under the hood:
- New library libharu.
Version 3.0.2 (28 September 2023):
- 🐞 Bug fixes:
- Fixed a focusing issue with the new iPhone 15 Pro and 15 Pro Max.
Version 3.0.0 (23 August 2023):
- 🎉 New:
- Added property
extensionFilterto all barcode scanning APIs (SBSDKBarcodeScanner,SBSDKBarcodeScannerViewController,SBSDKBarcodeScanAndCountViewController,SBSDKUIBarcodeScannerBehaviorConfigurationandSBSDKUIBarcodesBatchScannerBehaviorConfiguration). - Added property
extensiontoSBSDKBarcodeScannerResult. - Added new Scanner
SBSDKVehicleIdentificationNumberScannerwhich scans and validates a Vehicle Identification Number. - Added new Classic UI component
SBSDKVINScannerViewControllerwhich enables you to scan Vehicle Identification Numbers. - Added new RTU-UI component
SBSDKUIVINScannerViewControllerwhich enables you to scan Vehicle Identification Numbers. - Added new class
SBSDKScanAndCountPolygonStyle. - Added new delegate function
(nonnull SBSDKScanAndCountPolygonStyle *)barcodeScanAndCountController:(nonnull SBSDKBarcodeScanAndCountViewController *)controller polygonStyleForBarcode:(nonnull SBSDKBarcodeScannerResult *)codetoSBSDKBarcodeScanAndCountViewControllerDelegate. - Added
trackingOverlayControllerproperty toSBSDKBarcodeScannerViewController. - Introduced new classes and protocols to manage barcode tracking overlay:
SBSDKBarcodeTrackingOverlayController: Provides a customizable user interface for displaying barcodes and supports interaction with them.SBSDKBarcodeTrackingOverlayConfiguration: Represents the configuration options for anSBSDKBarcodeTrackingOverlayController.SBSDKBarcodeTrackedViewTextStyle: Represents the style and kind of text rendered below a barcode.SBSDKBarcodeTrackedViewPolygonStyle: Represents the style of the polygon rendered around a barcode.SBSDKTrackedBarcodeInfoView: A protocol that defines the methods and properties required for a custom tracking view.
- Added functions to
SBSDKDeviceInformationto get the total, used and unused disk space on the device.
- Added property
- 🚀 Improvements:
- RTU-UI configurations can now be initialized with partial/incomplete JSON data by internally merging the partial data into the configurations default values.
- Improved the speed of barcode recognition for most barcode symbologies.
- OCR quality for the Generic Text Line Scanner is significantly more reliable.
- 🐞 Bug fixes:
- Fixed a bug where
flashEnabledwas not working properly inSBSDKUIHealthInsuranceCardScannerViewController. - Fixed a crash when denying camera permission.
- Fixed a bug with magnetic lines in
SBSDKImageEditingViewControllerandSBSDKUICroppingViewController. - Fixed an issue where the MRZ Scanner was not recognizing the new standard of Belgian ID Cards.
- Fixed the broken default zoom level in
SBSDKGenericTextLineRecognizerViewControllerandSBSDKUITextDataScannerViewController.
- Fixed a bug where
- ⚠️ Breaking Changes:
- Due to a Swift compiler naming collision, the class
ScanbotSDKhas been renamed toScanbot. - Renamed the class
ScanbotSDKUItoScanbotUIfor consistency. - Removed barcode type
SBSDKBarcodeTypeUnknown. - Removed property
autoCancelTimeoutfromSBSDKUIMRZScannerBehaviorConfiguration. - Removed
textRecognitionLanguagesandtextFilterStrategyfromSBSDKGenericTextLineRecognizerViewController. - Removed
textFilterStrategyfromSBSDKUITextDataScannerStep. - Removed
supportedLanguagesfromSBSDKUITextDataScannerBehaviorConfiguration. - Removed
qrBarcodeDetectionViewController:selectionOverlayTextFor:fromSBSDKUIBarcodeScannerViewController. - Renamed
selectionOverlayEnabledtoisTrackingOverlayEnabledinSBSDKBarcodeScannerViewController. - Renamed
SBSDKUIBarcodeSelectionOverlayConfigurationtoSBSDKUIBarcodeTrackingOverlayConfiguration - Renamed
selectionOverlayConfigurationtotrackingOverlayConfigurationinSBSDKUIBarcodeScannerConfigurationandSBSDKUIBarcodesBatchScannerConfiguration. - Replaced the properties
polygonEnabled,polygonColor,polygonFillColorandpolygonLineWidthby the propertypolygonStyleinSBSDKBarcodeScanAndCountViewController.
- Due to a Swift compiler naming collision, the class
Version 2.3.0 (22 June 2023):
- 🎉 New:
- Added support for the Micro QR barcode type.
- Added new property
viewFinderEnabledtoSBSDKUIBarcodeScannerBehaviorConfigurationandSBSDKUIBarcodesBatchScannerBehaviorConfiguration. - Added new properties
confirmationDialogTitleandconfirmationDialogMessagetoSBSDKUIBarcodeScannerTextConfiguration. - Machine-readable-zone results have been refactored (please see Breaking Changes):
- Added new properties
genericDocument,travelDocumentTypeVariantFieldanddateOfIssueFieldtoSBSDKMachineReadableZoneRecognizerResult. - Added new value
SBSDKMachineReadableZoneRecognizerResultDocumentTypeCrewMemberCertificateto theSBSDKMachineReadableZoneRecognizerResultDocumentTypeenum. - Added new values
SBSDKMachineReadableZoneRecognizerFieldNameDateOfIssuanceandSBSDKMachineReadableZoneRecognizerFieldNameTravelDocumentTypeVariantto theSBSDKMachineReadableZoneRecognizerFieldNameenum.
- Added new properties
- Added new Classic UI component
SBSDKBarcodeScanAndCountViewControllerwhich enables you to scan barcodes multiple times using the shutter button. - Added new function
-(void)flipHorizontally:(CGSize)sizetoSBSDKPolygon. - Added new function
-(BOOL)isMirroredtoSBSDKCameraDevice.
- 🚀 Improvements:
- Changed the default value for the
documentTypeproperty inSBSDKUIGenericDocumentRecognizerBehaviorConfigurationto a document type that contains all kinds ofSBSDKGenericDocumentRootType. Simply said, by defaultSBSDKUIGenericDocumentRecognizerViewControllernow recognizes all documents. - Changed the default zoom range from (0.0 - 3.0) to (0.0 - 12.0) in all ClassicUI and RTU-UI components and in
SBSDKZoomRange. - Better per-frame accuracy for QR code detection.
- Support for inverted PDF-417 barcodes.
- The barcode types Code 39 and Code 93 decode slightly faster.
- Support for generic documents in the MRZ recognizer.
- Changed the default value for the
- 🐞 Bug fixes:
- Fixed the detection of a few false positive RSS Expanded codes in live mode.
- Fixed an unexpected behavior of the barcode scanner when passing
SBSDKBarcodeTypeUnknownas accepted barcode type. - Fixed a bug in all Classic UI and RTU-UI components where the
recognitionEnabledproperty might not have worked as intended. - Fixed a bug where
ocrResolutionLimitwas not being used inSBSDKUITextDataScannerViewControllerfrom JSON. - Fixed a bug where the polygon should be mirrored when using the front camera in
SBSDKDocumentScannerViewControllerandSBSDKUIDocumentScannerViewController. - Fixed a bug where
automaticSelectionEnabledwas not working properly inSBSDKUIBarcodesBatchScannerViewController.
- ⚠️ Breaking Changes:
- Removed support for iOS 11.x and 12.x. The minimum deployment target to use ScanbotSDK in your app is iOS 13.0!
- Removed class
SBSDKUIMachineCodesCollection. - Removed classes
SBSDKMultipleObjectScannerViewController,SBSDKBusinessCardsImageProcessor,SBSDKMultipleObjectsDetector,SBSDKUIMultipleObjectScannerViewControllerand its configuration classes. - Removed class
SBSDKBaseCameraViewController. - Renamed the property
acceptedMachineCodeTypestoacceptedBarcodeTypesinSBSDKUIBarcodeScannerBehaviorConfigurationandSBSDKUIBarcodesBatchScannerBehaviorConfiguration. - The RTU-UI configuration JSON formats have been changed, mostly the enum values have been capitalized.
- Machine-readable-zone results have been refactored:
- Date fields in machine-readable-zones are returned unformatted now, e.g. in the format 'YYMMDD'. Previously we tried to convert them to the format 'DD.MM.YY'.
- Removed value
SBSDKMachineReadableZoneRecognizerFieldNameDiscreetIssuingStateOrOrganizationfrom theSBSDKMachineReadableZoneRecognizerFieldNameenum. - Removed value
SBSDKMachineReadableZoneRecognizerResultDocumentTypeTravelDocumentfrom theSBSDKMachineReadableZoneRecognizerResultDocumentTypeenum. - Removed property
checkDigitCharacterfromSBSDKMachineReadableZoneRecognizerResultCheckDigit. - Removed property
discreetIssuingStateOrOrganizationFieldfromSBSDKMachineReadableZoneRecognizerResult. - Removed property
checkDigitsCountfromSBSDKMachineReadableZoneRecognizerResult.
Version 2.2.1 (1 June 2023):
- 🎉 New:
- Added properties
maxNumberOfAccumulatedResultsandrequiredNumberOfEqualAccumulatedResultstoSBSDKMachineReadableZoneRecognizer,SBSDKMRZScannerViewControllerandSBSDKUIMRZScannerBehaviorConfiguration.
- Added properties
- 🚀 Improvements:
- New configurable machine-readable-zone result accumulator that lets you fine-tune the strictness of the recognizer.
- ⚠️ Breaking Changes:
- Removed property
resultAccumulationCountfromSBSDKMachineReadableZoneRecognizer,SBSDKMRZScannerViewControllerandSBSDKUIMRZScannerBehaviorConfiguration.
- Removed property
Version 2.2.0 (19 April 2023):
- 🎉 New:
- A new machine-learning based machine-readable zone recognizer has been introduced
- All Classic-UI components now have new methods
initandattach:parentViewController:containerView, which provide more flexibility. - Portuguese ID cards (old and new format) can now be recognized by the MRZ scanners.
- Support for barcode type
SBSDKBarcodeTypeCode25, which is a variant of the Industrial-2of5 type without the checksum, has been added. SBSDKMedicalCertificateRecognizerResultPatientFieldnow has a new propertyrecognitionConfidence.SBSDKMachineReadableZoneRecognizerResultnow has a new propertyrawString, providing direct access to the raw MRZ string.SBSDKBaseScannerGeneralConfigurationnow has a new propertyminimumTimeWithoutDeviceMotionBeforeDetection.SBSDKUIDocumentScannerViewControllernow has a new propertycurrentSettings, which can be used to persist and restore user-made settings.
- 🚀 Improvements:
- Barcode scanning has been improved with new ML models.
- Stacked RSS barcode scanning has seen substantial improvements.
- All Classic-UI view controllers can now be instantiated from storyboards.
- Patient info box recognition has been improved in the medical certificate scanners.
SBSDKUIDocumentandSBSDKUIPagenow conform to theNSCopyingprotocol, making it easier to create deep copies of their instances.
- 🐞 Bug fixes:
- The Generic Document Recognizer now returns no result if MRZ parsing fails.
- A bug that caused the document scanner to auto-capture a second image shortly after the first image has been fixed.
- A rare crash with the application state observer has been fixed.
- ⚠️ Breaking Changes:
- The additional
SBSDKMRZData.bundlehas been removed as it is no longer needed with the new machine-readable zone recognizer. - The MRZ subspec has been removed from the Cocoapods podspec file. Please make sure to check your pods file!
- The method
initWithParentViewController:parentViewController:parentView:delegateof all Classic-UI components has been changed so that theparentViewControllerand theparentViewmust not be nil. - The method
initWithParentViewController:parentViewController:parentViewof all the Classic-UI components has been changed so that theparentViewmust not be nil. - Property
validationConfidencehas been removed fromSBSDKMedicalCertificateRecognizerDateResult. - The format of date strings in
SBSDKMedicalCertificateRecognizerDateResulthas been changed fromDD.MM.YYtoDD.MM.YYYY. - Property
textLineshas been removed fromSBSDKMachineReadableZoneRecognizerResult. - Class
SBSDKMachineReadableZoneRecognizerTextLinehas been removed. - Property
decodeStacks1Dhas been removed fromSBSDKBarcodeAdditionalParameters. The barcode scanner now handles this automatically.
- The additional
- 🚙 Under the hood:
- Removed third-party library
backward-cpp.
- Removed third-party library
Version 2.1.0 (15 March 2023):
- 🎉 New:
- Added optional delegate method
genericDocumentRecognizerViewControllerShouldRecognize:toSBSDKGenericDocumentRecognizerViewControllerDelegate. - Added optional delegate method
healthInsuranceCardScannerViewControllerShouldRecognize:toSBSDKHealthInsuranceCardScannerViewControllerDelegate. - Added optional delegate method
checkRecognizerViewControllerShouldRecognize:toSBSDKCheckRecognizerViewControllerDelegate. - Added optional delegate methods
barcodeScannerController:didUpdateDetectedBarcodes:,barcodeScannerController:configureCustomCell:forBarcode:withBarcodePolygonPath:, andbarcodeScannerController:customCellFrameForProposedFrame:toSBSDKBarcodeScannerViewControllerDelegate. - Added new property
automaticSelectionEnabledtoSBSDKBarcodeScannerViewController. - Added new RTU-UI component
SBSDKUIFinderDocumentScannerViewControllerwhich enables you to scan a single document page with the help of a viewfinder and bound to a certain aspect ratio. - Added new property
ignoresSafeAreaInsetstoSBSDKFinderView. - Added new property
requiredAspectRatiostoSBSDKUIDocumentScannerBehaviorConfiguration. - Added new properties
oneDTypesandtwoDTypestoSBSDKBarcodeType. - Added new function
-(void)captureDocumentImagetoSBSDKDocumentScannerViewController. - Added properties
dateOfDetectionandagetoSBSDKBarcodeScannerResult.
- Added optional delegate method
- 🚀 Improvements:
- Improved performance and accuracy of machine-readable zone recognition.
- 🐞 Bug fixes:
- Fixed a potential memory issue in the check recognizer.
- Fixed a crash while logging URLs with spaces.
Version 2.0.0 (1 February 2023):
- 🎉 New:
- Added new properties
resultWithConfirmationEnabledanddialogTextFormatinSBSDKUIBarcodeScannerBehaviorConfigurationto display a confirmation dialog before returning the results. - Added new properties
confirmationDialogRetryButtonTitleandconfirmationDialogConfirmButtonTitleinSBSDKUIBarcodeScannerTextConfigurationto configure the text confirmation dialog buttons. - Added new properties
confirmationDialogStyle,confirmationDialogConfirmButtonStyleandconfirmationDialogRetryButtonStyleinSBSDKUIBarcodeScannerUIConfigurationto configure the style of the confirmation dialog buttons. - Added new property
automaticSelectionEnabledtoSBSDKUIBarcodeSelectionOverlayConfiguration. - Added new property
sourceImagetoSBSDKBarcodeScannerResult. - Added new property
autoSnappingDelaytoSBSDKDocumentScannerViewControllerandSBSDKUIDocumentScannerBehaviorConfiguration. - Added new property
videoFrameResolutionof the new typeSBSDKVideoFrameResolutiontoSBSDKBaseScannerGeneralConfiguration.
- Added new properties
- 🚀 Improvements:
- Improved general speed and accuracy when detecting barcodes.
- Improved recognition of stacked RSS Expanded barcodes.
- Improved live check recognition by using UHD resolution by default.
- 🐞 Bug fixes:
- Fixed an issue in
SBSDKPDFPagesExtractorwith QR codes as described in the PDF 1.6 standard. - Fixed a layout problem and log warnings with
SBSDKZoomingImageScrollView. - Fixed a problem where the colors of magnetic and non-magnetic lines in
SBSDKImageEditingViewControllerandSBSDKUICroppingViewControllerdid not update properly.
- Fixed an issue in
- ⚠️ Breaking Changes:
- Removed all deprecated classes:
SBSDKUIWorkflowScannerViewController,SBSDKUINFCPassportReaderViewController,SBSDKNFCPassportReader,SBSDKScannerViewController,SBSDKPayFormScannerand all their related classes. - Removed deprecated properties and functions in
SBSDKMachineReadableZoneRecognizerResult,SBSDKMedicalCertificateRecognizer,SBSDKOpticalTextRecognizer,SBSDKCaptureInfo,SBSDKUIPageandSBSDKGenericTextLineRecognizerConfiguration. - Refactored
SBSDKBarcodeScannerViewControllerDelegate. Please check all your classes that conform toSBSDKBarcodeScannerViewControllerDelegate. - Removed
deviceparameter from the initializer ofSBSDKMedicalCertificateScannerViewControllerto be on par with other classic UI components.
- Removed all deprecated classes:
- 🚙 Under the hood:
- Updated third-party library TFlite to version 2.10.
Version 1.31.0 (3 January 2023):
- 🎉 New:
- Added support for more camera device types in
SBSDKCameraDevice. The new device types areSBSDKCameraDeviceTypeUltraWide,SBSDKCameraDeviceTypeDualWide,SBSDKCameraDeviceTypeDualandSBSDKCameraDeviceTypeTriple. - Added new barcode scanner parameter
decodeStacks1DtoSBSDKBarcodeAdditionalParameters. For stacked RSS barcodes, this should be set to the number of stacks with which the barcode was printed. - Added new type
SBSDKMedicalCertificateRecognizerFormType_21A_BACKtoSBSDKMedicalCertificateRecognizerFormType. - Added new enum values
SBSDKMedicalCertificateRecognizerCheckboxTypeEntitlementToContinuedPaymentYes,SBSDKMedicalCertificateRecognizerCheckboxTypeEntitlementToContinuedPaymentNo,SBSDKMedicalCertificateRecognizerCheckboxTypeSickPayWasClaimedYes,SBSDKMedicalCertificateRecognizerCheckboxTypeSickPayWasClaimedNo,SBSDKMedicalCertificateRecognizerCheckboxTypeSingleParentYesandSBSDKMedicalCertificateRecognizerCheckboxTypeSingleParentNotoSBSDKMedicalCertificateRecognizerCheckboxType. - Added a new text format property configuration in barcodes overlay
SBSDKBarcodeOverlayFormatfor RTU-UI, seeoverlayTextFormatinSBSDKUIBarcodeSelectionOverlayConfigurationand for classical component, seeoverlayTextFormatinSBSDKBarcodeScannerViewController. - Added new property
suppressPolygonLayertoSBSDKDocumentScannerViewController, to hide the polygon layer.
- Added support for more camera device types in
- 🚀 Improvements:
- Improved recognition of inverted barcodes.
- Improved performance and reduced false positive rate for stacked RSS barcodes.
- Improved performance of DataMatrix and QR-codes.
- Improved recognition of Medical certificates in general.
- 🐞 Bug fixes:
- Fixed a potential crash when the app using ScanbotSDK is suspended by the operating system.
- Fixed issues with MRZ on Mexican and US passports.
- Fixed a crash when applying a filter to single channel images.
- Fixed a crash on the detection of Health Insurance cards in some rare cases.
- ⚠️ Breaking Changes:
- Changed the default back-facing camera to the ultra-wide lens on iPhone 14 Pro (including Max) devices, due to close-focusing issues with these devices.
- Renamed
hideDetectionStatusLabeltosuppressDetectionStatusLabelinSBSDKDocumentScannerViewController. - Renamed
SBSDKMedicalCertificateRecognizerCheckboxTypeAccidenttoSBSDKMedicalCertificateRecognizerCheckboxTypeAccidentYes. - Renamed
SBSDKMedicalCertificateRecognizerCheckboxTypeRequiresCaretoSBSDKMedicalCertificateRecognizerCheckboxTypeRequiresCareYes. - Deprecated
SBSDKNFCPassportReader,SBSDKUINFCPassportReaderViewControllerand related classes. Will be removed in the future. - Deprecated
SBSDKPayformScannerand related classes. Will be removed in the future.
- 🚙 Under the hood:
- Added third-party libraries (backward-cpp v1.6 and magic-enum v0.8.1).
Version 1.30.2 (14 Mar 2023):
- 🐞 Bug fixes:
- Fixed a potential crash in OCR initialization when the app name contains spaces
Version 1.30.1 (17 October 2022):
- 🐞 Bug fixes:
- Fixed a crash when navigating to and from scanner view controllers.
Version 1.30.0 (14 October 2022):
- ⚠️ Breaking Changes:
- Xcode 14.0 and higher is now required to build and submit apps using ScanbotSDK!
- Removed bitcode from ScanbotSDK. Bitcode is no longer needed and Apple deprecated it with Xcode 14. Please turn bitcode off for your apps using ScanbotSDK!
- The
SBSDKCameraSession's methodstartSessionis now asynchronous and has a completion handler.
- 🎉 New:
- Added support for IATA and Industrial barcode types.
- Added property
detectionStatusFontSizetoSBSDKDocumentScannerViewControllerwhich allows you to change the font size for the user guidance. - Added property
textHintFontSizetoSBSDKUIDocumentScannerTextConfigurationwhich allows you to change the font size of the text hints. - Added property
initialScanDelaytoSBSDKBaseScannerViewController,SBSDKUIBarcodesBatchScannerBehaviourConfigurationandSBSDKUIBarcodeScannerBehaviourConfiguration, which allows you to define how long the view controller waits (after its appearance) before scanning/recognizing. - Added JSON-support for
SBSDKUICroppingScreenConfiguration. - Added a new function
- (nonnull NSArray<SBSDKBarcodeScannerResult *> *)barcodeScanner:(nonnull SBSDKBarcodeScannerViewController *)controller filterResults:(nonnull NSArray<SBSDKBarcodeScannerResult *> *)codestoSBSDKBarcodeScannerViewControllerDelegatewhich allows you to filter detected barcodes before post-processing them in the final delegate call. - Added properties
displayResultsOverlay,resultsOverlayColorandresultsOverlayTextColortoSBSDKBarcodeScannerViewControllerto display an AR-style overlay highlighting the found recognition result in real-time. - Added properties
selectionOverlayEnabledas well asselectionPolygonColor,selectionTextColor,selectionTextContainerColorand their highlighted counterparts toSBSDKBarcodeScannerViewControllerto display and configure an overlay for selecting and highlighting recognized barcodes. - Added property
selectionOverlayConfigurationof the new classSBSDKUIBarcodeSelectionOverlayConfigurationtoSBSDKUIBarcodeScannerConfigurationandSBSDKUIBarcodesBatchScannerConfiguration. - Added property
applicationStateDidChangeHandlertoSBSDKBaseScannerViewControllerto notify you when the application moved to foreground or background state. - Added property
zoomFactorDidChangeHandlertoSBSDKBaseScannerViewControllerto notify you when the camera zoom factor has changed. - Added property
cameraZoomFactorAbsolutetoSBSDKBaseScannerViewControllerwhich returns the absolute camera's video zoom factor. - Added functions
freezeCameraandunfreezeCameratoSBSDKBaseScannerViewController,SBSDKUIBarcodeScannerViewControllerandSBSDKUIBarcodesBatchScannerViewController.
- 🚀 Improvements:
- Improved MRZ detection on the US passports
- 🐞 Bug fixes:
- Fixed a bug where UPC/EAN extensions were not recognized.
- Fixed a warning with Xcode 14/iOS 16 about the camera session's synchronous start.
- Fixed a bug in
SBSDKImageEditingViewControllerwhere magnetic lines were initially not being recognized.
Version 1.29.0 (1 September 2022):
- 🎉 New:
- Added new class
SBSDKSoundControllerto play a default or custom sound on different actions, e.g. successful code detection. - Added new method
playBleepSoundtoSBSDKBaseScannerViewControllerto play a default bleep sound.
- Added new class
- 🚀 Improvements:
- Improved accuracy and performance of the check recognizer.
- 🐞 Bug fixes:
- Fixed a bug in
SBSDKImageEditingViewControllerwhere the initial document detection failed. - Fixed a bug with inaccurate results of the MRZ recognizer.
- Fixed a bug in
Version 1.28.1 (17 August 2022):
- 🎉 New:
- Added optional delegate method
documentScannerController:didSampleVideoFrame:detectionResult:toSBSDKDocumentScannerViewControllerDelegate, which informs the delegate that the document scanner has processed a video frame.
- Added optional delegate method
- 🐞 Bug fixes:
- Fixed a crash in
SBSDKBarcodeScannerViewController.
- Fixed a crash in
Version 1.28.0 (19 July 2022):
- 🎉 New:
- Added support for JSON in all RTU-UI configurations. All
SBSDKUI...Configurationclasses now have aninitWithJSON:initializer. - Added new parameter
codeDensitytoSBSDKBarcodeAdditionalParameters. - Replaced
autoSnappingEnabledwithautoSnappingModeof the new typeSBSDKAutosnappingModeinSBSDKDocumentScannerViewController. - Added new parameter
forceUserGuidancetoSBSDKUIDocumentScannerBehaviorConfiguration. - Added new parameter
flashButtonHiddento all RTU-UI screens.
- Added support for JSON in all RTU-UI configurations. All
- ⚠️ Breaking Changes:
- Moved the parameters
acceptedMachineCodeTypesandacceptedDocumentTypesfrom the initializers ofSBSDKUIBarcodeScannerViewControllertoSBSDKUIBarcodeScannerBehaviorConfigurationand fromSBSDKUIBarcodesBatchScannerViewControllertoSBSDKUIBarcodesBatchScannerBehaviorConfiguration. - Moved the parameter
recognitionStepfromSBSDKUITextDataScannerViewControllertoSBSDKUITextDataScannerBehaviorConfiguration. - Removed the parameter
accumulatedFramesCountand the corresponding initializers fromSBSDKBarcodeScanner. - Removed the parameter
barcodeAccumulatedFramesCountfromSBSDKBarcodeScannerViewControllerandSBSDKScannerViewController. - Removed parameters
imageOrientationLockandallowedInterfaceOrientationsfrom all RTU-UI configurations. This has been replaced by the combined propertyorientationLockMode. - Removed delegate methods
(void)scannerControllerDidChangeDeviceOrientation:(nonnull SBSDKScannerViewController *)controller to:(UIDeviceOrientation)orientation transform:(CGAffineTransform)transformand(BOOL)scannerController:(nonnull SBSDKScannerViewController *)controller shouldRotateInterfaceForDeviceOrientation:(UIDeviceOrientation)orientation transform:(CGAffineTransform)transformfromSBSDKScannerViewControllerDelegate.
- Moved the parameters
- 🐞 Bug fixes:
- Fixed a crash in the check recognizer.
- 🚙 Under the hood:
- Updated third-party library Boost to version 1.79.0
Version 1.27.1 (7 June 2022):
- 🐞 Bug fixes:
- Fixed
autoSnappingEnabledinSBSDUIDocumentScannerBehaviourConfigurationthat had no effect. - Fixed visibility of the shutter button in
SBSDKUIDocumentScannerViewControllerwhen camera access is denied.
- Fixed