Release History and Changelog

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:

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):

Version 1.11.0 (29 Sep 2020):

  • 🎉 New:
  • 🚀 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):

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:
  • ⚠️ 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):

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):

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):

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:

  • 🚀 Improvements:

Version 1.9.11 (26 Mar 2020):

  • 🎉 New:

  • ⚠️ 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:

  • ❌ Deprecated API:

Version 1.9.8 (15 Jan 2020):

Version 1.9.7 (25 Oct 2019):

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):

Version 1.9.4 (12 Aug 2019):

Version 1.9.3 (30 Jul 2019):

Version 1.9.2 (6 Jun 2019):

Version 1.9.1 (23 May 2019):

Version 1.9.0 (3 May 2019):

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):

Version 1.8.4 (31 Jan 2019):

Version 1.8.3 (30 Jan 2019):

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):

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):

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:

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:

Version 1.7.0:

Version 1.6.2:

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:

Version 1.5.8:

Version 1.5.7:

Version 1.5.6:

Version 1.5.5:

  • added Disability Certificate Recognizer

Version 1.5.4:

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:

Version 1.5.0:

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:

Version 1.4.6:

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

Version 1.4.5:

Version 1.4.4:

Version 1.4.3:

Version 1.4.2:

Version 1.4.1:

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:

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)