Skip to main content

Changelog | iOS Document Scanner


For additional details about the API, please refer to our API reference documentation.

Version 5.2.0 (26 June 2024):

  • 🎉 New:
    • Added support for german health insurance card front side and european health insurance card to SBSDKGenericDocumentRecognizer, SBSDKGenericDocumentRecognizerViewController and SBSDKUIGenericDocumentViewController.
    • Added support for new barcode types Maxicode, rMQR code, Code 11 and Code 32.
    • Added properties australiaPostCustomerFormat, useIATA2OF5Checksum and useCode11Checksum to SBSDKBarcodeAdditionalParameters and SBSDKUI2BarcodeRecognizerConfiguration.
    • Added support for PDF metadata attributes when rendering PDF files: see new class SBSDKPDFAttributes and new property pdfAttributeson SBSDKPDFRendererOptions.
  • 🚀 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 SBSDKUI2BarcodeScannerViewController by specifying SBSDKUI2ExpectedBarcode.barcodeImageKey for the expected barcodes imageproperty.
  • 🐞 Bug fixes:
    • Fixed a bug in the FindAndPick usecase of SBSDKUI2BarcodeScannerViewController that never showed the expected barcodes title, but always the barcode value.
  • ⚠️ Breaking Changes:
    • Removed enum SBSDKBarcodeDensity.
    • Removed property codeDensity from SBSDKBarcodeAdditionalParameters.
    • Removed enum values validate and decode from SBSDKGS1Handling and replaced them by decodeStructure, decodeFull, validateStructure and validateFull.
    • Removed property sharpnessAcceptanceFactor from SBSDKGenericDocumentRecognizer, SBSDKGenericDocumentRecognizerViewController and SBSDKUIGenericDocumentRecognizerBehaviorConfiguration.
    • Removed property isAccumulatingDocuments from SBSDKGenericDocumentRecognizer and SBSDKGenericDocumentRecognizerViewController.
    • Deprecated SBSDKHealthInsuranceCardRecognizer, SBSDKHealthInsuranceCardScannerViewController and SBSDKUIHealthInsuranceCardScannerViewController.
    • Removed class SBSDKPDFMetadataEditor.

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 SBSDKUI2Color where setting isArgb to true, resulted in a wrong color.

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 SBSDKUI2BarcodeScannerViewController in 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 regularExpressionPattern to SBSDKBarcodeScanner and SBSDKBarcodeScannerViewController to 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 SBSDKHealthInsuranceCardRecognizerParameters to configure the live detection recognizer in SBSDKHealthInsuranceCardRecognizer.
    • Added a new property liveDetectionParameters in SBSDKHealthInsuranceCardRecognizer.
    • Added a new property recognizerParameters in SBSDKHealthInsuranceCardScannerViewController and SBSDKUIHealthInsuranceCardScannerViewController.
    • Added support for new barcode type SBSDKBarcodeTypeMicroPdf417.
    • Added a new class SBSDKBarcodeDocumentConstants which 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 SBSDKBarcodeDocumentRootType which replaces the old SBSDKBarCodeScannerDocumentFormat.
    • Added read-only, Key-Value observable property pages of type [SBSDKDocumentPage] to SBSDKDocument.
    • Added Swift structured concurrency API (async/await) to SBSDKUI2BarcodeScannerViewController, SBSDKUIPDFRenderer, SBSDKPDFRenderer, SBSDKTIFFImageWriter, SBSDKOpticalCharacterRecognizer, SBSDKPDFPagesExtractor and SBSDKTextLayoutRecognizer.
    • Added a new struct SBSDKUI2BarcodeScannerView which is the SwifUI wrapper for SBSDKUI2BarcodeScannerViewController.
    • 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, SBSDKTestData and SBSDKSimulatedCameraMockData.
    • Added isCameraFrozen property to SBSDKBaseScannerViewController.
    • Added property acceptedBrightnessThreshold to SBSDKDocumentScanner, SBSDKDocumentScannerViewController, SBSDKUIDocumentScannerBehaviourConfiguration and SBSDKUIFinderDocumentScannerBehaviorConfiguration.
    • Added property averageBrightness to SBSDKDocumentDetectionMetrics.
    • Added new static properties allFormats, commonFormats, oneDFormats and twoDFormats to SBSDKUI2BarcodeFormat.
    • Added new class SBSDKUI2BarcodeTextLocalization and new property localization to SBSDKUI2BarcodeScannerConfiguration to support localized strings.
    • Added support for parsing of AAMVA Certificate of Title for motor vehicle barcodes.
  • 🚀 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, documentPreviewImage and documentPreviewImageURL of class SBSDKDocumentPage Key-Value observable.
    • SBSDKPDFPagesExtractor functions 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 SBSDKPDFPagesExtractor which returned an empty array of image URLs.
    • Fixed a UI bug in the SBSDKUI2BarcodeScannerViewController.
    • Fixed the documentation of isShutterButtonHidden in SBSDKUIFinderDocumentScannerUIConfiguration to 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 captureJPEGStillImage to captureStillImage in SBSDKBaseScannerViewController (and all subclasses) and SBSDKCameraSession.
    • Renamed function captureOutput(_ output:, didOutput:, from:) to cameraSession(_ session:, didOutput:) in protocol SBSDKCameraSessionDelegate.
    • Replaced the class SBSDKBarcodeDocumentType by SBSDKBarcodeDocumentRootType.
    • Renamed supportedBarcodesTypes(for:) to supportedBarcodeTypes(for:) in the new class SBSDKBarcodeDocumentRootType.
    • Removed the protocol SBSDKBarCodeScannerDocumentFormat and 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 barcodeTypes and acceptedDocumentTypes from SBSDKUI2BarcodeRecognizerConfiguration as they are not needed anymore and we can use barcodeFormats and acceptedDocumentFormats directly.
    • Made the property type in SBSDKUI2BarcodeItem optional.
    • Changed type of property rawBytes from [UInt8] to Data.
  • 🚙 Under the hood:
    • Updated third-party libraries zlib to version 1.3.1, libtiff to 4.6.0, libjpeg-turbo to, 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)
      • SBSDKScanbotBinarizationFilter
      • SBSDKCustomBinarizationFilter
      • SBSDKColorDocumentFilter
      • SBSDKBrightnessFilter
      • SBSDKContrastFilter
      • SBSDKGrayscaleFilter
      • SBSDKWhiteBlackPointFilter
      • SBSDKLegacyFilter (encapsulates the deprecated SBSDKImageFilterType filters)
    • Added support for German residence permit documents to SBSDKGenericDocumentRecognizer. See SBSDKGenericDocumentRootType.
    • Added class SBSDKCheckDocument to represent a document specifically used for checking purposes, inheriting properties and methods from SBSDKGenericDocument.
    • Added the returnCroppedDocumentImage property to SBSDKMedicalCertificateRecognizerConfigurationOptions, SBSDKMedicalCertificateScannerViewController and SBSDKUIMedicalCertificateScannerViewController. This property allows you to control whether the SDK should include a cropped document image in its output or not.
    • Added new property minimumNumberOfSymbols to SBSDKDocumentQualityAnalyzer.
    • Added streaming encryption support to SBSDKStorageCrypting.
    • Added the SBSDKFinderView.Style enum and the property style that defines the drawing styles of the finder view to SBSDKFinderView and SBSDKBaseScannerViewFinderConfiguration.
    • Added the viewFinderStyle property to SBSDKBaseScannerViewController.
    • Added a new property supportedBarcodeTypes in SBSDKBarcodeDocumentType that has the supported barcode types of the barcode document format.
    • Added a new static method supportedBarcodesTypes(for:) in SBSDKBarcodeDocumentType to 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 SBSDKSoundType to configure the default beep sound of SBSDKSoundController.
    • Added Privacy manifest file (PrivacyInfo.xcprivacy) to the SDK.
    • Added new static property maximumRecommendedImageSize to SBSDKDeviceInformation.
    • Added a new property boundingBoxWithImageSize to SBSDKOCRResultBlock to get the bounding box of the receiver in absolute image coordinate system.
    • Added new function resetAccumulation to SBSDKBarcodeScannerViewController.
  • 🚀 Improvements:
    • Improved the installation of custom OCR languages for the Tesseract OCR engine. See SBSDKOCRLanguagesManager.
    • Streaming rendering and encrypting for SBSDKPDFRenderer and SBSDKTIFFImageWriter. Memory footprint during rendering reduced by up to 5x for TIFF. Unlimited PDF rendering.
  • 🐞 Bug fixes:
    • Fixed a bug where the recognizeOnImageStorage:completion: was unable to detect text on imageStorage when the encryption was on.
  • ⚠️ 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 filters SBSDKParametricFilterand its subclasses if possible.
    • Replaced parameters of type SBSDKImageFilterType by SBSDKParametricFilter in most classes.
    • Changed type of binarizationFilter in SBSDKTIFFImageWriterParameters from SBSDKImageFilterType to SBSDKParametricFilter.
    • Renamed SBSDKUIDocument to SBSDKDocument, SBSDKUIPage to SBSDKDocumentPage and SBSDKUIPageFileStorage to SBSDKDocumentPageFileStorage.
    • Refactored SBSDKImageProcessor moving away from the complex asynchronous functions to a straight object oriented approach.
    • Deprecated SBSDKUIBarcodeScannerViewController and SBSDKUIBarcodesBatchScannerViewController along with their related classes. Please consider switching to the new SBSDKUI2BarcodeScannerViewController.
    • Changed isLicenseValid, licenseStatus from functions to variables in Scanbot class.
    • Changed defaultImageStoreEncrypter, defaultPDFEncrypter, shouldShowStatusBarOnScanningScreens, defaultStatusBarStyle from separated getters and setters to variables in ScanbotUI class.
    • Removed printInfo:, printError: and printWarning: from SBSDKLog.
    • Changed setLoggingEnabled: to property isLoggingEnabled in SBSDKLog.
    • Functions logInfo:, logError: and logWarning: in SBSDKLog now accept String as a parameter instead of va_list.
    • Changed all properties of type NSNumber to optional Double in SBSDKImageMetadata.
    • Replaced default initialization initWithParentViewController:containerView by the new static method createWithParentViewController:containerView in SBSDKImageEditingViewController.
    • Changed SBSDKTIFFImageWriter from static class to instantiated class and simplified the interface.
    • Changed all SBSDKBarcodeType global constants to static properties of SBSDKBarcodeType.
    • Refactored SBSDKBarcodeType, it introduces a style naming change for all barcode types, please see the documentation.
    • Moved the global constants SBSDKBarcodeMetadataEANUPCExtensionKey and SBSDKBarcodeMetadataIsGS1MessageKey to SBSDKBarcodeScannerResult as its static properties.
    • Renamed enum SBSDKAutosnappingMode to SBSDKAutoSnappingMode.
    • Renamed enum SBSDKMedicalCertificateRecognizerFormType to SBSDKMedicalCertificateRecognizerForm, please see the documentation for the refactored types.
    • Renamed properties patientInformationRecognitionEnabled and barcodeRecognitionEnabled to isPatientInformationRecognitionEnabled and isBarcodeRecognitionEnabled in SBSDKMedicalCertificateRecognizerConfigurationOptions.
    • Renamed and refactored class SBSDKPDFMetadataProcessor to SBSDKPDFMetadataEditor.
    • Renamed and refactored class SBSDKResourcesManager to SBSDKOCRLanguagesManager.
    • Renamed functions mlConfiguration and legacyConfigurationWithLanguages: in SBSDKOpticalCharacterRecognizerConfiguration to scanbotOCR and tesseractWithLanguages:.
    • Renamed enum values SBSDKOpticalCharacterRecognitionModeLegacy to SBSDKOpticalCharacterRecognitionModeTesseract and SBSDKOpticalCharacterRecognitionModeML to SBSDKOpticalCharacterRecognitionModeScanbotOCR.
    • Renamed the function recognizeFromStillImage, recognizeFromVideoFrameImage, recognizeFromSampleBuffer:orientation:, recognizeFromSampleBuffer:searchInRect:orientation: to recognizeOnStillImage, recognizeOnVideoFrameImage, recognizeOnSampleBuffer:orientation:, recognizeOnSampleBuffer:searchInRect:orientation: in SBSDKHealthInsuranceCardRecognizer.
    • Renamed the static factory functions in SBSDKUIHealthInsuranceCardScannerViewController to fix their ugly signatures.
    • Renamed the function recognizeFromSampleBufferto recognizeOnSampleBuffer in SBSDKGenericTextLineRecognizer.
    • Renamed the static factory functions in SBSDKUITextDataScannerViewController to fix their ugly signatures.
    • Changed all SBSDKBarcodeDocumentType global constants to static properties of SBSDKBarcodeDocumentType.
    • Changed all SBSDKGenericDocument global constants to static properties of SBSDKGenericDocument and SBSDKCheckDocument.
    • Replaced the default value of acceptedBarcodeTypes with SBSDKBarcodeType.commonTypes, this property will no longer accept nil anywhere, if it's set to an empty array, this will automatically be translated to SBSDKBarcodeType.commonTypes.
    • The property acceptedDocumentTypes of SBSDKBarcodeScanner and SBSDKBarcodeScannerViewController can no longer be set to nil.
    • Renamed the property optional1Field in SBSDKMachineReadableZoneRecognizerResult to visaOptionalField.
    • Renamed enum value SBSDKMachineReadableZoneRecognizerFieldNameOptional1 to SBSDKMachineReadableZoneRecognizerFieldNameVisaOptional.
  • 🚙 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 maximumRecommendedImageSize to SBSDKDeviceInformation.
  • 🐞 Bug fixes:
    • Fixed a bug in SBSDKOpticalCharacterRecognizer where recognizeText: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 SBSDKUICroppingViewController didn't update on dark mode change, when set to UIColor.systemBackground.

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 imageSizeLimit to SBSDKDocumentQualityAnalyzer.
  • 🚀 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 enableGS1Decoding has been replaced by the enum SBSDKGS1Handling in SBSDKBarcodeAdditionalParameters.
    • GS1 codes are now handled differently for various barcode types. Using the default option PARSE will give the same result as before for all barcode types, except of RSS_EXPANDED. Previously, for RSS_EXPANDED, the result was inconsistently returned with parentheses. Now, to get results with parentheses for all barcode types, it is needed to choose the option DECODE.

