Skip to main content

Changelog | iOS Barcode Scanner


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

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.

Version 5.0.0 (1 March 2024):

  • 🎉 New:
    • Added new RTU-UI V2 component, see SBSDKUI2BarcodeScannerViewController.
    • 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 streaming encryption support to SBSDKStorageCrypting.
    • Added Privacy manifest file (PrivacyInfo.xcprivacy) to the SDK.
    • Added new static property maximumRecommendedImageSize to SBSDKDeviceInformation.
    • Added new function resetAccumulation to SBSDKBarcodeScannerViewController.
  • ⚠️ Breaking Changes
    • 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 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.
    • Changed all SBSDKBarcodeDocumentType global constants to static properties of SBSDKBarcodeDocumentType.
    • 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.
  • 🚙 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.

Version 4.2.0 (7 December 2023):

  • 🎉 New:
    • Added support for new barcode type SBSDKBarcodeTypeGS1Composite.
  • 🚀 Improvements:
    • 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 (27 November 2023):

  • 🎉 New:
    • Added support for 6 new barcode types to the barcode scanner:
      • SBSDKBarcodeTypeUSPSIntelligentMail
      • SBSDKBarcodeTypeRoyalMail
      • SBSDKBarcodeTypeJapanPost
      • SBSDKBarcodeTypeRoyalTNTPost
      • SBSDKBarcodeTypeAustraliaPost
      • SBSDKBarcodeTypeDatabarLimited
  • 🐞 Bug fixes:
    • 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.

Version 4.0.3 (30 October 2023):

  • 🎉 New:
    • Added new method widestAvailableBackFacingCamera to SBSDKCameraDevice.
    • Added new method setupDefaultLicenseFailureHandlerWithCompletion: to the Scanbot class.
  • ⚠️ Breaking Changes:
    • Renamed photoQualityPriorization to photoQualityPrioritization everywhere in the SDK.

Version 4.0.2 (28 September 2023):

  • 🐞 Bug fixes:
    • Fixed a focusing issue with the new iPhone 15 Pro and 15 Pro Max.

Version 4.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 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.
  • 🐞 Bug fixes:
    • Fixed a crash when denying camera permission.
  • ⚠️ 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 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 3.7.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.
    • Added new class SBSDKPDFPagesExtractor.
    • Added new Classic UI component SBSDKBarcodeScanAndCountViewController which enables you to scan barcodes multiple times using the shutter button.
  • 🚀 Improvements:
    • Changed the default zoom range from (0.0 - 3.0) to (0.0 - 12.0) in all Classic UI 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.
  • 🐞 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 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.
    • 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.
  • 🚙 Under the hood:
    • Released versions of ScanbotBarcodeScannerSDK.framework and ScanbotBarcodeScannerSDK.xcframework are code-signed now using an iOS Distribution Certificate on behalf of "Scanbot SDK GmbH", so you can easily verify our SDKs.

Version 3.6.1 (25 May 2023):

  • 🐞 Bug fixes:
    • Fixed a crash within the barcode detector.

Version 3.6.0 (25 April 2023):

  • 🎉 New:
    • Added optional delegate methods barcodeScannerController:didUpdateDetectedBarcodes:, barcodeScannerController:configureCustomCell:forBarcode:withBarcodePolygonPath:, and barcodeScannerController:customCellFrameForProposedFrame: to SBSDKBarcodeScannerViewControllerDelegate.
    • Added new property automaticSelectionEnabled to SBSDKBarcodeScannerViewController.
    • Added new properties oneDTypes and twoDTypes to SBSDKBarcodeType.
    • Added properties dateOfDetection and age to SBSDKBarcodeScannerResult.
    • Added new methods init and attach:parentViewController:containerView to SBSDKBarcodeScannerViewController.
    • Added support for the barcode type SBSDKBarcodeTypeCode25, which is a variant of the Industrial-2of5 type without the checksum.
    • Added new methods init and attach:parentViewController:containerView for all Classic-UI components.
    • Added new property minimumTimeWithoutDeviceMotionBeforeDetection to SBSDKBaseScannerGeneralConfiguration.
  • 🚀 Improvements:
    • Improved barcode scanning with new ML models.
    • Substantial improvements to stacked RSS barcode scanning.
    • All Classic-UI view controllers can now be instantiated from storyboards.
  • ⚠️ Breaking Changes:
    • Changed the method initWithParentViewController:parentViewController:parentView:delegate of SBSDKBarcodeScannerViewController so that the parentViewController and the parentView must not be nil.
    • Removed property decodeStacks1D from SBSDKBarcodeAdditionalParameters. The barcode scanner now handles this automatically.
  • 🐞 Bug fixes:
    • Fixed a crash while logging URLs with spaces.
    • Fixed a rare crash with the application state observer.