Version 4.1.0 (24 November 2023):

  • 🎉 New:
    • Added a new class SBSDKDocumentQualityAnalyzer.
    • Added support for 6 new barcode types to the barcode scanner:
      • SBSDKBarcodeTypeUSPSIntelligentMail
      • SBSDKBarcodeTypeRoyalMail
      • SBSDKBarcodeTypeJapanPost
      • SBSDKBarcodeTypeRoyalTNTPost
      • SBSDKBarcodeTypeAustraliaPost
      • SBSDKBarcodeTypeDatabarLimited
  • 🐞 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 viewFinderEnabled was disabled in SBSDKUIBarcodeScannerViewController and SBSDKUIBarcodesBatchScannerViewController.
    • Fixed a wrong polygon color in RTU-UI barcode scanner tracking overlay.
  • ⚠️ Breaking Changes:
    • The class SBSDKBlurrinessEstimator has been removed and replaced by the far superior SBSDKDocumentQualityAnalyzer.

Version 4.0.0 (18 October 2023):

  • 🎉 New:
    • Added new classes SBSDKOpticalCharacterRecognizer, SBSDKOpticalCharacterRecognizerConfiguration and SBSDKTextLayoutRecognizer.
    • Added new method widestAvailableBackFacingCamera to SBSDKCameraDevice.
    • Added new method setupDefaultLicenseFailureHandlerWithCompletion: to the Scanbot class.
  • 🚀 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 photoQualityPriorization to photoQualityPrioritization everywhere in the SDK.
    • Removed SBSDKImageMetricsAnalyzer, SBSDKImageChannelMetrics and UIImage+SBSDKMetricsAnalysis.
    • Refactored all OCR and PDF rendering classes to incorporate the new OCR engine and simplify the API:
      • Removed SBSDKOpticalTextRecognizer and SBSDKTextOrientationRecognizer.
      • Renamed SBSDKPageOrientation to SBSDKTextOrientation.
      • Renamed property pageAnalyzerResult to textLayoutRecognizerResult in SBSDKOCRPage.
      • Replaced boundingBoxproperty by polygon in SBSDKOCRResultBlock.
      • Changed function signatures of methods in SBSDKPDFRenderer and SBSDKUIPDFRenderer.
      • Added new values and removed unused values in SBSDKPDFRendererPageSize.
    • Changed default value of the finder aspect ratio in SBSDKUIFinderDocumentScannerUIConfiguration to DIN A4 portrait.
  • 🚙 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 extensionFilter to all barcode scanning APIs (SBSDKBarcodeScanner, SBSDKBarcodeScannerViewController, SBSDKBarcodeScanAndCountViewController, SBSDKUIBarcodeScannerBehaviorConfiguration and SBSDKUIBarcodesBatchScannerBehaviorConfiguration).
    • Added property extension to SBSDKBarcodeScannerResult.
    • Added new Scanner SBSDKVehicleIdentificationNumberScanner which scans and validates a Vehicle Identification Number.
    • Added new Classic UI component SBSDKVINScannerViewController which enables you to scan Vehicle Identification Numbers.
    • Added new RTU-UI component SBSDKUIVINScannerViewController which enables you to scan Vehicle Identification Numbers.
    • Added new class SBSDKScanAndCountPolygonStyle.
    • Added new delegate function (nonnull SBSDKScanAndCountPolygonStyle *)barcodeScanAndCountController:(nonnull SBSDKBarcodeScanAndCountViewController *)controller polygonStyleForBarcode:(nonnull SBSDKBarcodeScannerResult *)code to SBSDKBarcodeScanAndCountViewControllerDelegate.
    • Added trackingOverlayController property to SBSDKBarcodeScannerViewController.
    • 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 a SBSDKBarcodeTrackingOverlayController.
      • 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 SBSDKDeviceInformation to get the total, used and unused disk space on the device.
  • 🚀 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 flashEnabled was not working properly in SBSDKUIHealthInsuranceCardScannerViewController.
    • Fixed a crash when denying camera permission.
    • Fixed a bug with magnetic lines in SBSDKImageEditingViewController and SBSDKUICroppingViewController.
    • Fixed an issue where the MRZ Scanner was not recognizing the new standard of Belgian ID Cards.
    • Fixed the broken default zoom level in SBSDKGenericTextLineRecognizerViewController and SBSDKUITextDataScannerViewController.
  • ⚠️ Breaking Changes:
    • Due to a Swift compiler naming collision, the class ScanbotSDK has been renamed to Scanbot.
    • Renamed the class ScanbotSDKUI to ScanbotUI for consistency.
    • Removed barcode type SBSDKBarcodeTypeUnknown.
    • Removed property autoCancelTimeout from SBSDKUIMRZScannerBehaviorConfiguration.
    • Removed textRecognitionLanguages and textFilterStrategy from SBSDKGenericTextLineRecognizerViewController.
    • Removed textFilterStrategy from SBSDKUITextDataScannerStep.
    • Removed supportedLanguages from SBSDKUITextDataScannerBehaviorConfiguration.
    • Removed qrBarcodeDetectionViewController:selectionOverlayTextFor: from SBSDKUIBarcodeScannerViewController.
    • Renamed selectionOverlayEnabled to isTrackingOverlayEnabled in SBSDKBarcodeScannerViewController.
    • Renamed SBSDKUIBarcodeSelectionOverlayConfiguration to SBSDKUIBarcodeTrackingOverlayConfiguration
    • Renamed selectionOverlayConfiguration to trackingOverlayConfiguration in SBSDKUIBarcodeScannerConfiguration and SBSDKUIBarcodesBatchScannerConfiguration.
    • Replaced the properties polygonEnabled, polygonColor, polygonFillColor and polygonLineWidth by the property polygonStyle in SBSDKBarcodeScanAndCountViewController.

Version 2.3.0 (22 June 2023):

  • 🎉 New:
    • Added support for the Micro QR barcode type.
    • Added new property viewFinderEnabled to SBSDKUIBarcodeScannerBehaviorConfiguration and SBSDKUIBarcodesBatchScannerBehaviorConfiguration.
    • Added new properties confirmationDialogTitle and confirmationDialogMessage to SBSDKUIBarcodeScannerTextConfiguration.
    • Machine-readable-zone results have been refactored (please see Breaking Changes):
      • Added new properties genericDocument, travelDocumentTypeVariantField and dateOfIssueField to SBSDKMachineReadableZoneRecognizerResult.
      • Added new value SBSDKMachineReadableZoneRecognizerResultDocumentTypeCrewMemberCertificate to the SBSDKMachineReadableZoneRecognizerResultDocumentType enum.
      • Added new values SBSDKMachineReadableZoneRecognizerFieldNameDateOfIssuance and SBSDKMachineReadableZoneRecognizerFieldNameTravelDocumentTypeVariant to the SBSDKMachineReadableZoneRecognizerFieldName enum.
    • Added new Classic UI component SBSDKBarcodeScanAndCountViewController which enables you to scan barcodes multiple times using the shutter button.
    • Added new function -(void)flipHorizontally:(CGSize)size to SBSDKPolygon.
    • Added new function -(BOOL)isMirrored to SBSDKCameraDevice.
  • 🚀 Improvements:
    • Changed the default value for the documentType property in SBSDKUIGenericDocumentRecognizerBehaviorConfiguration to a document type that contains all kinds of SBSDKGenericDocumentRootType. Simply said, by default SBSDKUIGenericDocumentRecognizerViewController now 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.
  • 🐞 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 SBSDKBarcodeTypeUnknown as accepted barcode type.
    • Fixed a bug in all Classic UI and RTU-UI components where the recognitionEnabled property might not have worked as intended.
    • Fixed a bug where ocrResolutionLimit was not being used in SBSDKUITextDataScannerViewController from JSON.
    • Fixed a bug where the polygon should be mirrored when using the front camera in SBSDKDocumentScannerViewController and SBSDKUIDocumentScannerViewController.
    • Fixed a bug where automaticSelectionEnabled was not working properly in SBSDKUIBarcodesBatchScannerViewController.
  • ⚠️ 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, SBSDKUIMultipleObjectScannerViewController and its configuration classes.
    • Removed class SBSDKBaseCameraViewController.
    • Renamed the property acceptedMachineCodeTypes to acceptedBarcodeTypes in SBSDKUIBarcodeScannerBehaviorConfiguration and SBSDKUIBarcodesBatchScannerBehaviorConfiguration.
    • 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 SBSDKMachineReadableZoneRecognizerFieldNameDiscreetIssuingStateOrOrganization from the SBSDKMachineReadableZoneRecognizerFieldName enum.
      • Removed value SBSDKMachineReadableZoneRecognizerResultDocumentTypeTravelDocument from the SBSDKMachineReadableZoneRecognizerResultDocumentType enum.
      • Removed property checkDigitCharacter from SBSDKMachineReadableZoneRecognizerResultCheckDigit.
      • Removed property discreetIssuingStateOrOrganizationField from SBSDKMachineReadableZoneRecognizerResult.
      • Removed property checkDigitsCount from SBSDKMachineReadableZoneRecognizerResult.

Version 2.2.1 (1 June 2023):

  • 🎉 New:
    • Added properties maxNumberOfAccumulatedResults and requiredNumberOfEqualAccumulatedResults to SBSDKMachineReadableZoneRecognizer, SBSDKMRZScannerViewController and SBSDKUIMRZScannerBehaviorConfiguration.
  • 🚀 Improvements:
    • New configurable machine-readable-zone result accumulator that lets you fine-tune the strictness of the recognizer.
  • ⚠️ Breaking Changes:
    • Removed property resultAccumulationCount from SBSDKMachineReadableZoneRecognizer, SBSDKMRZScannerViewController and SBSDKUIMRZScannerBehaviorConfiguration.

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 init and attach: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.
    • SBSDKMedicalCertificateRecognizerResultPatientField now has a new property recognitionConfidence.
    • SBSDKMachineReadableZoneRecognizerResult now has a new property rawString, providing direct access to the raw MRZ string.
    • SBSDKBaseScannerGeneralConfiguration now has a new property minimumTimeWithoutDeviceMotionBeforeDetection.
    • SBSDKUIDocumentScannerViewController now has a new property currentSettings, 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.
    • SBSDKUIDocument and SBSDKUIPage now conform to the NSCopying protocol, 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.bundle has 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:delegate of all Classic-UI components has been changed so that the parentViewController and the parentView must not be nil.
    • The method initWithParentViewController:parentViewController:parentView of all the Classic-UI components has been changed so that the parentView must not be nil.
    • Property validationConfidence has been removed from SBSDKMedicalCertificateRecognizerDateResult.
    • The format of date strings in SBSDKMedicalCertificateRecognizerDateResult has been changed from DD.MM.YY to DD.MM.YYYY.
    • Property textLines has been removed from SBSDKMachineReadableZoneRecognizerResult.
    • Class SBSDKMachineReadableZoneRecognizerTextLine has been removed.
    • Property decodeStacks1D has been removed from SBSDKBarcodeAdditionalParameters. The barcode scanner now handles this automatically.
  • 🚙 Under the hood:
    • Removed third-party library backward-cpp.

Version 2.1.0 (15 March 2023):

  • 🎉 New:
    • Added optional delegate method genericDocumentRecognizerViewControllerShouldRecognize: to SBSDKGenericDocumentRecognizerViewControllerDelegate.
    • Added optional delegate method healthInsuranceCardScannerViewControllerShouldRecognize: to SBSDKHealthInsuranceCardScannerViewControllerDelegate.
    • Added optional delegate method checkRecognizerViewControllerShouldRecognize: to SBSDKCheckRecognizerViewControllerDelegate.
    • Added optional delegate methods barcodeScannerController:didUpdateDetectedBarcodes:, barcodeScannerController:configureCustomCell:forBarcode:withBarcodePolygonPath:, and barcodeScannerController:customCellFrameForProposedFrame: to SBSDKBarcodeScannerViewControllerDelegate.
    • Added new property automaticSelectionEnabled to SBSDKBarcodeScannerViewController.
    • Added new RTU-UI component SBSDKUIFinderDocumentScannerViewController which enables you to scan a single document page with the help of a viewfinder and bound to a certain aspect ratio.
    • Added new property ignoresSafeAreaInsets to SBSDKFinderView.
    • Added new property requiredAspectRatios to SBSDKUIDocumentScannerBehaviorConfiguration.
    • Added new properties oneDTypes and twoDTypes to SBSDKBarcodeType.
    • Added new function -(void)captureDocumentImage to SBSDKDocumentScannerViewController.
    • Added properties dateOfDetection and age to SBSDKBarcodeScannerResult.
  • 🚀 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 resultWithConfirmationEnabled and dialogTextFormat in SBSDKUIBarcodeScannerBehaviorConfiguration to display a confirmation dialog before returning the results.
    • Added new properties confirmationDialogRetryButtonTitle and confirmationDialogConfirmButtonTitle in SBSDKUIBarcodeScannerTextConfiguration to configure the text confirmation dialog buttons.
    • Added new properties confirmationDialogStyle, confirmationDialogConfirmButtonStyle and confirmationDialogRetryButtonStyle in SBSDKUIBarcodeScannerUIConfiguration to configure the style of the confirmation dialog buttons.
    • Added new property automaticSelectionEnabled to SBSDKUIBarcodeSelectionOverlayConfiguration.
    • Added new property sourceImage to SBSDKBarcodeScannerResult.
    • Added new property autoSnappingDelay to SBSDKDocumentScannerViewController and SBSDKUIDocumentScannerBehaviorConfiguration.
    • Added new property videoFrameResolution of the new type SBSDKVideoFrameResolution to SBSDKBaseScannerGeneralConfiguration.
  • 🚀 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 SBSDKPDFPagesExtractor with 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 SBSDKImageEditingViewController and SBSDKUICroppingViewController did not update properly.
  • ⚠️ Breaking Changes:
    • Removed all deprecated classes: SBSDKUIWorkflowScannerViewController, SBSDKUINFCPassportReaderViewController, SBSDKNFCPassportReader, SBSDKScannerViewController, SBSDKPayFormScanner and all their related classes.
    • Removed deprecated properties and functions in SBSDKMachineReadableZoneRecognizerResult, SBSDKMedicalCertificateRecognizer, SBSDKOpticalTextRecognizer, SBSDKCaptureInfo, SBSDKUIPage and SBSDKGenericTextLineRecognizerConfiguration.
    • Refactored SBSDKBarcodeScannerViewControllerDelegate. Please check all your classes that conform to SBSDKBarcodeScannerViewControllerDelegate.
    • Removed device parameter from the initializer of SBSDKMedicalCertificateScannerViewController to be on par with other classic UI components.
  • 🚙 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 are SBSDKCameraDeviceTypeUltraWide, SBSDKCameraDeviceTypeDualWide, SBSDKCameraDeviceTypeDual and SBSDKCameraDeviceTypeTriple.
    • Added new barcode scanner parameter decodeStacks1D to SBSDKBarcodeAdditionalParameters. For stacked RSS barcodes, this should be set to the number of stacks with which the barcode was printed.
    • Added new type SBSDKMedicalCertificateRecognizerFormType_21A_BACK to SBSDKMedicalCertificateRecognizerFormType.
    • Added new enum values SBSDKMedicalCertificateRecognizerCheckboxTypeEntitlementToContinuedPaymentYes, SBSDKMedicalCertificateRecognizerCheckboxTypeEntitlementToContinuedPaymentNo, SBSDKMedicalCertificateRecognizerCheckboxTypeSickPayWasClaimedYes, SBSDKMedicalCertificateRecognizerCheckboxTypeSickPayWasClaimedNo, SBSDKMedicalCertificateRecognizerCheckboxTypeSingleParentYes and SBSDKMedicalCertificateRecognizerCheckboxTypeSingleParentNo to SBSDKMedicalCertificateRecognizerCheckboxType.
    • Added a new text format property configuration in barcodes overlay SBSDKBarcodeOverlayFormat for RTU-UI, see overlayTextFormat in SBSDKUIBarcodeSelectionOverlayConfiguration and for classical component, see overlayTextFormat in SBSDKBarcodeScannerViewController.
    • Added new property suppressPolygonLayer to SBSDKDocumentScannerViewController, to hide the polygon layer.
  • 🚀 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 hideDetectionStatusLabel to suppressDetectionStatusLabel in SBSDKDocumentScannerViewController.
    • Renamed SBSDKMedicalCertificateRecognizerCheckboxTypeAccident to SBSDKMedicalCertificateRecognizerCheckboxTypeAccidentYes.
    • Renamed SBSDKMedicalCertificateRecognizerCheckboxTypeRequiresCare to SBSDKMedicalCertificateRecognizerCheckboxTypeRequiresCareYes.
    • Deprecated SBSDKNFCPassportReader, SBSDKUINFCPassportReaderViewController and related classes. Will be removed in the future.
    • Deprecated SBSDKPayformScanner and 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 method startSession is now asynchronous and has a completion handler.
  • 🎉 New:
    • Added support for IATA and Industrial barcode types.
    • Added property detectionStatusFontSize to SBSDKDocumentScannerViewController which allows you to change the font size for the user guidance.
    • Added property textHintFontSize to SBSDKUIDocumentScannerTextConfiguration which allows you to change the font size of the text hints.
    • Added property initialScanDelay to SBSDKBaseScannerViewController, SBSDKUIBarcodesBatchScannerBehaviourConfiguration and SBSDKUIBarcodeScannerBehaviourConfiguration, 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 *> *)codes to SBSDKBarcodeScannerViewControllerDelegate which allows you to filter detected barcodes before post-processing them in the final delegate call.
    • Added properties displayResultsOverlay, resultsOverlayColor and resultsOverlayTextColor to SBSDKBarcodeScannerViewController to display an AR-style overlay highlighting the found recognition result in real-time.
    • Added properties selectionOverlayEnabled as well as selectionPolygonColor, selectionTextColor, selectionTextContainerColor and their highlighted counterparts to SBSDKBarcodeScannerViewController to display and configure an overlay for selecting and highlighting recognized barcodes.
    • Added property selectionOverlayConfiguration of the new class SBSDKUIBarcodeSelectionOverlayConfiguration to SBSDKUIBarcodeScannerConfiguration and SBSDKUIBarcodesBatchScannerConfiguration.
    • Added property applicationStateDidChangeHandler to SBSDKBaseScannerViewController to notify you when the application moved to foreground or background state.
    • Added property zoomFactorDidChangeHandler to SBSDKBaseScannerViewController to notify you when the camera zoom factor has changed.
    • Added property cameraZoomFactorAbsolute to SBSDKBaseScannerViewController which returns the absolute camera's video zoom factor.
    • Added functions freezeCamera and unfreezeCamera to SBSDKBaseScannerViewController, SBSDKUIBarcodeScannerViewController and SBSDKUIBarcodesBatchScannerViewController.
  • 🚀 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 SBSDKImageEditingViewController where magnetic lines were initially not being recognized.

Version 1.29.0 (1 September 2022):

  • 🎉 New:
    • Added new class SBSDKSoundController to play a default or custom sound on different actions, e.g. successful code detection.
    • Added new method playBleepSound to SBSDKBaseScannerViewController to play a default bleep sound.
  • 🚀 Improvements:
    • Improved accuracy and performance of the check recognizer.
  • 🐞 Bug fixes:
    • Fixed a bug in SBSDKImageEditingViewController where the initial document detection failed.
    • Fixed a bug with inaccurate results of the MRZ recognizer.

Version 1.28.1 (17 August 2022):

  • 🎉 New:
    • Added optional delegate method documentScannerController:didSampleVideoFrame:detectionResult: to SBSDKDocumentScannerViewControllerDelegate, which informs the delegate that the document scanner has processed a video frame.
  • 🐞 Bug fixes:
    • Fixed a crash in SBSDKBarcodeScannerViewController.

Version 1.28.0 (19 July 2022):

  • 🎉 New:
    • Added support for JSON in all RTU-UI configurations. All SBSDKUI...Configuration classes now have an initWithJSON: initializer.
    • Added new parameter codeDensity to SBSDKBarcodeAdditionalParameters.
    • Replaced autoSnappingEnabled with autoSnappingMode of the new type SBSDKAutosnappingMode in SBSDKDocumentScannerViewController.
    • Added new parameter forceUserGuidance to SBSDKUIDocumentScannerBehaviorConfiguration.
    • Added new parameter flashButtonHidden to all RTU-UI screens.
  • ⚠️ Breaking Changes:
    • Moved the parameters acceptedMachineCodeTypes and acceptedDocumentTypes from the initializers of SBSDKUIBarcodeScannerViewController to SBSDKUIBarcodeScannerBehaviorConfiguration and from SBSDKUIBarcodesBatchScannerViewController to SBSDKUIBarcodesBatchScannerBehaviorConfiguration.
    • Moved the parameter recognitionStep from SBSDKUITextDataScannerViewController to SBSDKUITextDataScannerBehaviorConfiguration.
    • Removed the parameter accumulatedFramesCount and the corresponding initializers from SBSDKBarcodeScanner.
    • Removed the parameter barcodeAccumulatedFramesCount from SBSDKBarcodeScannerViewController and SBSDKScannerViewController.
    • Removed parameters imageOrientationLock and allowedInterfaceOrientations from all RTU-UI configurations. This has been replaced by the combined property orientationLockMode.
    • Removed delegate methods (void)scannerControllerDidChangeDeviceOrientation:(nonnull SBSDKScannerViewController *)controller to:(UIDeviceOrientation)orientation transform:(CGAffineTransform)transform and (BOOL)scannerController:(nonnull SBSDKScannerViewController *)controller shouldRotateInterfaceForDeviceOrientation:(UIDeviceOrientation)orientation transform:(CGAffineTransform)transform from SBSDKScannerViewControllerDelegate.
  • 🐞 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 autoSnappingEnabled in SBSDUIDocumentScannerBehaviourConfiguration that had no effect.
    • Fixed visibility of the shutter button in SBSDKUIDocumentScannerViewController when camera access is denied.

Version 1.27.0 (3 June 2022):

  • 🎉 New:
    • Classic UI components:
      • Added a new base scanner view controller SBSDKBaseScannerViewController which provides a lot of base functionality like zooming, viewfinder, energy management, focus locking, flash light and flash animation, automatic interruption of detection on disappearance or when presenting view controllers and more.
      • Made all Classic UI scanner view controllers subclasses of the new SBSDKBaseScannerViewController.
      • Added new component SBSDKCheckRecognizerViewController for scanning checks.
      • Added new component SBSDKHealthInsuranceScannerViewController for scanning health insurance cards.
      • Added new component SBSDKMRZScannerViewController for scanning machine-readable zones.
      • Added new component SBSDKDocumentScannerViewController for scanning documents. This is a simpler version of the soon to be deprecated SBSDKScannerViewController.
    • RTU-UI components:
      • Refactored all RTU-UI components to make use of the new Classic UI components under the hood.
      • Added new component SBSDKUICheckRecognizerViewController for scanning checks.
  • 🚀 Improvements:
    • Beta: An improved Check Recognizer that now supports further bank layouts from different countries (e.g Kuwait, India, Australia). The recognizer is available as Classic and RTU UI components. Please note that this feature is still in beta. Furthermore, due to the renaming of the feature from "Cheque" to "Check", some classes and API methods have been renamed as well as new classes have been introduced. For more details please see the Breaking Changes.
    • Improved 1D barcode recognition
    • Improved generic document recognizer field validation
  • 🐞 Bug fixes:
    • Driver's license number is being validated now by its checksum.
    • Medical certificates of type 1C are no longer recognized as 1A.
  • ⚠️ Breaking Changes:
    • SBSDKLicensePlateScannerViewController
      • removed property showViewFinder, please use viewFinderConfiguration.viewFinderEnabled.
      • removed property viewFinderBackgroundColor, please use viewFinderConfiguration.backgroundColor.
      • removed property viewFinderLineColor, please use viewFinderConfiguration.lineColor.
      • removed property viewFinderLineWidth, please use viewFinderConfiguration.lineWidth.
      • removed property viewFinderMinimumInset, please use viewFinderConfiguration.minimumInset.
    • SBSDKBarcodeScannerViewController
      • replaced designated initializer with - (nullable instancetype)initWithParentViewController:(nonnull UIViewController *)parentViewController parentView:(nullable UIView *)containerView delegate:(nullable id<SBSDKBarcodeScannerViewControllerDelegate>)delegate.
      • In SBSDKBarcodeScannerViewControllerDelegate the function - (void)barcodeScannerController:(nonnull SBSDKBarcodeScannerViewController *)controller didDetectBarcodes:(nonnull NSArray<SBSDKBarcodeScannerResult *> *)codes; is renamed to - (void)barcodeScannerController:(nonnull SBSDKBarcodeScannerViewController *)controller didDetectBarcodes:(nonnull NSArray<SBSDKBarcodeScannerResult *> *)codes onImage:(nonnull UIImage *)image;.
      • removed property HUDView, please use overlayView.
      • removed property cameraZoomRange, please use zoomConfiguration.zoomRange.
      • removed property cameraZoomFactor, please use zoomConfiguration.initialZoomFactor.
      • removed property doubleTapToZoomEnabled, please use zoomConfiguration.doubleTapToZoomEnabled.
      • removed property pinchToZoomEnabled, please use zoomConfiguration.pinchToZoomEnabled.
      • removed property shouldUseFinderFrame.
      • removed property finderAspectRatio, please use viewFinderConfiguration.aspectRatio.
      • removed property finderMinimumInset, please use viewFinderConfiguration.minimumInset.
      • removed property previewBackgroundColor.
      • removed property viewFinderBackgroundColor, please use viewFinderConfiguration.backgroundColor.
      • removed property viewFinderLineColor, please use viewFinderConfiguration.lineColor.
      • removed property viewFinderLineWidth, please use viewFinderConfiguration.lineWidth.
    • SBSDKGenericTextLineRecognizerViewController
      • removed property finderMinimumInset, please use viewFinderConfiguration.minimumInset.
      • removed property viewFinderBackgroundColor, please use viewFinderConfiguration.backgroundColor.
      • removed property viewFinderLineColor, please use viewFinderConfiguration.lineColor.
      • removed property viewFinderLineWidth, please use viewFinderConfiguration.lineWidth.
      • removed property doubleTapToZoomEnabled, please use zoomConfiguration.doubleTapToZoomEnabled.
      • removed property shouldAnimateZooming, please use zoomConfiguration.shouldAnimateZooming.
      • removed property deviceMotionRecognitionDelay.
      • removed function toggleZoom.
      • removed function zoomIn.
      • removed function zoomOut.
    • SBSDKGenericDocumentRecognizerViewController
      • removed property showViewFinder, please use viewFinderConfiguration.viewFinderEnabled.
      • removed property viewFinderBackgroundColor, please use viewFinderConfiguration.backgroundColor.
      • removed property viewFinderLineColor, please use viewFinderConfiguration.lineColor.
      • removed property viewFinderLineWidth, please use viewFinderConfiguration.lineWidth.
      • removed property finderMinimumInset, please use viewFinderConfiguration.minimumInset.
    • Replaced SBSDKFinderLayer with SBSDKFinderView.
    • Deprecated SBSBDKScannerViewController in favor of SBSDKDocumentScannerViewController.
    • Deprecated workflows, namely SBSDKUIWorkflowScannerViewController, its configurations and SBSDKUIWorkflowStep, these will be removed from the SDK soon as they are not commonly used by our customers.
    • Removed the deprecated classes SBSDKIDCardRecognizer, SBSDKIDCardScannerViewController, SBSDKUIIDCardScannerViewController and their related classes, please use the SBSDKGenericDocument-based API.
    • Renamed SBSDKUIVideoContentMode to SBSDKVideoContentMode.