Version 3.5.0 (3 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 videoFrameResolution of the new type SBSDKVideoFrameResolution to SBSDKBaseScannerGeneralConfiguration.
  • 🚀 Improvements:
    • Improved general speed and accuracy when detecting barcodes.
    • Improved recognition of stacked RSS Expanded barcodes.
  • ⚠️ Breaking Changes:
    • Refactored SBSDKBarcodeScannerViewControllerDelegate. Please check all your classes that conform to SBSDKBarcodeScannerViewControllerDelegate.
  • 🚙 Under the hood:
    • Updated third-party library TFlite to version 2.10.

Version 3.4.0 (15 December 2022):

  • 🎉 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 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.
  • 🚀 Improvements:
    • Improved recognition of inverted barcodes.
    • Improved performance and reduced false positive rate for stacked RSS barcodes.
    • Improved performance of DataMatrix and QR-codes.
  • 🐞 Bug fixes:
    • Fixed a crash when navigating from and to scanner view controllers.
    • Fixed a potential crash when the app using ScanbotSDK is suspended by the operating system.
  • ⚠️ 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.
  • 🚙 Under the hood:
    • Added third-party libraries (backward-cpp v1.6 and magic-enum v0.8.1).

Version 3.3.0 (19 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 initialScanDelay to SBSDKBaseScannerViewController, SBSDKUIBarcodesBatchScannerBehaviourConfiguration and SBSDKUIBarcodeScannerBehaviourConfiguration, which allows you to define how long the view controller waits (after its appearance) before scanning/recognizing.
    • 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.
  • 🐞 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.

Version 3.2.4 (26 September 2022):

  • ⚠️ Breaking Changes:
    • Removed bitcode from ScanbotBarcodeScannerSDK, Bitcode is no longer needed and Apple deprecated it with Xcode 14. Please turn Bitcode off for your apps using ScanbotBarcodeScannerSDK!
  • 🎉 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.

Version 3.2.3 (18 August 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.
    • Added new parameter flashButtonHidden to RTU-UI screen.
  • ⚠️ Breaking Changes:
    • Moved the parameters acceptedMachineCodeTypes and acceptedDocumentTypes from the initializers of SBSDKUIBarcodeScannerViewController to SBSDKUIBarcodeScannerBehaviorConfiguration and from SBSDKUIBarcodesBatchScannerViewController to SBSDKUIBarcodesBatchScannerBehaviorConfiguration.
    • 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.
  • 🚙 Under the hood:
    • Updated third-party library Boost to version 1.79.0

Version 3.2.2 (13 June 2022):

  • 🎉 New:
    • Classic UI components:
      • Added a new base scanner view controller SBSDKBaseScannerViewController which provides a lot of base functionality like zooming, view finder, energy management, focus locking, flash light, flash animation, automatic interruption of detection on disappearance or when presenting view controllers and more.
    • RTU-UI components:
      • Refactored all RTU-UI components to make use of the new Classic UI components under the hood.
  • 🚀 Improvements:
    • Improved 1D barcode recognition
  • ⚠️ Breaking Changes:
    • 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.
    • Replaced SBSDKFinderLayer by SBSDKFinderView.
    • Renamed SBSDKUIVideoContentMode to SBSDKVideoContentMode.

Version 3.2.1 (20 April 2022):

  • 🐞 Bug fixes:
    • Fixed a crash on specific PDF-417 codes with boarding passes

Version 3.2.0 (7 April 2022):

  • 🚀 Improvements:
    • Major improvements on barcode detection.
    • Improved barcode image cropping.
  • 🚙 Under the hood:
    • 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 3.1.3 (1 March 2022):

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

Version 3.1.2 (18 February 2022):

  • 🎉 New:
    • Added support for the GS1 barcode document format, see SBSDKGS1DocumentFormat.
    • Added the SBSDKBarcodeDocumentParser class which parses any given string for supported barcode document types.
  • ⚠️ Breaking Changes:
    • Renamed SBSDKDisabilityCertificateDocumentFormat to SBSDKMedicalCertificateDocumentFormat

Version 3.1.1 (26 January 2022):

  • 🐞 Bug fixes:
    • Fixes an issue with view finder 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.

Version 3.1.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.
    • 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.
    • 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.
    • 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 Aztec barcode recognition.
    • 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.
  • 🐞 Bug fixes:
    • Fixed crash when scanning barcodes on certain images.
    • Fixed a very rare problem in all scanner screens where the camera layer lost track of the device orientation.

Version 3.0.3 (3 November 2021):

  • 🐞 Bug fixes
    • Fixed some rare crashes
  • 🚙 Under the hood:

Version 3.0.2 (26 August 2021):

  • 🎉 New:
    • Added support for zooming in SBSDKUIBarcodesBatchScannerViewController
    • Added stripCheckDigits parameter in SBSDKBarcodeAdditionalParameters class.
  • ⚠️ Breaking Changes:
    • Added SBSDKSEPADocumentFieldTypePurpose, SBSDKSEPADocumentFieldTypeRemittance and SBSDKSEPADocumentFieldTypeInformation fields to SBSDKSEPADocumentFieldType. Removed SBSDKSEPADocumentFieldTypeReference and SBSDKSEPADocumentFieldTypeHint fields from it.
  • 🚀 Improvements:
    • Improved recognition of UPC/EAN barcodes due to ink spread

Version 3.0.1 (6 July 2021):

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

Version 3.0.0 (1 July 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 now the expiration date of expired licenses is being logged to the console.
  • 🚙 Under the hood:

Version 1.12.0 (9 June 2021):

  • 🎉 New:
    • 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 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 EAN13 barcodes.

Version 1.11.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:
    • SBSDKBarcodeScannerViewController: capturingFrameAspectRatio was renamed to finderAspectRatio, and capturingFrameMinimumInsetwas renamed to finderMinimumInset.
    • Removed SBSDKUIMachineCodeScannerConfiguration and related configurations. SBSDKUIBarcodeScannerViewController now uses SBSDKUIBarcodeScannerConfiguration as configuration.

Version 1.10.1 (9 April 2021):

  • 🎉 New:
    • Added enableGS1Decoding parameter to SBSDKBarcodeAdditionalParameters.
  • 🐞 Bug fixes
    • Fixed a bug in SBSDKUIBarcodesBatchScannerViewController where additionalDetectionParameters have not been applied.
    • Fixed a rare bug with calculation the finder rectangle in SBSDKBarcodeScannerViewController.
  • 🚙 Under the hood:
    • Updated OpenSSL to version 1.1.1j.

Version 1.10.0 (25 March 2021):

  • 🎉 New:
    • 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 barcodes only.
  • 🐞 Bug fixes
    • Fixed a rare out-of-memory crash in barcode (datamatrix) scanning on older devices
  • 🚀 Improvements:
    • Added download links for ScanbotBarcodeScannerSDK.framework and XCFramework in the Installation Guide of the documentation.

Version 1.9.1 (11 March 2021):

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

Version 1.9.0 (24 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 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.8.5 (2 Feb 2021):

  • ⚠️ 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.8.4 (21 Dec 2020):

  • 🐞 Bug fixes
    • Fixed included strip script

Version 1.8.3 (17 Dec 2020):

  • 🚀 Improvements:
    • Improved detection of ITF barcodes

Version 1.8.2 (7 Dec 2020):

  • 🚀 Improvements:
    • Improved DataMatrix detection

Version 1.8.1 (3 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

Version 1.8.0 (1 Dec 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
    • 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
  • 🚀 Improvements:
    • Better recognition of rotated PDF417 codes

Version 1.7.3 (24 Nov 2020)

  • 🚀 Improvements:
    • Improved barcode and PDF417 detection
  • 🐞 Bug fixes
    • Fixed a rare crash in SBSDKUIBarcodesBatchScannerViewController, that occurred after fetching updated data.

Version 1.7.2 (16 Nov 2020)

  • 🐞 Bug fixes
    • 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.7.1 (29 Oct 2020)

  • 🚀 Improvements:
    • Updated barcode recognition model to improve recognition of certain QR and data matrix codes

Version 1.7.0 (23 Sept 2020)

  • 🚀 Improvements:
    • Improved recognition of damaged DataMatrix barcodes
    • Improved recognition of Aztec barcodes
    • Modernized camera API usage and removed deprecated API usage, multiple new functions added to process a CVPixelBufferRef
  • ⚠️ Breaking Changes:
    • Removed support for iOS 9 and iOS 10
    • 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.6.0 (18 Aug 2020)

  • 🎉 New:
    • Added Barcode batch detector RTU UI component SBSDKUIBarcodesBatchScannerViewController.
    • Barcode scanner: SBSDKBarcodeScannerResult class now contains rawBytes parameter.
  • 🐞 Bug fixes:
    • Barcode scanner format parser fixes
  • ⚠️ Breaking Changes:
    • SBSDKBarcodeScannerResult initializer is now - (instancetype)initWithPolygon:(SBSDKPolygon *)poly type:(SBSDKBarcodeType *)type barcodeImage:(UIImage *)image rawTextString:(NSString *)string rawBytes:(NSData *)rawBytes;

Version 1.5.2 (6 Aug 2020)

  • 🐞 Bug fixes:
    • Fixed SDK size issue from the past release.

Version 1.5.1 (13 Jul 2020)

  • 🎉 New:
    • Beta: Added support for MSI Plessey barcode format. Disabled by default, must explicitly be allowed.
    • commonTypes array of barcodes in SBSDKBarcodeType now contain all commonly-used types of barcodes. Is recommended for most cases.
  • 🚀 Improvements:
    • Improved barcode and QR code live detection especially for very dense codes.
    • Added debug symbols for simulator architectures.
    • Improved handling of ink spread issues with Code128 barcodes.
    • Improved barcode detection model.
  • 🚙 Under the hood:
    • Updated OpenSSL to version 1.1.1g
    • Updated TensorFlow to version 2.2.0

Version 1.5.0 (28 May 2020)

  • 🚀 Improvements:
    • Improved recognition of inverted barcodes.
  • 🐞 Bug fixes:
    • Fixed an issue with uploading apps containing the Scanbot Barcode SDK (related Apple error codes ITMS-90166, ITMS-90535 and ITMS-90171).
  • ⚠️ Breaking Changes:
    • 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;.
    • In SBSDKUIEnableCameraUIConfiguration.h parameter enableCameraDesctiptionColor is renamed to enableCameraDescriptionColor.

Version 1.4.0 (8 May 2020):

  • 🚀 Improvements:
    • Improved barcode detection on still images.
    • In SBSDKUIBarcodeScannerViewController flash button was moved to navigation bar to save more space for finder layer.
  • ⚠️ Breaking Changes:
    • Renamed SBSDKPageAspectRatio class to SBSDKAspectRatio
    • In SBSDKUIMachineCodeScannerUIConfiguration removed bottomButtonsInactiveColor and bottomButtonsActiveColor. Parameter topBarButtonsColor now affects flash button active state. Added flashButtonInactiveColor.
    • In SBSDKBarcodeScannerViewController type of the parameter capturingFrameMinimumInset was changed from CGSize to UIEdgeInsets.
    • In SBSDKBarcodeScannerViewController parameter CGSize capturingFrameSize is changed to SBSDKAspectRatio *capturingFrameAspectRatio.
    • In SBSDKUIMachineCodeScannerUIConfiguration parameters CGFloat finderWidth and CGFloat finderHeight are replaced by SBSDKAspectRatio *finderAspectRatio.

Version 1.3.1 (3 Mar 2020):

  • 🎉 New:
    • Added property SBSDKBarcodeScannerViewController.flashLightEnabled.

Version 1.3.0 (6 Feb 2020):

  • 🎉 New:
    • Added SBSDKUIBarcodeImageStorage class for handling barcode images storage.

Version 1.2.0 (3 Feb 2020):

  • 🎉 New:
    • Added property SBSDKBarcodeScanner.enableHighSensitivityMode.
    • Added functionality for getting the expiration date of a license key with +[ScanbotSDK licenseExpirationDate].
  • 🐞 Bug fixes:
    • Fixed a crash for the "no camera access" case on RTU UI component.
    • Various minor bug fixes and improvements.

Version 1.1.0 (17 Dec 2019):

  • 🎉 New:
    • Added parameter SBSDKBarcodeScannerViewController.barcodeAccumulatedFramesCount. It allows to set amount of frames that barcode detector processes before running the detection on the best frame.
  • 🚀 Improvements:
    • Properties SBSDKBarcodeScanner.acceptedBarcodeTypes and SBSDKBarcodeScanner.accumulatedFramesCount can now be set after the initialization.
  • 🐞 Bug fixes:
    • Fixed a bug, that caused detecting of all barcodes, if dataMatrix barcode type was selected as accepted.

Version 1.0.0 (5 Dec 2019):

🎉 First release of the standalone Scanbot Barcode Scanner SDK.

Want to scan longer than one minute?

Generate your free "no-strings-attached" Trial License and properly test the Scanbot SDK.

Get your free Trial License

What do you think of this documentation?

On this page

Scroll to top