Version 1.26.2 (5 May 2022):

  • 🎉 New:
    • Added asynchronous, cancellable and progress-observable functions to SBSDKPDFPagesExtractor.
  • 🐞 Bug fixes:
    • Fixed a bug with the viewfinder rectangle not being calculated correctly in landscape mode in SBSDKBarcodeScannerViewController.
  • 🚀 Improvements:
    • Improved loading performance of SBSDKImageEditingViewController by executing the document detection concurrently. You can specify the queue for the document detection by setting the property processingQueue before assigning an image.
    • Improved memory footprint of SBSDKPDFPagesExtractor.

Version 1.26.0 (7 April 2022):

  • 🚀 Improvements:
    • Major improvements on barcode detection.
    • Improved barcode image cropping.
    • Changed default OCR language in the health insurance card scanner to German for better recognition of umlauts.
  • 🎉 New:
    • Added a new property topAndBottomButtonsSwapped to SBSDKUICroppingScreenUIConfiguration which enables the swapping of the top and bottom buttons in SBSDKUICroppingViewController.
    • Added the SBSDKUIDialogFactory class to create iOS system-style alerts with extended functionality, e.g. displaying images.
    • Added the function tiffDataForImages:parameters: to get the TIFF image data in SBSDKTIFFImageWriter.
    • Added new checkbox types to the medical certificate recognizer, see SBSDKMedicalCertificateRecognizerCheckboxType.
  • ⚠️ Breaking Changes:
    • Renamed pageCounterAccessibilityHint to pageCounterButtonAccessibilityHint in SBSDKUIDocumentScannerAccessibilityConfiguration.
  • 🚙 Under the hood:
    • Since Swift is now module-stable, internal support for Swift was added. This allows us to implement future features using Swift with its extended robustness. Of course the Objective-C interoperability will still be maintained.
    • Updated third-party library Boost to version 1.75.0
    • Updated third-party library BoringSSL to commit 8f5eb80b
    • Updated third-party library JSON for Modern C++ to version 3.10.2
    • Updated third-party library Leptonica to version 1.82.0
    • Updated third-party library libjpeg-turbo to version 2.1.2
    • Updated third-party library libpng to version 1.6.36
    • Updated third-party library libtiff to version 4.2.0
    • Updated third-party library Nameof C++ to version 0.10.1
    • Updated third-party library OpenCV to version 4.5.3
    • Updated third-party library OpenSSL to version 1.1.1i
    • Updated third-party library Skia to commit 47b4b19
    • Updated third-party library spdlog to version 1.9.2
    • Updated third-party library Tensorflow to version 2.6.1
    • Updated third-party library Tesseract to version 4.1.3
    • Updated third-party library XNNPACK to commit fb8d1f1b2
    • Updated third-party library xsimd to commit 3d17850e
    • Updated third-party library xtensor to commit be35a267
    • Updated third-party library xtl to commit e0f00666
    • Updated third-party library ZXing-C++ to version 1.1.0
    • Updated third-party library G8Tesseract to commit bfc86ac

Version 1.25.1 (1 March 2022):

  • 🐞 Bug fixes:
    • Fixed a bug with wrong camera preview orientation when starting SBSDKBarcodeScannerViewControllerand SBSDKUIBarcodeScannerViewController in landscape orientation.

Version 1.25.0 (17 February 2022):

  • 🎉 New:
    • Added the ability to read and write PDF metadata from and to PDF files, see SBSDKPDFMetadataProcessor.
    • Added support for the GS1 barcode document format, see SBSDKGS1DocumentFormat.
    • Added the SBSDKBarcodeDocumentParser class which parses any given string for supported barcode document types.
    • Added new Classic UI component SBSDKMedicalCertificateScannerViewController and RTU-UI component SBSDKUIMedicalCertificateScannerViewController to scan medical certificates.
    • Added the ability to exclude certain fields from the generic document scanner's recognition process, see the excludedFieldTypes property in SBSDKGenericDocumentRecognizer, SBSDKGenericDocumentRecognizerViewController and SBSDKUIGenericDocumentRecognizerBehaviorConfiguration. excludedFieldTypes is an array of normalized names for the document field types, e.g. SBSDKGenericDocumentDeIdCardFrontPINFieldNormalizedName. The full list of supported field types can be found in SBSDKGenericDocumentsModel.h.
  • 🚀 Improvements:
    • Improved validation for SBSDKGenericDocumentField. Fields that have validationStatus SBSDKGenericDocumentFieldValidationStatusInvalid will not be shown in the list of fields of SBSDKGenericDocument.
  • ⚠️ Breaking Changes:
    • Renamed all disability certificate recognition APIs from SBSDKDisabilityCertificate... to SBSDKMedicalCertificate...
    • Deprecated SBSDKUIScanDisabilityCertificateWorkflowStep.
  • 🐞 Bug fixes:
    • Fixed a crash when setting pageCounterButtonAccessibilityLabel in SBSDKUIDocumentScannerAccessibilityConfiguration to nil.

Version 1.24.1 (26 January 2022):

  • 🐞 Bug fixes:
    • Fixes an issue with viewfinder colors and line width not being applied in RTU-UI components.
    • Fixes an issue with the flashlight not turning on automatically if configured in SBSDKUIBarcodeScannerViewController and SBSDKUIBarcodesBatchScannerViewController.
    • Fixes a crash when creating an instance of SBSDKBlurrinessEstimator.

Version 1.24.0 (14 January 2022):

  • 🎉 New:
    • Added ability to disable auto-focus by locking the lens at the specified lens position.
      • Added property isFocusLockEnabled and functions - (BOOL)beginFocusLockAtLensPosition:(CGFloat)lensPosition, - (void)endFocusLock to SBSDKBarcodeScannerViewController and SBSDKCameraSession.
      • Added properties focusLockEnabled and focusLockPosition to SBSDKUIBarcodeScannerBehaviorConfiguration and SBSDKUIBarcodesBatchScannerBehaviorConfiguration.
  • 🚀 Improvements:
    • Improved machine readable zone recognizer.
    • Improved ID card recognizer.
    • Improved Aztec barcode recognition.
  • 🐞 Bug fixes:
    • Fixes a bug with simulators not capturing the demo image when the shutter button is pressed
    • Fixes a bug in SBSDKPDFPagesExtractor with transformed PDF pages.

Version 1.23.0 (22 December 2021):

  • 🎉 New:
    • Support for barcode scanner results filtering in RTU-UI barcode scanning components:
      • New subclassable objects SBSDKUIBarcodeFilter and SBSDKUIBarcodeExtensionsFilter.
      • New property barcodeFilter in SBSDKUIBarcodeScannerBehaviorConfiguration and SBSDKUIBarcodesBatchScannerBehaviorConfiguration.
  • 🚀 Improvements:
    • Improved PDF417 recognition performance on single photos.
    • Improved barcode detection on large documents.
    • Updated flash buttons' icons.
    • Improved GS-1 databar recognition in the next-gen barcode scanner.
  • ⚠️ Breaking Changes:
    • Added property flashButtonInactiveColor to SBSDKUIHealthInsuranceCardScannerUIConfiguration.
    • Removed properties bottomButtonsInactiveColor and bottomButtonsActiveColor of SBSDKUIHealthInsuranceCardScannerUIConfiguration as they are unnecessary.
  • 🐞 Bug fixes:
    • Fixed a very rare problem in all scanner screens where the camera layer lost track of the device orientation.
    • Fixed a rare crash in SBSDKUIMRZScannerViewControllerand SBSDKUIHealthInsuranceCardScannerViewController when used in landscape mode.
    • Fixed a problem with an inaccurate finder in SBSDKUIMRZScannerViewController and SBSDKUIHealthInsuranceCardScannerViewController.

Version 1.22.0 (25 November 2021):

  • 🎉 New:
    • Support for front-facing, telephoto and wide angle cameras in RTU-UI and classic components:
      • New classes for camera support: SBSDKCameraDevice, SBSDKUIConfiguration and SBSDKUICameraConfiguration.
      • New function for camera support: [SBSDKCameraSession initForFeature:withDevice:].
      • New property for camera support: cameraDevice in SBSDKBaseCameraViewController which is the base class for all classic components.
      • All SBSDKUIConfiguration objects now derive from SBSDKUIConfiguration which adds the new subconfigration cameraConfiguration of type SBSDKUICameraConfiguration.
    • Barcodes:
      • Added properties rawTextStringWithExtension and metadata to SBSDKBarcodeScannerResult to support barcode extensions of UPC and EAN barcodes.
      • The results screen of the SBSDKUIBarcodesBatchScannerViewController now displays rawTextStringWithExtension instead of rawTextString.
  • 🐞 Bug fixes:
    • Fixed crash when scanning barcodes on certain images.
    • Fixed missing person info on disability certificate scans.

Version 1.21.2 (2 November 2021):

  • 🎉 New:
    • Added property photoQualityPriorization of type SBSDKCapturePhotoQualityPrioritization to SBSDKScannerViewController and to SBSDKUIDocumentScannerBehaviorConfiguration, which changes the prioritization of quality and speed when capturing still images.
  • ⚠️ Breaking Changes:
    • Removed enum value SBSDKDocumentDetectorModeMachineLearningNoCoreML from SBSDKDocumentDetectorMode, CoreML and NonCoreML document detectors are now working equally, making the distinction of them obsolete. The CoreML version is used on devices with iOS 13.0 and above, on older iOS version the NonCoreML version is used internally.
  • 🚙 Under the hood:

Version 1.21.1 (13 October 2021):

  • 🐞 Bug fixes:
    • Fixes a crash in SBSDKGenericDocumentRecognizer when scanning the back of an ID card.

Version 1.21.0 (12 October 2021):

  • 🎉 New:
    • Added new filter type SBSDKImageFilterTypePureGray, a grayscale filter without further optimizations.
  • 🚀 Improvements:
    • Improved flexibility, speed, and accuracy of the EHIC Scanner (European Health Insurance Cards).
  • 🐞 Bug fixes:
    • Fixed a rare bug where capturing an image on a physical device returns a dummy image. The dummy image is now only returned on simulators.
    • Fixed a bug in the layout of the status hints label in SBSDKScannerViewController on some devices.
    • Fixed a rare crash in SBSDKNFCPassportReader.
  • ⚠️ Breaking Changes:
    • Removed enum SBSDKHealthInsuranceCardValidationType, removed property validationType from SBSDKUIHealthInsuranceCardScannerBehaviorConfiguration, removed initWithValidationType:and all detectAndRecognizeFromImage methods from SBSDKHealthInsuranceCardRecognizer, renamed SBSDKHealthInsuranceCardDetectionStatusFailedValidationto SBSDKHealthInsuranceCardDetectionStatusIncompleteValidation and recognizeFromImageto recognizeFromStillImage resp. recognizeFromVideoFrameImage.
    • Changed the method of localizing status hints in document scanner. Old keys will not work. Instead, added new class SBSDKScannerStatusTextConfiguration for setting the status hint text in the document scanner, along with the textConfiguration parameter in SBSDKScannerViewController.
    • Changed property initializer in SBSDKUINFCPassportReaderResult from (instancetype _Nonnull )initWithDatagroupDG1:(nullable SBSDKNFCDatagroupDG1 *)dg1 datagroupDG2:(nullable SBSDKNFCDatagroupDG2 *)dg2; to (instancetype _Nonnull )initWithDatagroup1:(nullable SBSDKNFCDatagroupDG1 *)dataGroup1 datagroup2:(nullable SBSDKNFCDatagroupDG2 *)dataGroup2; and properties from datagroupDG1, datagroupDG2 and photoImageURL to dataGroup1, dataGroup2 and photoURL.
    • Changed property from submitButtonTitle to viewResultsButtonTitle in SBSDKUIGenericDocumentRecognizerTextConfiguration and SBSDKUIIDCardScannerTextConfiguration.

Version 1.20.0 (25 August 2021):

  • 🎉 New:
    • Added support for zooming in SBSDKUIBarcodesBatchScannerViewController.
    • Added support for the ML based document detector without using CoreML to maintain compliance with the Android implementation, see SBSDKDocumentDetectorModeMachineLearningNoCoreML.
    • Added anchorPointsColor property to SBSDKImageEditingViewController and SBSDKUICroppingScreenUIConfiguration, which allows setting the color of the cropping anchor handles.
    • Added stripCheckDigits parameter in SBSDKBarcodeAdditionalParameters class.
    • Added SBSDKPDFPagesExtractor class that can extract pages from a PDF as UIImages, or convert them to JPEGs and write them to a specified URL.
  • ⚠️ Breaking Changes:
    • Added SBSDKSEPADocumentFieldTypePurpose, SBSDKSEPADocumentFieldTypeRemittance and SBSDKSEPADocumentFieldTypeInformation fields to SBSDKSEPADocumentFieldType. Removed SBSDKSEPADocumentFieldTypeReference and SBSDKSEPADocumentFieldTypeHint fields from it.
    • Added pageImageSource property to SBSDKUIPage which replaces the now deprecated isCapturedAutomatically property.
  • 🚀 Improvements:
    • Improved recognition of UPC/EAN barcodes due to ink spread.
  • 🐞 Bug fixes:
    • Fixed a rare bug with calling some delegate function in SBSDKUIDocumentScannerViewController too often in some cases.
    • Fixed a bug with the EHIC recognizer that caused some UTF8 characters to be ignored upon recognition.

Version 1.19.3 (7 July 2021):

  • 🎉 New:
    • Added support for Swift Package Manager: you can now use the Swift Package Manager to embed the Scanbot SDK into your app.
  • 🐞 Bug fixes
    • Fixed a bug in SBSDKGenericDocumentRecognizerViewController where results come in before the previous results were processed.

Version 1.19.2 (6 July 2021):

  • 🎉 New:
    • Added support for recognition status and document image in SBSDKGenericDocumentRecognizer (see SBSDKGenericDocumentRecognitionResult).
  • ⚠️ Breaking Changes:
    • SBSDKGenericDocumentRecognizer and SBSDKGenericDocumentRecognizerViewControllerDelegate return SBSDKGenericDocumentRecognitionResult instead of SBSDKGenericDocument.

Version 1.19.1 (1 July 2021):

  • 🎉 New:
    • Added support for Apple Silicon M1 simulators, your app build with the ScanbotSDK.xcframework or via CocoaPods now will run natively on M1 Mac simulators without having to start Xcode in Rosetta 2 mode.
  • ⚠️ Breaking Changes:
    • The Scanbot SDK CocoaPod now contains an XCFramework instead of a standard framework, you may need to update CocoaPods and/or Xcode.

Version 1.19.0 (30 June 2021):

  • 🎉 New:
    • Brand new "Next Generation" machine-learning-based barcode scanning engine with improved reliability and much faster performance.
    • API changes for the new barcode engine: added engineMode property of type SBSDKBarcodeEngineMode on barcode scanning APIs like SBSDKBarcodeScanner, SBSDKBarcodeScannerViewController, and SBSDKUIBarcodesBatchScannerBehaviorConfiguration to switch between the legacy barcode engine and the new Next Generation barcode engine. By default, the new engine is used.
  • ⚠️ Breaking Changes:
    • Removed enableHighSensitivityMode property on SBSDKBarcodeScanner, because it is no longer needed.
  • 🚀 Improvements:
    • Improved logging for license failures. The app bundle identifier from the license and from the app will be displayed in the log in case you accidentally set up a wrong license. Also, the expiration date of expired licenses is now being logged to the console.
    • More detailed Scanbot SDK module documentation.
  • 🐞 Bug fixes
    • Fixes a layout bug with long text on detection status labels.
    • Fixes a bug in document scanner view controllers (Classic UI and Ready-to-use UI) where sometimes the energy save mode did not end properly.
  • 🚙 Under the hood:

Version 1.18.0 (9 June 2021):

  • 🎉 New:
    • New disability certificate type: SBSDKDisabilityCertificatesRecognizerFormType_1B_CUSTOM.
    • Added support for MSI-Plessey barcodes again: see SBSDKBarcodeTypeMSIPlessey, MSI checksum algorithm is selectable via SBSDKBarcodeAdditionalParameters property named msiPlesseyChecksumAlgorithm, by default MSI-Plessey is disabled, you must explicitly pass SBSDKBarcodeAdditionalParameters as an accepted type to any barcode scanning class.
  • 🚀 Improvements:
    • Better logging of licensing system errors, e.g. display the apps and the licenses bundle identifier.
  • 🐞 Bug fixes
    • Fixes a problem with UPC-A barcodes being recognized as EAN-13 barcodes.

Version 1.17.1 (12 May 2021):

  • 🐞 Bug fixes
    • Fixes a localization issue in SBSDKUIGenericDocumentRecognizerViewController.

Version 1.17.0 (10 May 2021):

  • 🎉 New:
    • Introduces the Generic Document Recognizer, providing the ability to scan various types of documents, including German ID cards, German passports and German driver's licenses: SBSDKGenericDocument, SBSDKGenericDocumentRecognizer, SBSDKGenericDocumentRecognizerViewController and SBSDKUIGenericDocumentRecognizerViewController.
  • ⚠️ Breaking Changes:
    • Deprecated SBSDKIDCardRecognizer, SBSDKIDCardScannerViewController, SBSDKUIIDCardScannerViewController and related classes, please use the SBSDKGenericDocument-based API.

Version 1.16.0 (21 April 2021):

  • 🎉 New:
    • Added support for zooming in SBSDKBarcodeScannerViewController and SBSDKUIBarcodeScannerViewController. Use the new properties cameraZoomRange, cameraZoomFactor, shouldAnimateZooming, doubleTapToZoomEnabled and pinchToZoomEnabled on SBSDKBarcodeScannerViewController and SBSDKUIBarcodeScannerBehaviorConfiguration to configure zooming the camera to scan small barcodes.
    • Added support for document type filtering to SBSDKUIBarcodesBatchScannerViewController.
  • ⚠️ Breaking Changes:
    • Breaking change: SBSDKBarcodeScannerViewController: capturingFrameAspectRatio was renamed to finderAspectRatio, and capturingFrameMinimumInset was renamed to finderMinimumInset.
    • Breaking change: Removed SBSDKUIMachineCodeScannerConfiguration and related configurations. SBSDKUIMRZScannerViewController now uses SBSDKUIMRZScannerConfiguration and SBSDKUIBarcodeScannerViewController now uses SBSDKUIBarcodeScannerConfiguration as configurations.
  • 🐞 Bug fixes
    • Fixes a bug in SBSDKScannerViewController where the default detection status label sometimes showed up although a custom status view was provided.

Version 1.15.1 (9 April 2021):

  • 🎉 New:
    • Added enableGS1Decoding parameter to SBSDKBarcodeAdditionalParameters.
    • Added image property to SBSDKMachineReadableZoneRecognizerField.
  • 🐞 Bug fixes
    • Fixed a bug in SBSDKUIBarcodesBatchScannerViewController where additionalDetectionParameters have not been applied.
    • Fixed a rare bug when calculating the finder rectangle in SBSDKGenericTextLineRecognizerViewController, SBSDKLicensePlateScannerViewController and SBSDKBarcodeScannerViewController.
    • Fixed the delegate calls in SBSDKUILicensePlateScannerViewController.
  • ⚠️ Breaking Changes:
    • Renamed property flashImageButtonHidden to flashButtonHidden in SBSDKUIDocumentScannerUIConfiguration and SBSDKUIMultipleObjectScannerUIConfiguration.
    • Removed the 2017 deprecated SBSDKCropViewController, please use SBSDKImageEditingViewControllerinstead.
  • 🚙 Under the hood:
    • Updated OpenSSL to version 1.1.1j.

Version 1.15.0 (23 Mar 2021):

  • 🎉 New:
    • New feature: vehicle license plate scanner. The new classes are SBSDKLicensePlateScanner, SBSDKLicensePlateScannerViewController and SBSDKUILicensePlateScannerViewController.
    • Added acceptedDocumentTypes to SBSDKIDCardRecognizer, SBSDKIDCardScannerViewControllerand SBSDKUIIDCardScannerBehaviorConfiguration.
    • Added sharpnessAcceptanceFactor to SBSDKUIIDCardScannerBehaviorConfiguration.
    • Added edgeLineWidth parameter to SBSDKCropView and SBSDKImageEditingViewController.
    • Added polygonLineWidth parameter to SBSDKUICroppingScreenUIConfiguration.
    • Added support for Voice-Over in RTU-UI components of the document scanner and the cropping screen, please see SBSDKUICroppingScreenAccessibilityConfiguration and SBSDKUIDocumentScannerAccessibilityConfiguration for further info. You can customize the Voice-Over feature using the accessibilityConfiguration property in SBSDKUICroppingScreenTextConfiguration and SBSDKUIDocumentScannerTextConfiguration.
    • Added additionalParameters property to SBSDKBarcodeScanner and SBSDKUIMachineCodeScannerBehaviorConfiguration, additionalDetectionParameters to SBSDKBarcodeScannerViewController and SBSDKUIBarcodesBatchScannerBehaviorConfiguration and additionalBarcodeDetectionParameters to SBSDKScannerViewController which lets you setup a minimum and maximum text length as well as a quiet zone. Currently works for ITF and MSI Plessey barcodes only.
  • 🐞 Bug fixes
    • Fixed a rare out-of-memory crash in barcode (data matrix) scanning on older devices.
    • Fixed issues with title centering in the cropping RTU-UI component.
  • 🚀 Improvements:
    • The machine-learning-based document detector is now the default detector on iOS devices with iOS 11.2 and above.
    • Added download links for ScanbotSDK.framework and XCFramework in the Installation Guide of the documentation.

Version 1.14.1 (10 Mar 2021):

  • 🐞 Bug fixes
    • Fixed a rare crash in the barcode scanner with wrong finder coordinates.
  • ⚠️ Breaking Changes:
    • Removed support for MSI Plessey barcode detection.

Version 1.14.0 (23 Feb 2021):

  • 🎉 New:
    • Added support for Swiss QR codes, see SBSDKSwissQRCodeDocumentFormat.
    • Added support for document type filtering to barcode and QR code scanners, acceptedDocumentTypes properties in SBSDKBarcodeScanner, SBSDKBarcodeScannerViewController and SBSDKUIBarcodeScannerViewController.
    • Added the ability to encrypt TIFF image files using the SDK encryption API, see SBSDKTiffImageWriter.
    • Added global control of status bar visibility and style in SBSDKUI components, see functions + (void)setShouldShowStatusBarOnScanningScreens:(BOOL)shouldShow and + (void)setDefaultStatusBarStyle:(UIStatusBarStyle)style in the class ScanbotSDKUI.
  • 🐞 Bug fixes
    • Fixed a UI problem in SBSDKUIBarcodesBatchScannerViewController.

Version 1.13.0 (29 Jan 2021):

  • 🎉 New:
    • Added support for PDF encryption with new public functions in SBSDKPDFRenderer, SBSDKOpticalTextRecognizer and ScanbotSDKUI: PDFs can be encrypted using SBSDKAESEncrypter or your custom written encryption classes. The PDF's data is encrypted in memory before it is written to disk. To decrpyt the PDF you need to run proper decryption in your backend or clients.
    • SBSDKIDCardRecognizer now additionally extracts machine readable zone fields and check digits, see the new properties mrzFields and mrzCheckDigits in SBSDKIDCardRecognizerResult.
  • 🚀 Improvements:
    • Improved ID Card Recognizer with better compensation for perspective distortion
    • Changed SBSDKAESEncrypter to create the keyphrase from password using the PBKDF2 method.
  • ⚠️ Breaking Changes:
    • - (nullable instancetype)initWithKey:(NSString *)key mode:(SBSDKAESEncrypterMode)mode was replaced by - (nullable instancetype)initWithPassword:(NSString *)password mode:(SBSDKAESEncrypterMode)mode.
  • 🐞 Bug fixes
    • Fixed a potential crash in SBSDKUIBarcodesBatchScannerViewController.

Version 1.12.3 (17 Dec 2020):

  • 🚀 Improvements:
    • Improved detection of ITF barcodes

Version 1.12.2 (7 Dec 2020):

  • 🚀 Improvements:
    • Improved DataMatrix detection

Version 1.12.1 (2 Dec 2020):

  • 🎉 New:
    • Added new property autoCancelTimeout to SBSDKUIMachineCodeScannerBehaviorConfiguration
    • Added new optional delegate function - (void)qrBarcodeDetectionViewControllerDidTimeout:(nonnull SBSDKUIBarcodeScannerViewController *)viewController; to SBSDKUIBarcodeScannerViewController
  • 🚀 Improvements:
    • Improved some PDF417 detection edge cases
  • 🐞 Bug fixes
    • Fixed a problem where distribution of an app containing ScanbotSDK would fail
    • Fixed a crash in SBSDKUINFCPassportReaderViewController

Version 1.12.0 (26 Nov 2020):

  • 🎉 New:
    • Added (customizable) encryption/decryption to image stores; new classes: SBSDKAESEncrypter, SBSDKStorageCrypting, ScanbotSDKUI
    • For SBSDKUI components you can enable encryption for stored images globally using the function + (void)setDefaultImageStoreEncrypter:(nullable id<SBSDKStorageCrypting>)encrypter of ScanbotSDKUI class, this will encrypt all stored images in these components
    • Classic SBSDK components use SBSDKKeyedImageStorage or SBSDKIndexedImageStorage, both got a new property named encrypter.
    • SBSDKAESEncrypter provides built-in support for AES128 and AES256 encryption, but you can create your own encrypter by implementing a class conforming to the protocol SBSDKStorageCrypting
    • Added corner radius property polygonCornerRadius to document detection polygon layer in SBSDKScannerViewController
    • Added delegate method scannerController:backgroundPolygonColorForDetectionStatus: to SBSDKScannerViewControllerDelegate
    • Added ability to enable or disable crop and rotation functionality on SBSDKImageEditingViewController and RTU UI
    • Added ability to choose the binarization filter being used when storing TIFF files with SBSDKTIFFImageWriter, see binarizationFilter in SBSDKTIFFImageWriterParameters
  • 🚀 Improvements:
    • Better recognition of rotated PDF417 codes
  • ⚠️ Breaking Changes:
    • Removed polygonAutoSnapProgressCornerRadius from SBSDKScannerViewController because of obsolescence. Use polygonCornerRadius instead.
    • Simplified SBSDKTIFFImageWriter API, a lot of functions have been removed because of duplication, the class now has only 2 functions left. Please refer to the documentation of this class.

Version 1.11.9 (19 Nov 2020):

  • 🚀 Improvements:
    • Improved barcode and PDF417 detection

Version 1.11.8 (11 Nov 2020):

  • 🐞 Bug fixes
    • Fixed a license problem in SBSDKUIWorkflowScannerViewController
    • Fixed a deadlock in SBSDKUIBarcodesBatchScannerViewController
    • Fixed a potential memory leak with SBSDKUIBarcodesBatchScannerViewController
    • The delegate function of SBSDKUIBarcodeBatchStorageDelegate- (void)barcodeBatchStorage:(SBSDKUIBarcodeBatchStorage *)storage didUpdateBarcode:(SBSDKUIBarcodeMappedResult *)barcode atIndex:(NSInteger)index; is now called on the main queue

Version 1.11.7 (29 Oct 2020):

  • 🚀 Improvements:
    • Improved barcode, QR code and data matrix detection

Version 1.11.6 (22 Oct 2020):

  • 🎉 New:
    • Added polygon autosnap progress animation to SBSDKScannerViewController and SBSDKUIDocumentScannerViewController
    • New properties related to this feature: polygonAutoSnapProgressColor, polygonAutoSnapProgressLineWidth, polygonAutoSnapProgressEnabled, polygonAutoSnapProgressCornerRadius
    • Added another optional function in SBSDKIDCardScannerViewControllerDelegate: - (void)idCardScannerViewController:(SBSDKIDCardScannerViewController *)controller didFailRecognition:(SBSDKIDCardRecognizerResult *)idCardResult onImage:(UIImage *)image;
  • 🐞 Bug fixes
    • Potential crash in barcode recognition

Version 1.11.5 (14 Oct 2020):

  • 🐞 Bug fixes
    • Fixes call into SBSDKIDCardScannerViewControllerDelegate

Version 1.11.4 (13 Oct 2020):

  • 🚀 Improvements:
    • Reduced memory footprint of ID card recognizer by around 50%.

Version 1.11.3 (12 Oct 2020):

  • 🐞 Bug fixes
    • Reduced lifetime of memory intensive ID card recognizer instances to reduce memory related crashes on older devices.
  • 🎉 New:
    • Added new optional function to SBSDKIDCardScannerViewControllerDelegate: - (void)idCardScannerViewControllerWillCaptureImage:(SBSDKIDCardScannerViewController *)controller;

Version 1.11.2 (6 Oct 2020):

  • 🐞 Bug fixes
    • Fixed zooming logic in some cases in Text Data Scanner RTU UI.
    • The MRZ result fields in SBSDKMachineReadableZoneRecognizerResult, when received from the recognizePersonalIdentityFromText: function, now have the confidence value set to 1.0.
  • 🚀 Improvements:
    • ID card recognition model was updated to improve recognition results for ID cards with address changed sticker.
  • 🎉 New:
    • Added function to SBSDKFinderLayer: + (CGRect)potentialFinderRectWithBounds:(CGRect)bounds aspectRatio:(double)aspectRatio minimumInsets:(UIEdgeInsets)minimumInsets;
  • ⚠️ Breaking Changes:
    • Removed SBSDKFilterMethodGPUOpenGL from SBSDKFilterMethod enum, because OpenGLES is deprecated for a long time now

Version 1.11.1 (30 Sep 2020):

  • 🐞 Bug fixes
    • fix font validation issue upon app submission to the app store
    • fixes inivisible finder in SBSDKGenericTextLineRecognizerViewController

Version 1.11.0 (29 Sep 2020):

  • 🎉 New:
    • NFC passport reader RTU UI component SBSDKUINFCPassportReaderViewController (requires iOS 13)
    • Text data scanner RTU UI component SBSDKUITextDataScannerViewController
    • SBSDKUICroppingViewController now has a hint label. The corresponding parameter hintTitle was added to SBSDKUICroppingScreenTextConfiguration
    • Added new delegate function to SBSDKGenericTextLineRecognizerViewController- (void)textLineRecognizerViewController:(nonnull SBSDKGenericTextLineRecognizerViewController *)controller didChangeViewFinderRect:(CGRect)rect;
    • Added new parameter: finderMinimumInset, viewFinderBackgroundColor, shouldShowWordBoxes, wordBoxesFillColor, wordBoxesLineColor, viewFinderLineColor, viewFinderLineWidth, currentViewFinderRect, shouldUseAnimationWhileZooming to SBSDKGenericTextLineRecognizerViewController
    • Added parameters preferredZoom and ocrResolutionLimit to SBSDKGenericTextLineRecognizerConfiguration
  • 🚀 Improvements:
    • SBSDKUIIDCardScannerViewController now has improved MRZ-OCR validation. In case MRZ is scanned, its values are compared to OCR'd ones and result info is presented on details screen.
  • 🐞 Bug fixes
    • Crash while scanning large Aztec codes
    • Fixed crash in cropping RTU UI related to too long hint label.
    • Fixed build error with Cocoapods
  • ⚠️ Breaking Changes:
    • SBSDKGenericTextLineRecognizerViewController:
    • Moved preferredFinderHeight and finderAspectRatio parameters from SBSDKGenericTextLineRecognizerViewController to SBSDKGenericTextLineRecognizerConfiguration class.
    • Changed initializer from - (nullable instancetype)initWithParentViewController:(nullable UIViewController *)parentViewController parentView:(nullable UIView *)containerView configuration:(nullable SBSDKGenericTextLineRecognizerConfiguration *)configuration preferredFinderHeight:(CGFloat)height finderAspectRatio:(double)aspectRatio delegate:(id<SBSDKGenericTextLineRecognizerViewControllerDelegate>)delegate; to - (nullable instancetype)initWithParentViewController:(nullable UIViewController *)parentViewController parentView:(nullable UIView *)containerView configuration:(nullable SBSDKGenericTextLineRecognizerConfiguration *)configuration delegate:(id<SBSDKGenericTextLineRecognizerViewControllerDelegate>)delegate;
  • 🚙 Under the hood:
  • Deeply integrated document detector data into the framework, SBSDKDocumentDetectorData.bundle now is not longer an additional data bundle

Version 1.10.5 (23 Sep 2020):

  • 🎉 New:
    • Added NFC passport reader RTU UI component SBSDKUINFCPassportReaderViewController
    • Added Text Data scanner RTU UI component SBSDKUITextDataScannerViewController
  • 🐞 Bug fixes:
    • Fixed crash while scanning large Aztec codes
  • 🚀 Improvements:
    • Moved SBSDKDocumentDetectorData.bundle into the SDK, this is no longer an optional component

Version 1.10.4 (17 Sep 2020):

  • 🚀 Improvements:
    • Improved recognition of damaged DataMatrix barcodes
    • Modernized camera API usage and removed deprecated API usage, multiple new functions added to process a CVPixelBufferRef
    • Improved Disability Certificate Recognizer
  • 🐞 Bug fixes:
    • Fixed potential crash in SBSDKGenericTextLineRecognizerViewController
  • ⚠️ Breaking Changes:
    • SBSDKMultipleObjectsDetector: - (nullable NSArray<SBSDKPolygon*>*) detectInBuffer:(nonnull CMSampleBufferRef)sampleBufferRef orientation:(AVCaptureVideoOrientation)videoOrientation; renamed to - (nullable NSArray<SBSDKPolygon*>*) detectInSampleBuffer:(nonnull CMSampleBufferRef)sampleBufferRef orientation:(AVCaptureVideoOrientation)videoOrientation;
    • SBSDKCameraSession: - (void)captureStillImageWithCompletionHandler:(nullable void (^)(CMSampleBufferRef _Nullable, NSError* _Nullable))completion; changed to - (void)captureStillImageWithCompletionHandler:(nullable void (^)(CVPixelBufferRef _Nullable, NSError* _Nullable))completion;
  • 🚙 Under the hood:
    • Updated OpenCV to version 4.4.0

Version 1.10.3 (10 Sep 2020):

  • 🎉 New:
    • Added Data Scanner module SBSDKGenericTextLineRecognizer and SBSDKGenericTextLineRecognizerViewController
  • ⚠️ Breaking Changes:
    • Removed support for iOS 9 and iOS 10

Version 1.10.2 (2 Sep 2020):

  • 🐞 Bug fixes:
    • Fixed passport document number check digit assignment.

Version 1.10.1 (13 Aug 2020):

  • 🐞 Bug fixes:
    • Fixed ID card RTU UI startup crash.

Version 1.10.0 (11 Aug 2020):

  • 🎉 New:
    • Added ID Card Recognizer RTU UI component SBSDKUIIDCardScannerViewController.
    • Added Barcode batch detector RTU UI component SBSDKUIBarcodesBatchScannerViewController.
    • Beta: Added NFC Passport Scanner component SBSDKNFCPassportReader.
    • Barcode scanner: SBSDKBarcodeScannerResult class now contains rawBytes parameter.
  • 🐞 Bug fixes:
    • Barcode scanner format parser fixes
    • Fixed error type in SBSDKOpticalTextRecognizer in case of cancelling operation.
  • ⚠️ Breaking Changes:
    • SBSDKBarcodeScannerResult initializer is now - (instancetype)initWithPolygon:(SBSDKPolygon *)poly type:(SBSDKBarcodeType *)type barcodeImage:(UIImage *)image rawTextString:(NSString *)string rawBytes:(NSData *)rawBytes;

Version 1.9.19 (29 Jul 2020):

  • 🐞 Bug fixes:
    • ID Card Scanning: fixed an issue that caused poor OCR results
    • Added missing debug symbol files

Version 1.9.18 (13 Jul 2020):

  • 🎉 New:
    • ID Card Recognizer: added support for german passports
    • Beta: New sensitive binarization image filter SBSDKImageFilterTypeSensitiveBinarization
    • Beta: Added support for MSI Plessey barcode format. Disabled by default, must explicitly be allowed.
  • 🚀 Improvements:
    • Improved barcode detection model
    • Improved handling of ink spread issues with Code128 barcodes
    • Improved barcode and QR code live detection especially for very dense codes
  • 🐞 Bug fixes:
    • ID Card Scanning: fixed bug that prevented recognition of the letter 'ß'

Version 1.9.17 (3 Jul 2020):

  • 🐞 Bug fixes:
    • Adds missing simulator debug symbol files

Version 1.9.16 (2 Jul 2020):

  • 🎉 New:
    • Recognizer for German ID Cards SBSDKIDCardRecognizer + the corresponding SBSDKIDCardScannerViewController as Classical Component
    • Added support for XCFramework - Apple's new binary format of packing frameworks
    • Beta: Blurriness estimator SBSDKBlurrinessEstimator
    • Beta: Model-based solution for BackgroundClean filter
  • 🚀 Improvements:
    • Updated the installation guide
  • 🚙 Under the hood:
    • Updated OpenSSL to version 1.1.1g
    • Updated TensorFlow to version 2.2.0
  • ⚠️ Breaking Changes:
    • Spelling fixes:
      • In SBSDKUIEnableCameraUIConfiguration parameter enableCameraDesctiptionColor was renamed to enableCameraDescriptionColor
      • In SBSDKUIWorkflowStep parameter runsContinousValidation was renamed to runsContinuousValidation

Version 1.9.15 (18 May 2020):

  • 🎉 New:
    • Added support for inverted barcodes
    • Added class SBSDKUICroppingScreenBehaviorConfiguration and corresponding property of this class to SBSDKUICroppingScreenConfiguration.
    • Added detectorMode parameter to behavior configuration for RTU UI document scanner SBSDKUIDocumentScannerBehaviorConfiguration. This parameter allows to choose the detector type for scanner: standard or machine learning based.
    • Added possibility to set default detector mode of SBSDKDocumentDetector via + (void)setDefaultDetectorMode:(SBSDKDocumentDetectorMode)newDefaultDetectorMode;. The getter function is + (SBSDKDocumentDetectorMode)defaultDetectorMode;.
    • Added functions - (nullable SBSDKDocumentDetectorResult *)detectDocument:(BOOL)applyPolygonIfOkay detectorMode:(SBSDKDocumentDetectorMode)detectorMode; and - (void)applyDocumentDetectionWithDetectorMode:(SBSDKDocumentDetectorMode)detectorMode; to SBSDKUIPage.
  • ⚠️ Breaking Changes:
    • SBSDKUICroppingScreenConfiguration initializer is now - (nonnull instancetype)initWithUIConfiguration:(nonnull SBSDKUICroppingScreenUIConfiguration *)uiConfiguration textConfiguration:(nonnull SBSDKUICroppingScreenTextConfiguration *)textConfiguration behaviorConfiguration:(nonnull SBSDKUICroppingScreenBehaviorConfiguration *)behaviorConfiguration
    • Removed function + (BOOL)isDocumentDetectorModeAvailable:(SBSDKDocumentDetectorMode)mode; from SBSDKDocumentDetector. IOS version check can now be used instead of this function.
    • Removed function + (BOOL)isDocumentDetectorModeAvailable:(SBSDKDocumentDetectorMode)mode; from SBSDKScannerViewController. IOS version check can now be used instead of this function.
    • SBSDKMedicalPlanPatientFieldTypeAllergysAndIntolerances is renamed to SBSDKMedicalPlanPatientFieldTypeAllergiesAndIntolerances
    • SBSDKMedicalPlanSubheadingReceipeFieldType enum is renamed to SBSDKMedicalPlanSubheadingPrescriptionFieldType . Its cases SBSDKMedicalPlanSubheadingReceipeFieldTypeGeneralInformation and SBSDKMedicalPlanSubheadingReceipeFieldTypeReceipeFreeText has been renamed to SBSDKMedicalPlanSubheadingPrescriptionFieldTypeGeneralInformation and SBSDKMedicalPlanSubheadingPrescriptionFieldTypePrescriptionFreeText respectively.
    • SBSDKMedicalPlanSubheadingReceipeField class name is changed to SBSDKMedicalPlanSubheadingPrescriptionField .
    • SBSDKMedicalPlanSubheadingReceipe class name is changed to SBSDKMedicalPlanSubheadingPrescription .
    • Cases of SBSDKVCardDocumentFieldType - SBSDKVCardDocumentFieldTypeCallendarURIForRequests and SBSDKVCardDocumentFieldTypeCallendarURI has been renamed to SBSDKVCardDocumentFieldTypeCalendarURIForRequests and SBSDKVCardDocumentFieldTypeCalendarURI respectively.
    • Case of SBSDKBoardingPassDocumentFieldType - SBSDKBoardingPassDocumentFieldTypeSecongNonConsecutiveBaggageTagLicensePlateNumber has been renamed to SBSDKBoardingPassDocumentFieldTypeSecondNonConsecutiveBaggageTagLicensePlateNumber
    • In SBSDKBarcodeScannerViewControllerDelegate the function - (void)barcodeScannerController:(nonnull SBSDKBarcodeScannerViewController *)controller didDetecBarcodes:(nonnull NSArray<SBSDKBarcodeScannerResult *> *)codes; is renamed to - (void)barcodeScannerController:(nonnull SBSDKBarcodeScannerViewController *)controller didDetectBarcodes:(nonnull NSArray<SBSDKBarcodeScannerResult *> *)codes;.

Version 1.9.14 (7 May 2020):

  • 🐞 Bug fixes:
    • Fixes a problem with Apples review process rejecting an app because of pdf.ttf font

Version 1.9.13 (28 Apr 2020):

  • 🐞 Bug fixes:
    • Fixes a crash in Workflows

Version 1.9.12 (27 Apr 2020):

  • 🎉 New:
    • New ML-based document detector
    • European Health Insurance Card (EHIC): Automatic country detection and support for Austrian EKVK cards
    • Updated Tesseract OCR engine to version 4.1.0
  • ⚠️ Breaking Changes:
    • Renamed SBSDKPageAspectRatio to SBSDKAspectRatio
    • In SBSDKFinderLayer type of parameter minimumInsets was changed from CGSize to UIEdgeInsets. So now inset from each side can be set up independently.
    • In SBSDKUIMachineCodeScannerUIConfiguration removed bottomButtonsInactiveColor and bottomButtonsActiveColor. Parameter topBarButtonsColor now affects flash button active state. Added flashButtonInactiveColor.
    • In SBSDKScannerViewController type of parameter capturingFrameMinimumInset was changed from CGSize to UIEdgeInsets.
    • In SBSDKScannerViewController parameter CGSize capturingFrameSize is changed to SBSDKAspectRatio *capturingFrameAspectRatio.
    • In SBSDKBarcodeScannerViewController parameter CGSize capturingFrameSize is changed to SBSDKAspectRatio *capturingFrameAspectRatio.
    • In SBSDKBarcodeScannerViewController type of the parameter capturingFrameMinimumInset was changed from CGSize to UIEdgeInsets.
    • In SBSDKUIMachineCodeScannerUIConfiguration parameters CGFloat finderWidth and CGFloat finderHeight are replaced by SBSDKAspectRatio *finderAspectRatio.
    • In SBSDKUIScanBarCodeWorkflowStep the initializer - (instancetype)initWithTitle:(nullable NSString *)title message:(nullable NSString *)message acceptedCodeTypes:(nullable NSArray<SBSDKBarcodeType *> *)acceptedMachineCodeTypes finderViewSize:(CGSize)finderViewSize resultValidation:(nullable SBSDKUIWorkflowStepValidationHandler)resultValidationHandler is changed to - (instancetype)initWithTitle:(nullable NSString *)title message:(nullable NSString *)message acceptedCodeTypes:(nullable NSArray<SBSDKBarcodeType *>*)acceptedMachineCodeTypes finderViewAspectRatio:(nullable SBSDKAspectRatio *)finderViewAspectRatio resultValidation:(nullable SBSDKUIWorkflowStepValidationHandler)resultValidationHandler
  • 🐞 Bug fixes:
    • Finder in SBSDKUIMRZScannerViewController now has the same behavior, as in SBSDKUIBarcodeScannerViewController. By documentation, both should operate with aspect ratio, but MRZ screen operated with actual sizes.
  • 🚀 Improvements:
    • In SBSDKUIBarcodeScannerViewController and SBSDKUIMRZScannerViewController flash button was moved to navigation bar to save more space for finder layer.

Version 1.9.11 (26 Mar 2020):

  • 🎉 New:
    • New SBSDKUIMultipleObjectScannerViewController RTU UI component for scanning multiple objects like business cards
    • Barcode scanning: Added SBSDKUIBarcodeImageStorage class for handling barcode images storage
    • Barcode scanning: Added flashLightEnabled property to SBSDKBarcodeScannerViewController
    • General: Added - (void)cameraAccessDidChange:(BOOL)granted; function to SBSDKUICameraViewController. This function can be used by SBSDKUICameraViewController subclasses to define behavior after camera access check
  • ⚠️ Breaking Changes:
    • removed SBSDKMachineReadableCode, SBSDKMachineReadableCodeMetadata, SBSDKMachineReadableCodeManager, SBSDKGenericBarcode, SBSDKGenericQRCode, SBSDKContactQRCode, SBSDKEventQRCode, SBSDKLocationQRCode, SBSDKMailMessageQRCode, SBSDKPhoneNumberQRCode, SBSDKShortMessageQRCode, SBSDKWebURLQRCode, SBSDKWiFiHotspotQRCode since these classes have become obsolete

Version 1.9.10 (21 Feb 2020):

  • 🐞 Bug fixes:
    • Various minor bug fixes and improvements

Version 1.9.9 (4 Feb 2020):

  • 🎉 New:
    • Adjustable Filters: Added new GPU-accelerated filters for base manipulation of images, e.g. contrast, brightness, saturation, vibrance, color temperature, tint etc. using Metal.framework with fallback options to OpenGL ES and CPU (see SBSDKAdjustableFilters headers includes for subclasses)
    • Barcode Scanning: New ML-based Barcode and QR-code scanner
    • Cheque recognition: New ML-based recognizer with support for american and EU cheque formats
  • 🚀 Improvements:
    • Licensing: Changed license failure handling: invalid licenses will no longer crash the app containing ScanbotSDK, instead SDK API will return nil or empty values
    • Licensing: Query the currents license status using +[ScanbotSDK licenseStatus]
    • Barcode Scanning: Improved static images detection
    • MRZ Scanning: Added support for swiss driver license
    • Added aspect ratio range property to SBSDKMultipleObjectsDetector
  • 🐞 Bug fixes:
    • Fixes and improvements for various image filters
    • Various fixes for barcode parsers of different formats
    • Fixed Machine Readable Zones recognition (black background)
    • Fixed a typo in SBSDKMachineReadableZoneRecognizerResult: recognitionSuccessful
    • DC recognizer: bug fixes and performance improvements
  • ⚠️ Breaking Changes:
    • Fixed a typo in SBSDKMachineReadableZoneRecognizerResult: recognitionSuccessful
    • SBSDKBarcodeScanner: function parameters with types of barcodes to detect have been moved to a property
    • SBSDKBarcodeScanner: some function parameters have been renamed
    • SBSDKUIBarcodeScannerViewControllerDelegate: [SBSDKUIBarcodeScannerViewControllerDelegate qrBarcodeDetectionViewController:didDetect:] has been replaced by [SBSDKUIBarcodeScannerViewControllerDelegate qrBarcodeDetectionViewController:didDetectResults:]
  • ❌ Deprecated API:
    • SBSDKChequeRecognizerResult: the properties routingNumber, accountNumber and chequeNumber have been encapsulated in a new class named SBSDKChequeRecognizerResultField that now holds the string value as well as a detection confidence value

Version 1.9.8 (15 Jan 2020):

  • 🐞 Bug fixes:
    • Fixed crash caused by adding SBSDKScannerViewController as embedded controller via Interface Builder

Version 1.9.7 (25 Oct 2019):

  • 🚀 Improvements:
    • MRZ Scanner: Added all checkdigits in MRZ result as additional fields - see SBSDKMachineReadableZoneRecognizerResult.checkDigits.
  • 🐞 Bug fixes:
    • Fixed crashes in the beta Barcode Scanner with parsing AAMVA data of PDF417 barcodes on US driver licenses.
    • iOS 13 fix: Set the default modalPresentationStyle of SBSDKScannerViewController and all RTU UI ViewControllers to UIModalPresentationFullScreen.
  • ⚠️ Breaking Changes:
    • Barcode types passed to ScnabotSDK API are no longer parameters of type NSArray<NSNumber *>* but of NSArray<SBSDKBarcodeType *>*. Affected APIs are located in SBSDKBarcodeScanner, SBSDKBarcodeScannerResult, SBSDKScannerViewController , SBSDKUIBarcodeScannerViewController, SBSDKUIMachineCodesCollection and SBSDKUIWorkflowStep and its subclasses.

Version 1.9.6 (24 Sep 2019):

  • 🐞 Bug fixes:
    • Fixed a sporadic crash in the beta Barcode Scanner SBSDKBarcodeScanner.
    • Fixed a crash in the beta Barcode Scanner with parsing AAMVA data of PDF417 barcodes (support for shorter header than in specification).

Version 1.9.5 (21 Aug 2019):

  • 🐞 Bug fixes:
    • Fixed UI configs of the RTU UI EHIC Scanner (SBSDKUIHealthInsuranceCardScannerUIConfiguration.topBarBackgroundColor).
    • Fixed mappings of new field types SBSDKDisabilityCertificateRecognizerCheckboxTypeAccident and SBSDKDisabilityCertificateRecognizerCheckboxTypeRequiresCare in SBSDKDisabilityCertificatesRecognizerResult.

Version 1.9.4 (12 Aug 2019):

  • 🎉 New:
    • New recognizer for the European Health Insurance Cards (EHIC). Provides live detection and data extraction of all fields on the back of the card. Available as Classical SDK Component class SBSDKHealthInsuranceCardRecognizer as well as the Ready-To-Use UI Component class SBSDKUIHealthInsuranceCardScannerViewController. Also see our updated example apps on GitHub scanbot-sdk-example-ios for easy integration.
    • New QR- & Barcode Scanner SBSDKBarcodeScanner as beta feature which provides:
      • better detection and exatraction of 1D and 2D barcodes, especially Data Matrix and PDF 417 codes
      • improved and simplified API - see the class SBSDKBarcodeScanner of our Classical SDK Components (implementation as RTU UI Component will follow soon)
      • out-of-the-box parsers, like German Medical Plans (Medikationsplan) based on Data Matrix (SBSDKMedicalPlanDocumentFormat), ID Cards (SBSDKIDCardPDF417DocumentFormat) or US Driver Licenses (SBSDKAAMVADocumentFormat) both based on PDF 417.
    • Please note that the new SBSDKBarcodeScanner component is a BETA feature and is still under active development and improvement.
  • 🐞 Bug fixes:
    • Fixed the delegate call imageEditingViewControllerDidChangePolygon: of SBSDKImageEditingViewController.

Version 1.9.3 (30 Jul 2019):

  • 🎉 New:
    • New black & white image filter SBSDKImageFilterType.SBSDKImageFilterTypeLowLightBinarization2.
    • Disability Certificate Recognizer - Recognition of new fields: SBSDKDisabilityCertificatesRecognizerResult.patientFields, SBSDKDisabilityCertificatesRecognizerResult.intention, SBSDKDisabilityCertificatesRecognizerResult.insuredPersonType.
  • 🚀 Improvements:
    • Validation of the key names in -[SBSDKKeyedImageStorage setImage:forKey:]. Please note that passing an invalid key will throw an NSInvalidArgumentException now. See the API docs of the setImage method for more details.
    • Improved recognition of SEPA payforms via SBSDKPayFormScanner. Added recognition from barcodes and some new fields. Please also note the API breaking changes below.
  • ⚠️ Breaking Changes:
    • SBSDKPayFormScanner API - Removed the obsolete methods detectOnImage:scannedImage and recognizeFieldsOnImage:scannedImage. Replaced by a new all-in-one method -[SBSDKPayFormScanner recognizeFromImage:]. Removed obsolete classes SBSDKPayFormResult, SBSDKPayFormDetectionResult and SBSDKPayFormDetectedBox.
  • 🐞 Bug fixes:
    • Fixed an issue with unknown device orientation UIDeviceOrientationUnknown in SBSDKScannerViewController.
    • Removed hardcoded language string in +[SBSDKOpticalTextRecognizer recognizeText:indexSet:languageString:pdfOutputURL:error:].

Version 1.9.2 (6 Jun 2019):

  • 🎉 New:
    • Added a new config property in the RTU UI Document Scanner Component: SBSDKUIDocumentScannerBehaviorConfiguration.maxNumberOfPages

Version 1.9.1 (23 May 2019):

  • 🚀 Improvements:
    • Added initializer -[SBSDKUIPage initWithPageFileID:polygon:filter:documentImageSizeLimit:]
  • 🐞 Bug fixes:
    • Fixed OCR resource path

Version 1.9.0 (3 May 2019):

  • 🎉 New:
    • Workflows - New RTU UI Scanning Components.
    • New black & white image filter SBSDKImageFilterType.SBSDKImageFilterTypeLowLightBinarization - Binarization filter primarily intended to use on low-contrast documents with hard shadows.
    • Added new config properties in the RTU UI Document Scanner Component:
      • SBSDKUIDocumentScannerBehaviorConfiguration.documentImageSizeLimit - to limit the size of the document image.
      • SBSDKUIDocumentScannerBehaviorConfiguration.stopsCameraSessionWhenDisappeared - to avoid lags in some situations when the receiver returns to the scanning screen.
      • SBSDKUIDocumentScannerUIConfiguration.shutterButtonHidden - to hide the shutter button.
  • 🚀 Improvements:
    • OCR - Upgraded the OCR engine to Tesseract v4.00. Improved recognition speed and quality. Please also note the Breaking Changes below.
    • Improved performance of the images filter SBSDKImageFilterType.SBSDKImageFilterTypeDeepBinarization.
    • Better visualization and API for energy save management in the Classical UI Scanner Component SBSDKScannerViewController. See the new property SBSDKScannerViewController.energySavingActive. Please make sure to implement a suitable handling and localized text for that (e.g. in the delegate method -[SBSDKScannerViewControllerDelegate scannerController:localizedTextForDetectionStatus:]).
    • Better visualization for energy save management in the RTU UI Document Scanner Component SBSDKUIDocumentScannerViewController. Added a new text hint configuration SBSDKUIDocumentScannerTextConfiguration.textHintEnergySavingActive. Please make sure to provide a suitable localized text for that.
    • Added a dummy image for simulator image capturing. It can be used to run automated tests of all Document Scanner components on a simulator.
    • Added a new method in -[SBSDKDisabilityCertificatesRecognizer detectAndRecognizeFromImage:] as an alternative detection approach to the recognizeFromImage method.
  • ⚠️ Breaking Changes:
    • OCR Language Files - If you use the OCR feature of the Scanbot SDK or some recognizer components which are based on OCR, please upgrade the OCR language files to Tesseract 4.00. See the OCR section for more details.
    • OCR API - OCR results per page. See SBSDKOCRResult.pages.
  • 🐞 Bug fixes:
    • Fixed the status of the torch light toggle button in the RTU UI Document Scanner on reactivating the scanning screen.
    • Various minor bug fixes and improvements.

Version 1.8.6 (20 Feb 2019):

  • 🚀 Improvements:
    • Changed the behaviour of image resource loading.
  • 🚙 Under the hood:
    • Updated OpenSSL to v1.0.2q
    • Updated libtiff to v4.0.10
    • Updated libpng to v1.6.36 (part of other libs)
    • Updated libjpeg to v9b (part of other libs)

Version 1.8.5 (14 Feb 2019):

  • 🎉 New:
    • Added business card detector and processor: SBSDKMultipleObjectsDetector and SBSDKBusinessCardsImageProcessor
    • Added text orientation recognizer: SBSDKTextOrientationRecognizer
  • 🐞 Bug fixes:
    • Fixed potential synchronization issues with SBSDKIndexedImageStorage and SBSDKKeyedImageStorage

Version 1.8.4 (31 Jan 2019):

  • Fixed crashes in SBSDKTIFFImageWriter when using write methods with file URLs

Version 1.8.3 (30 Jan 2019):

  • Fixed handling of SBSDKUICroppingScreenConfiguration.uiConfiguration arguments in RTU Cropping UI (polygonColor, etc)
  • Fixed animation of the Shutter Button in SmartMode in SBSDKScannerViewController
  • Fixed handling of 24bit PNG images (e.g iOS 12 screenshots)
  • Implemented a deep copy functionality in SBSDKIndexedImageStorage as specified by the protocol -[SBSDKImageStoring copy]
  • Implemented new methods -[SBSDKIndexedImageStorage replaceImageAtIndex:withImage:] and -[SBSDKIndexedImageStorage replaceImageAtIndex:withImageAtURL:]
  • Implemented new image filter types SBSDKImageFilterType.SBSDKImageFilterTypeOtsuBinarization, SBSDKImageFilterType.SBSDKImageFilterTypeDeepBinarization and SBSDKImageFilterType.SBSDKImageFilterTypeEdgeHighlight
  • Added storage location initializers to SBSDKUIPageFileStorage
  • Added support for meta-data and compression parameters in SBSDKTIFFImageWriter
  • Added frame limiter for QR/barcode scanning: SBSDKScannerViewController.metadataFrameLimiter
  • Improved recognition of pay cheque: SBSDKChequeRecognizer
  • Improved document detection by required aspect ratios
    • ⚠️ Breaking change in the API: Changed the type of the property SBSDKScannerViewController.requiredAspectRatios
  • Various minor bug fixes and improvements

Version 1.8.2 (20 Nov 2018):

  • Fixed an issue with asset images of RTU UI components
  • Small fixes in MRZ Recognizer (improved detection on still images of some ID cards)

Version 1.8.1 (13 Nov 2018):

  • Added property SBSDKScannerViewController.requiredAspectRatios to restrict document detection to given aspect ratios
  • Added a new viewfinder layer to SBSDKScannerViewController and the related property SBSDKScannerViewController.finderMode to visualize detection of document with required aspect ratios
  • Added new functions to ScanbotSDK class to better handle license failures, like expiration and usage of features not included in your license:
    • +[ScanbotSDK setupDefaultLicenseFailureHandler]
    • +[ScanbotSDK setLicenseFailureHandler:]
  • Added property SBSDKScannerViewController.frameLimiter which limits the detection rate on very fast devices to save a lot of CPU power and prevents unnecessary battery draining
  • Added a new method +[SBSDKUIPDFRenderer renderDocument:withOCRLanguages:output:] which provides a convenient API to perform OCR and render a searchable PDF of a SBSDKUIDocument
  • Minor accuracy improvements in the document detector

Version 1.8.0 (27 Sep 2018):

  • Implemented the "Reset/Detect" functionality in RTU Cropping UI
  • Added support for allowedInterfaceOrientations in all RTU UI ViewControllers (can be set via corresponding configurations)
  • Fixed issues with orientationLockMode in RTU Document Scanner UI
  • Added ability to specify preferred aspect ratios for detector in SBSDKScannerViewController (see SBSDKScannerViewController.preferredAspectRatios)
  • Under the hood: Upgraded to OpenCV version 3.4.3
  • Minor bug fixes and improvements

Version 1.7.8 (7 Sep 2018):

  • Added a new method +[ScanbotSDK setResourceBundle:] to overwrite the location of Scanbot SDK default data bundle (e.g. if you need to embed the data bundles in another bundle)
  • Added a new property SBSDKScannerViewController.defaultShutterButton
  • Bugfix in MRZ Recognizer (dateOfBirth field was not extracted on some French ID cards)
  • Fixed issues with Xcode inspector showing nil for every field in SBSDKMachineReadableZoneRecognizerResult
  • Fixed an issue with bundle data location for Cheque Recognizer
  • Improvements and potential fixes in SDK license manager

Version 1.7.7 (28 Aug 2018):

  • Fixed bitcode generation

Version 1.7.6 (28 Aug 2018):

  • DC Scanner:
    • Improved recognition of low-constrast scans
    • ⚠️ Breaking change: The DC Scanner now uses eng.traineddata instead of deu.traineddata!
  • Removed the obsolete Credit Card Recognizer from SDK (components and bundles)
  • Minor internal refactorings and improvements

Version 1.7.4:

  • fixes memory leaks

Version 1.7.3:

  • fix a bug where SBSDKIndexedImageStorage removes image files not properly

Version 1.7.2:

  • extended and improved API to apply image filter on pages coming from Ready-To-Use UI
  • new thread-safe container class SBSDKUIDocument for scanned pages
  • added the fields checkDigitsCount and validCheckDigitsCount in SBSDKMachineReadableZoneRecognizerResult
  • minor bug fixes and improvements

Version 1.7.1:

  • fixed rotation bug in SBSDKImageEditingViewController

Version 1.7.0:

  • added Ready-To-Use UI components SBSDKUIDocumentScannerViewController, SBSDKUICroppingViewController, SBSDKUIMRZScannerViewController, SBSDKUIBarcodeScannerViewController - a set of easy to integrate and customize high-level UI components for the most common tasks in Scanbot SDK
  • added SBSDKCameraExposureSettings class to extract the current exposure metering parameters from the camera
  • deprecated SBSDKImageStorage
  • added SBSDKIndexedImageStorage and SBSDKKeyedImageStorage as replacements
  • minor bug fixes
  • dropped support for iOS 8

Version 1.6.2:

  • minor bugfixes
  • added two new SBSDKPDFRendererPageSize modes

Version 1.6.1:

  • added support for CocoaPods
  • new documentation
  • new filters and cleaned up filter enum
  • moved OCR lanugage data into a separate bundle
  • added image orientation lock property to SBSDKScannerViewController

Version 1.6.0:

  • minor bugfixes and improvements
  • built with Xcode 9.3 toolchain

Version 1.5.9:

  • fixed a line rendering problem in SBSDKImageEditingViewController

Version 1.5.8:

  • added SBSDKTIFFImageWriter

Version 1.5.7:

  • updated OCR engine
  • added SBSDKMachineReadableZoneRecognizer

Version 1.5.6:

  • added capture simulation to SBSDKScannerViewController

Version 1.5.5:

  • added Disability Certificate Recognizer

Version 1.5.4:

  • fixed a bug with duplicated URLs in SBSDKImageStorage

Version 1.5.3:

  • fixed a crash when importing images from the photo library

Version 1.5.2:

  • fixed a bug with 16 bit per component images and Display P3 colorspace

Version 1.5.1:

  • added two new functions to SBSDKScannerViewController to help with energy saving

Version 1.5.0:

  • fixed a bug with unrecognized barcodes
  • added a new SBSDKScannerViewControllerDelegate function that delivers the captured original image and image metadata

Version 1.4.8:

  • added support for machine readable codes (QR codes, barcodes) scanning in SBSDKScannerViewController
  • added support and protocol for parsing machine readable codes
  • added basic QR and barcode parsers
  • added support for registering custom machine readable code parsers
  • moved demo app from SDK into a separate github repository, now it is located here:

Version 1.4.7:

  • new SBSDKImageEditingViewController as a flexible and more powerful replacement of SBSDKCropViewController
  • SBSDKCropViewController has been deprecated and will not longer receive software engineering love

Version 1.4.6:

  • Fixed a bug where capturing an image would block the main thread unnecessarily long

Version 1.4.5:

  • Improved performance when capturing images using SBSDKScannerViewController by around 50%

Version 1.4.4:

  • New functions in SBSDKScannerViewControllerDelegate for scanning documents, customizing UI and QR code scanning
  • Fixed a bug in SBSDKCropViewController where sometimes the polygon handles were not touchable

Version 1.4.3:

  • Fixed a bug in SBSDKCropViewController where sometimes the polygon handles were not visible

Version 1.4.2:

  • Minor bugfixes
  • New autocaptureSensitivity property in SBSDKScannerViewController

Version 1.4.1:

  • Minor bugfixes in documentation
  • Additional synchronous API for SBSDKOpticalTextRecognizer and SBSDKPDFRenderer

Version 1.4.0:

  • Added SBSDKCropViewController, a Scanbot-like UI for manual cropping of images, including magnetic snapping of edges to found contours

Version 1.3.0:

  • Removed static libraries
  • Changed distribution model to single embeddable framework containing all architectures and bitcode

Version 1.2.1:

  • Fixed crash in sample app by adding NSCameraUsageDescription and NSPhotoLibraryUsageDescription.

Version 1.2.0:

  • Improved all detectors accuracy
  • Added SBSDKImageMetadata and SBSDKImageMetadataProcessor to extract EXIF data etc. from image
  • Added SBSDKLensCameraProperties which can be passed to polygon based warping functions to improve the aspect ratio of the cropped image and let it be very close to the original documents aspect ratio
  • SBSDKLensCameraProperties can be extracted from SBSDKImageMetadata
  • Added 3 new filters: SBSDKImageFilterTypePhoto, SBSDKImageFilterTypePhotoBW1, SBSDKImageFilterTypePhotoBW2
  • The photo filter is useful to correct strong color tints, the 2 other new filters create different color-to-gray mappings
  • Added SBSDKMultipleDocumentsDetector (Beta) to detect multiple photos or documents on an image
  • Minor fixes and optimizations

Version 1.1.4:

  • Added cheque recognizer SBSDKChequeRecognizer

Version 1.1.2:

  • Improved credit card recognizer SBSDKCreditCardRecognizer

Version 1.1.1:

  • Beta: Added brand new credit card recognizer: SBSDKCreditCardRecognizer
  • Refactored Demo app: now contains Document Detection, Payform Detection and Credit Card detection
  • Fixed some bugs in SBSDKScannerViewController, e.g. automatic crop after manual snap
  • Added imageMode flag to SBSDKScannerViewController, can be set to grayscale mode to capture all images in grayscale mode for better memory footprint
  • Added API to SBSDImageProcessor to pass UIImage objects directly instead of NSURLs

Version 1.0.15:

  • Added new delegate method -(NSString )scannerController:(SBSDKScannerViewController )controller localizedTextForDetectionStatus:(SBSDKDocumentDetectionStatus)status to help you localizing the detection status strings

Version 1.0.14:

  • New color filter now working correctly
  • Fixed a bug in the binarization filter

Version 1.0.13:

  • Improved accuracy of automatic document detection
  • Introduced new colored document image filter

Version 1.0.12:

  • Rebuilt with Xcode 7 final
  • Updated some documentation

Version 1.0.11:


  • Fixed an orientation issue on iPad

Version 1.0.10:


  • Significantly improved peak memory usage when capturing images (~ 50%)
  • Added new delegate method - (BOOL)scannerController:shouldRotateInterfaceForDeviceOrientation:transform:(CGAffineTransform)transform

Version 1.0.9:


  • Added new delegate method (void)scannerControllerDidChangeDeviceOrientation:to:transform:

Version 1.0.8:


  • Added new method -(BOOL)captureStillImage to allow manual capturing using the delegate interface

Version 1.0.7:


  • Fixed wrong orientation of original image when capturing a document image

Version 1.0.6:


  • Fixed a bug that prevented displaying the detection statuses for poor light and noise
  • Added properties acceptedSizeScore and acceptedAngleScore, allowing you to alter the acceptance parameters for automatic shutter release (e.g. more perspective distortion or smaller document size)

Want to scan longer than one minute?

Generate a free trial license to test the Scanbot SDK thoroughly.

Get your free Trial License

What do you think of this documentation?

On this page

Scroll to top