Changelog for the iOS Barcode Scanner SDK
tip
For additional details about the API, please refer to our API reference documentation.
Version 7.1.3 (15 October 2025)
- 🎉 New:
- Barcode Scanner:
- Barcode configurations for 1D barcode types have a new field
minimumNumberOfRequiredFramesWithEqualRecognitionResultthat requires this number of frames on which the barcode has to be detected.
- Barcode configurations for 1D barcode types have a new field
- Barcode Scanner:
- ⚠️ Breaking changes:
- Barcode Scanner:
- The field
minConfirmationsStandaloneEANinSBSDKBarcodeAccumulationConfigurationwas moved and renamed to the fieldminimumNumberOfRequiredFramesWithEqualRecognitionResultExtensionlessinSBSDKBarcodeFormatUpcEanConfiguration.
- The field
- Barcode Scanner:
Version 7.1.2 (1 September 2025)
- 🎉 New:
- General:
- Added property
isInterruptedtoSBSDKCameraSessionto indicate if the camera session was interrupted by the system.
- Added property
- General:
Version 7.1.0 (24 July 2025)
- 🎉 New:
- Barcode Scanner:
- Added new class
SBSDKBarcodeItemSelectionfor managing collections of selected barcode items. - Added property
identityStringtoSBSDKBarcodeItemto uniquely identify barcodes across detection frames. SBSDKBarcodeItemhas a new fieldrawBytesEncodingsthat contains the precise character encoding information ofrawBytes.- Added property
selectedZoomFactortoSBSDKUI2BarcodeScannerUIResultto retrieve the zoom factor used for the barcode scanning. SBSDKBarcodeItemhas a new fieldstructuredAppendInfo. The Structured Append mode can be used to split a message across multiple barcodes. If present, the corresponding information is returned.SBSDKBarcodeScannerConfigurationhas a new fieldaccumulationConfigwhich allows the accumulation of barcodes over multiple frames in live mode.SBSDKBarcodeItemhas a new fieldglobalIndexwhich allows identifying a barcode across multiple frames.
- Added new class
- General:
- Added property
hardwareButtonsEnabledtoSBSDKUI2CameraConfiguration. If enabled, it allows zooming using the camera control button (iPhone 16 series). - Added property
fpsLimittoSBSDKUI2CameraConfigurationandSBSDKUI2DocumentScannerCameraConfigurationto limit the rate of detections per second in normal performance mode. - Added property
didEndZoomHandlertoSBSDKZoomingImageScrollView. - Added analytics support with new classes:
SBSDKAnalyticsManager,SBSDKAnalyticsEvent,SBSDKAnalyticsFeature,SBSDKAnalyticsCategory,SBSDKAnalyticsEventName,SBSDKAnalyticsEventFactory, andSBSDKAnalyticsSubscriberfor tracking and managing SDK usage analytics.
- Added property
- Barcode Scanner:
- 🚀 Improvements:
- Barcode Scanner:
- Added NSCopying support to
SBSDKBarcodeTrackedViewPolygonStyleandSBSDKBarcodeTrackedViewTextStyle. SBSDKBoardingPassBarcodeDocumentParsernow supports up to version 8 of the IATA-BCBP standard.- vCard document parser was improved.
- Added NSCopying support to
- Barcode Scanner:
- 🐞 Bug fixes:
- Barcode Scanner:
- The carrier identifier for MaxiCode mode 3 might be encoded by using different codewords. Now all possible codewords are checked.
- vCard document parser now correctly processes the "FN" key as FormattedName.
- Fixed a bug in the Barcode Scanner RTU-UI v2 where the result callback was called multiple times.
- PDF Image Extractor:
- Fixes wrong orientation of extracted images when the PDF page has a transform applied.
- Storage Crypting:
- Fixed data corruption issues in AES encryption/decryption that could result in corrupted or partially corrupted files.
- Barcode Scanner:
- ⚠️ Breaking changes:
- Barcode Scanner:
- Removed properties
isSelectableandisAutomaticSelectionEnabledfromSBSDKBarcodeTrackingOverlayConfiguration. - Renamed parameter
isSelectedtoisHighlightedin tracking overlay methods. - Changed delegate method signatures in
SBSDKBarcodeTrackingOverlayControllerDelegate:- Removed
didChangeSelectedBarcodesmethod. - Added
shouldHighlightmethod to determine barcode highlighting state. - Added
proposedStyleparameter to style-related delegate methods.
- Removed
- Removed properties
- PDF Image Extractor:
- Removed parameter
scalingfrom all methods and replaced it by member variablescaleFactor.
- Removed parameter
- General:
- Replaced all occurrences of the deprecated
AVCaptureVideoOrientationenum by an equal enum namedSBSDKVideoOrientation.
- Replaced all occurrences of the deprecated
- Barcode Scanner:
- 🚙 Under the hood:
- Added flatbuffers 2.0.6.
Version 7.0.2 (27 May 2025)
- 🎉 New:
- Added properties
cameraSessionKeepAliveTimeoutandanimateCameraOverlaytoSBSDKBaseScannerGeneralConfiguration. - Added properties
sessionDidChangeHandlerandisSessionRunningtoSBSDKBaseScannerViewController. - Added functions
pauseandresumetoSBSDKBaseScannerViewController.
- Added properties
- 🚀 Improvements:
- GS1 Composite codes are now processed faster in Scan from Image mode.
- 🐞 Bug fixes:
- Fixed an issue where quickly stopping and starting the camera session of any scanner screen could lead to a crash or unpredictable behavior.
- ⚠️ Breaking changes:
- Removed property
stopsCameraSessionWhenDisappearedfromSBSDKBaseScannerGeneralConfiguration. To emulate this behavior, setcameraSessionKeepAliveTimeoutto a high value, e.g.TimeInterval.greatestFiniteMagnitude.
- Removed property
- 🚙 Under the hood:
- Upgraded xtensor to 0.26.0-scanbot.
- Upgraded xtl to 0.8.
- Upgraded xsmid to 13.2.
- Upgraded CLI11 to 2.5.
- Upgraded spdlog to 1.15.2.
- Upgraded Boost to 1.88.
Version 7.0.1 (23 April 2025)
- 🎉 New:
- Added property
hardwareButtonsEnabledtoSBSDKBaseScannerViewController(all Classic UI) which can be set tofalseto restore the original volume button behavior.
- Added property
- 🚀 Improvements:
- Improved the recognition of PDF417 barcodes in the barcode scanner.
- Improved the barcode scanner to better recognize the QR codes if the top left finder pattern is corrupted (up to QR code version size 20).
- 🐞 Bug fixes:
- Fixed an issue when scanning Code93 barcodes with
stripCheckDigits = false(default) and the check digit is an extension character. - Fixed a crash in the RTU-UI v2 Barcode Scanner when using
SBSDKUI2FindAndPickScanningMode.
- Fixed an issue when scanning Code93 barcodes with
Version 7.0.0 (26 March 2025):
- 🎉 New:
- Advanced configuration of Barcode Scanner. See
SBSDKBarcodeScannerConfiguration. - Added support for barcode types Pharma Code, Pharma Code Two Track, PZN (Pharmazentralnummer).
- Added support for the HIBC barcode document format.
- New predefined subsets (1D, 2D, Postal, Pharma, etc.) of barcode formats. See
SBSDKBarcodeFormat. - Introduced new property
optimizeOverlaystoSBSDKBarcodeScannerthat generates more accurate barcode polygons for usage in tracking overlays. - Introduced new barcode engine modes
nextGenLowPower,nextGenFarDistance, andnextGenLowPowerFarDistance. SeeSBSDKBarcodeScannerEngineMode. - Ability to configure the Barcode Scanner, its Classic UI and the Scan-and-Count Classic UI using the new
setConfiguration(_:)method. SeeSBSDKBarcodeScanner.setConfiguration(_:),SBSDKBarcodeScannerViewController.setConfiguration(_:),SBSDKBarcodeScanAndCountViewController.setConfiguration(_:). - Introduced a new barcode item object to better represent barcode results. See
SBSDKBarcodeItem. - Ability to get the
extractedDocumentFormatsfrom the barcode document parser. SeeSBSDKBarcodeDocumentParser.init(extractedDocumentFormats:)andSBSDKBarcodeDocumentParser.extractedDocumentFormats. - Ability to scan barcodes from frames of type of
SBSDKBaseScannerFrameusing the new methodSBSDKBarcodeScanner.scan(from: SBSDKBaseScannerFrame, useLiveMode:). - Ability to initialize the Barcode Scanner using the new initializer
SBSDKBarcodeScanner.init(formats:, live:, extractedDocumentFormats:). - Introduced a boolean
strictModefor certain barcode configurators. If this mode is disabled, it should allow for a higher detection rate in difficult scenarios, but with the possibility that false positive results may occur. Currently, we supportstrictModefor QR Code, Micro QR Code, rMQR Code, PDF417, MicroPDF417 and gs1Composite. - Introduced
SBSDKBarcodeFormatsandSBSDKBarcodeFormatthat represent the barcode format sets and the individual barcode types respectively. - Ability to configure the Barcode Scanner using the common barcode configuration, see
SBSDKBarcodeFormatCommonConfiguration. - Ability to know when a barcode was last detected using the new property
SBSDKBarcodeScannerAccumulatingResult.dateOfLastDetection. - Ability to return the barcode image in the result using the new property
SBSDKUI2BarcodeScannerConfiguration.returnBarcodeImage. - Images returned in scanner results are now represented as image references. See
SBSDKImageRef. They can be converted toUIImageobjects using the methodtoUIImage(). - Ability to process additional frames before they are passed to the main scanner using the new optional property
SBSDKBaseScannerViewController.additionalFrameProcessor.
- Advanced configuration of Barcode Scanner. See
- 🚀 Improvements:
- More robust QR code recognition, more tolerance for destroyed or missing timing patterns and alignment patterns and a better performance on artistic QR codes.
- QR codes with non-square finder patterns and QR codes embedded in adversarial backgrounds (flow codes and more generally) can now be recognized.
- Improved the false positive rate for ITF.
- Improved quiet zone checks for the barcode formats ITF, Code 11, MSI Plessey, IATA 2 of 5, Industrial 2 of 5 and Code 25.
- Improved barcode detection for various barcode types.
- Improved the performance when scanning four state postal barcodes (i.e. Australia Post, Japanese Post, RM4SCC, Royal TNT Post and USPS Intelligent Mail).
- Improved our Barcode Scanner with a significant speed-up in live mode on very large input resolutions.
- By default, Code 93 now includes check digits in the result. To disable this and restore the previous behavior, set
stripCheckDigits = true.
- 🐞 Bug fixes:
- Fixed processing of still images of indexed color space model in Barcode Scanner.
- Fixed a bug in the Barcode Scanner RTU-UI v2 where the flip camera button was not resetting the widest camera available if chosen.
- Fixed a bug in
SBSDKBarcodeScannerViewControllerthat could have lead to a crash when embedded within aUIViewControllerRepresentable. - Fixed a bug in the AR Barcode Scan and Count where the scanner would be stuck if there was no barcode detected.
- Fixed a UI bug in the Barcode Scanner RTU-UI v2 where the sheet button overlapped with the action bar.
- Fixed the returned results for all types of
SBSDKUpcEanExtensionBehavior. - Fixed the checksum of the Code 39 barcode format.
- ⚠️ Breaking changes:
- Removed property
codeinSBSDKBarcodeScannerAccumulatingResult, use the propertyiteminstead. - Removed properties
acceptedBarcodeTypes,acceptedDocumentTypes,extensionFilter,additionalDetectionParameters,acceptedDocumentTypes,useLiveMode,regularExpressionPatternandengineModeinSBSDKBarcodeScannerViewController, please use the newcopyCurrentConfiguration()andsetConfiguration(_:)methods, seeSBSDKBarcodeScannerConfiguration. - Removed initializers
init(types:),init(types:liveMode:)and methodsdetectBarCodes(on: UIImage, in: CGRect),detectBarCodes(on: UIImage, orientation: AVCaptureVideoOrientation, in: CGRect),detectBarCodes(on: CMSampleBuffer, orientation: AVCaptureVideoOrientation, in: CGRect)anddetectBarCodes(on: CMSampleBuffer, orientation: AVCaptureVideoOrientation)inSBSDKBarcodeScanner, use theSBSDKBarcodeScannerConfigurationto initialize the scanner, the detect methods have been renamed toscan. - Removed enum
SBSDKBarcodeImageGenerationTypeand propertybarcodeImageGenerationTypefromSBSDKBarcodeScannerViewControllerandSBSDKUIBarcodeScannerBehaviorConfiguration. - Replaced class
SBSDKPolygonEdgewithSBSDKLineSegment. - Replaced enum
SBSDKPolygonEdgeOrientationwithSBSDKLineSegmentOrientation. - Renamed class
SBSDKBarcodeTypetoSBSDKBarcodeFormat. - Renamed class
SBSDKBarcodeDocumentRootTypetoSBSDKBarcodeDocumentFormat. - Renamed initializer
init(barcodeResult:)toinit(barcodeItem:)inSBSDKBarcodeScannerAccumulatingResult. - Renamed method
barcodeScannerController(_:filterResults:)tobarcodeScannerController(_:filterBarcodes:)inSBSDKBarcodeScannerViewControllerDelegate. - Renamed class
SBSDKUI2BarcodeRecognizerConfigurationtoSBSDKBarcodeScannerConfiguration. - Renamed class
SBSDKUI2BarcodeScannerResulttoSBSDKUI2BarcodeScannerUIResult. - Changed the initializers
init?(parentViewController:parentView:)andinit?(parentViewController:parentView:delegate:)toinit?(parentViewController:parentView:configuration:)andinit?(parentViewController:parentView:configuration:delegate:)inSBSDKBarcodeScannerViewController. - Changed all methods of
SBSDKBarcodeTrackingOverlayControllerDelegateto use the newSBSDKBarcodeItemobject type. - Changed the method
make(withBarcode:)to use the newSBSDKBarcodeIteminSBSDKTrackedBarcodeInfoViewable. - Changed all methods of
SBSDKBarcodeScanAndCountViewControllerto use the newSBSDKBarcodeItem. - Changed the initializers
init?(parentViewController:parentView:)andinit?(parentViewController:parentView:delegate:)toinit?(parentViewController:parentView:configuration:)andinit?(parentViewController:parentView:configuration:delegate:)inSBSDKBarcodeScanAndCountViewController. - Renamed parameter name
handlertocompletionincreateandpresentfunctions ofSBSDKUI2BarcodeScannerViewController. - Renamed async function
presentAsync(on:configuration)topresent(on:configuration)inSBSDKUI2BarcodeScannerViewController. - Replaced
SBSDKUI2BarcodesExtensionFilterenum for RTU-UI v2 withSBSDKUpcEanExtensionBehaviorenum from Barcode Scanner Classic component API. - Renamed property
barcodesExtensionFilterinSBSDKUI2BarcodeScannerConfigurationtoextensions. - Renamed class
SBSDKBarcodesExtensionFiltertoSBSDKUIBarcodesExtensionFilter. - Changed the display names of various barcode formats (
SBSDKBarcodeFormat.name):Australia PosttoAustralian Post,CodaBartoCodabar,DataMatrixtoDatamatrix,GS1 Databar LimitedtoDatabar Limited,EAN_13toEAN 13,EAN_8toEAN 8,IATA 2of5toIATA 2 of 5,INDUSTRIAL 2of5toIndustrial 2 of 5,MICRO PDF417toMicro PDF 417,MicroQRCodetoMicro QR,QRCodetoQR,RMQR CodetoRMQR,UPC-AtoUPC A, andUPC-EtoUPC E.
- Removed property
- 🚙 Under the hood:
- The regex filters are applied for substrings instead of the entire output string.
- Upgraded nlohmann::json to 3.11.3.
- Upgraded xsimd to 13.0.
- Upgraded xtl to 0.7.7.
- Upgraded xtensor to 0.25.
- Upgraded yaml-cpp to 0.8.
Version 6.2.0 (24 January 2025):
- 🎉 New:
- Added support for encryption/decryption of images and PDFs using the AES-GCM algorithm with random 96-bit initialization vectors and variable length authentication tags, as required for ePA-FdV-certification by gematik and BSI. See
SBSDKAESGCMEncrypterclass. - Added support for encryption key derivation using PBKDF2, HKDF and Random key derivation on both the standard AES encrypter (
SBSDKAESEncrypter) and the new AES-GCM encrypter (SBSDKAESGCMEncrypter) with variable key lengths (128 and 256 bits). See the new protocolSBSDKStorageCryptingKeyGeneratorand the new classesSBSDKRandomKeyGenerator,SBSDKPBKDF2KeyGeneratorandSBSDKHKDFKeyGenerator. - Added protocol-based support for encryption key management. See the new protocol
SBSDKStorageCryptingKeyProviderand the new classSBSDKVolatileKeyProvider. - Added new class
SBSDKVolatileKeyProviderthat stores, restores and deletes keys in memory per context. For a persistent storage, e.g. in the keychain or in a file, you can implement your own key provider by conforming to theSBSDKStorageCryptingKeyProviderprotocol. - Added support for encryption/decryption on a encryption-key-per-context base. See
SBSDKStorageCryptingKeyProviderandSBSDKStorageCrypting. - Added new delegate method
barcodeTrackingOverlay(_ controller:overrideTextFor:proposedString:)toSBSDKBarcodeTrackingOverlayControllerDelegate.
- Added support for encryption/decryption of images and PDFs using the AES-GCM algorithm with random 96-bit initialization vectors and variable length authentication tags, as required for ePA-FdV-certification by gematik and BSI. See
- 🐞 Bug fixes:
- Fixed a bug in the barcode RTU-UI v2 action bar items where the
accessibilityDescriptionwas not being applied correctly.
- Fixed a bug in the barcode RTU-UI v2 action bar items where the
- 🚙 Under the hood:
- Removed third-party-library symbols from the binary to avoid linking conflicts.
Version 6.1.1 (28 November 2024):
- 🐞 Bug fixes:
- Fixes a crash in scanners when setting the same
minZoomandmaxZoominSBSDKZoomRange.
- Fixes a crash in scanners when setting the same
Version 6.1.0 (7 November 2024):
- 🎉 New:
- Added a new property
hardwareButtonsEnabledthat enables snapping from the hardware volume buttons and the new hardware camera control button toSBSDKBarcodeScanAndCountViewController, available on iOS 17.2 and later. - Added new zoom control slider controlled by the new camera control button on all view controllers, available on all the new iPhone 16 models.
- Added a new property
allowEmptySubmissiontoSBSDKUI2MultipleScanningMode.
- Added a new property
- 🐞 Bug fixes:
- Fixed KANJI mode for QR codes.
- Fixed a bug with wrong raw bytes returned for some 2D barcode types.
- ⚠️ Breaking Changes:
- Replaced the buggy initializer
init?(json: Data)inSBSDKUI2BarcodeScannerConfigurationby the static functionSBSDKUI2BarcodeScannerConfiguration.fromJson(json: String)?.
- Replaced the buggy initializer
Version 6.0.0 (22 October 2024):
- 🎉 New:
- Added new property
addAdditionalQuietZonetoSBSDKBarcodeAdditionalParameters. - Added new property
postalTypestoSBSDKBarcodeType.
- Added new property
- 🚀 Improvements:
- The AR-overlay in
SBSDKUI2FindAndPickScanningModeis now visible by default. - For CODE_128 and ITF, we improved the recognition of barcodes generated by defective thermal printers that do not print certain black bars correctly.
- The AR-overlay in
- 🐞 Bug fixes:
- Fixed a bug in RTU-UI v2 Barcode Scanner where extended barcodes are displayed along with their non-extended versions.
- Fixed a UI issue in the RTU-UI v2 Barcode Scanner where a title that was too long would cut off the cancel button.
- Fixed a UI issue in the RTU-UI v2 Find & Pick scanner in
buttonsheet mode where the counter badge was not visible. - Fixed a bug that did not mirror the front camera as expected.
- Fixed a bug in
SBSDKUI2SingleScanDialogModelProviderwhere the default displayed texts were not correct.
Version 5.2.1 (24 July 2024):
- 🚀 Improvements:
- Made the SwiftUI Barcode Scanner more flexible. See
SBSDKUI2BarcodeScannerView.
- Made the SwiftUI Barcode Scanner more flexible. See
- 🐞 Bug fixes:
- Fixed a UI issue on the RTU-UI V2 barcode sheet screen where the subtitle label was being vertically cut off.
- Fixed a UI issue on the RTU-UI V2 barcode confirmation sheet in the single use case where the loading indicator was not centered when the loading message was hidden.
- ⚠️ Breaking Changes:
- Changed SwiftUI Barcode Scanner initializer to accept blocks instead of binding vars. See
SBSDKUI2BarcodeScannerView.
- Changed SwiftUI Barcode Scanner initializer to accept blocks instead of binding vars. See
Version 5.2.0 (26 June 2024):
- 🎉 New:
- Added support for new barcode types Maxicode, rMQR code, Code 11 and Code 32.
- Added properties
australiaPostCustomerFormat,useIATA2OF5ChecksumanduseCode11ChecksumtoSBSDKBarcodeAdditionalParametersandSBSDKUI2BarcodeRecognizerConfiguration.
- 🚀 Improvements:
- Improved detection of UPC and EAN extensions.
- 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 barcode's image in the FindAndPick usecase of
SBSDKUI2BarcodeScannerViewControllerby specifyingSBSDKUI2ExpectedBarcode.barcodeImageKeyfor the expected barcode'simageproperty.
- 🐞 Bug fixes:
- Fixed a bug in the FindAndPick usecase of
SBSDKUI2BarcodeScannerViewControllerthat never showed the expected barcode's title, but always the barcode value.
- Fixed a bug in the FindAndPick usecase of
- ⚠️ Breaking Changes:
- Removed enum
SBSDKBarcodeDensity. - Removed property
codeDensityfromSBSDKBarcodeAdditionalParameters. - Removed enum values
validateanddecodefromSBSDKGS1Handlingand replaced them bydecodeStructure,decodeFull,validateStructureandvalidateFull.
- Removed enum
Version 5.1.3 (26 June 2024):
- 🚀 Improvements:
- Improved detection of UPC/EAN barcode extensions in live mode.
- The barcode scanner now supports transposed (mirrored/flipped) Aztec barcodes.
- 🐞 Bug fixes:
- Fixes a bug in
SBSDKUI2Colorwhere settingisArgbto true, resulted in a wrong color.
- Fixes a bug in
Version 5.1.1 (6 June 2024):
- 🐞 Bug fixes:
- Fixes a crash with all Classic UI components when energy saving is disabled.
- Fixes a bug in
SBSDKUI2BarcodeScannerViewControllerin single scan mode that prevented the barcode scanner from pausing the recognition while the submit dialog is shown.
Version 5.1.0 (21 May 2024):
- 🎉 New:
- Added new property
regularExpressionPatterntoSBSDKBarcodeScannerandSBSDKBarcodeScannerViewControllerto limit detection results. - Added support of the new 'Find and Pick' barcode scanning mode, see
SBSDKUI2FindAndPickScanningMode. - Added support for continuous scanning in
SBSDKUI2BarcodeScannerViewController. - Added Swift structured concurrency API (async/await) to
SBSDKUI2BarcodeScannerViewController. - Added support for new barcode type
SBSDKBarcodeTypeMicroPdf417. - Added a new class
SBSDKBarcodeDocumentConstantswhich has all the constants related to the barcode document format. - Added new classes for all the barcode document formats. See the API documentation for more details.
- Added a new class
SBSDKBarcodeDocumentRootTypewhich replaces the oldSBSDKBarCodeScannerDocumentFormat. - Added a new struct
SBSDKUI2BarcodeScannerViewwhich is the SwifUI wrapper forSBSDKUI2BarcodeScannerViewController. - Added possibility to inject an image to simulate a video stream and a captured image to any scanner's camera session for UI testing. See
Scanbot.testData,SBSDKTestDataandSBSDKSimulatedCameraMockData. - Added
isCameraFrozenproperty toSBSDKBaseScannerViewController. - Added new static properties
allFormats,commonFormats,oneDFormatsandtwoDFormatstoSBSDKUI2BarcodeFormat. - Added new class
SBSDKUI2BarcodeTextLocalizationand new propertylocalizationtoSBSDKUI2BarcodeScannerConfigurationto support localized strings. - Added support for parsing of AAMVA Certificate of Title for motor vehicle barcodes.
- Added new property
- 🚀 Improvements:
- IMPORTANT: Changed the default rear cameras on all scanners to the triple or dual camera. On some devices with triple camera this results in a different view port (more zoomed in). Please make sure to adapt your zoom ranges and factors.
- Improved image quality and capture speed on most iOS devices slightly by capturing HEIF images.
- Added support of haptic feedback on capable devices.
SBSDKPDFPagesExtractorfunctions now create the output directory if it doesn't exist yet.- Added support for structured logging (OSLog) to the SDK (iOS 14+).
- 🐞 Bug fixes:
- Fixes a bug with the asynchronous functions of
SBSDKPDFPagesExtractorwhich returned an empty array of image URLs. - Fixes a UI bug in the
SBSDKUI2BarcodeScannerViewController. - Fixed JSON representation of
SBSDKUI2BarcodeItem.
- Fixes a bug with the asynchronous functions of
- ⚠️ Breaking Changes:
- Important: The default rear camera in all scanners has been changed from the ultra-wide or wide camera to the triple or dual camera.
- Renamed function
captureJPEGStillImagetocaptureStillImageinSBSDKBaseScannerViewController(and all subclasses) andSBSDKCameraSession. - Renamed function
captureOutput(_ output:, didOutput:, from:)tocameraSession(_ session:, didOutput:)in protocolSBSDKCameraSessionDelegate. - Replaced the class
SBSDKBarcodeDocumentTypebySBSDKBarcodeDocumentRootType. - Renamed
supportedBarcodesTypes(for:)tosupportedBarcodeTypes(for:)in the new classSBSDKBarcodeDocumentRootType. - Removed the protocol
SBSDKBarCodeScannerDocumentFormatand all of its children classes. - Removed default properties of use cases in
SBSDKUI2BarcodeUseCase, now use the proper initializer for every use case, e.g.SBSDKUI2SingleScanningMode(). - Made the property
typeinSBSDKUI2BarcodeItemoptional. - Changed type of property
rawBytesfrom [UInt8] to Data.
- 🚙 Under the hood:
- 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.
Version 5.0.0 (1 March 2024):
- 🎉 New:
- Added new RTU-UI V2 component, see
SBSDKUI2BarcodeScannerViewController. - Added the
SBSDKFinderView.Styleenum and the propertystylethat defines the drawing styles of the finder view toSBSDKFinderViewandSBSDKBaseScannerViewFinderConfiguration. - Added the
viewFinderStyleproperty toSBSDKBaseScannerViewController. - Added streaming encryption support to
SBSDKStorageCrypting. - Added Privacy manifest file (
PrivacyInfo.xcprivacy) to the SDK. - Added new static property
maximumRecommendedImageSizetoSBSDKDeviceInformation. - Added new function
resetAccumulationtoSBSDKBarcodeScannerViewController.
- Added new RTU-UI V2 component, see
- ⚠️ Breaking Changes
- Deprecated
SBSDKUIBarcodeScannerViewControllerandSBSDKUIBarcodesBatchScannerViewControlleralong with their related classes. Please consider switching to the newSBSDKUI2BarcodeScannerViewController. - Changed
isLicenseValid,licenseStatusfrom functions to variables inScanbotclass. - Changed
defaultImageStoreEncrypter,defaultPDFEncrypter,shouldShowStatusBarOnScanningScreens,defaultStatusBarStylefrom separated getters and setters to variables inScanbotUIclass. - Removed
printInfo:,printError:andprintWarning:fromSBSDKLog. - Changed
setLoggingEnabled:to propertyisLoggingEnabledinSBSDKLog. - Functions
logInfo:,logError:andlogWarning:inSBSDKLognow acceptStringas a parameter instead ofva_list. - Changed all
SBSDKBarcodeTypeglobal constants to static properties ofSBSDKBarcodeType. - Refactored
SBSDKBarcodeType, it introduces a style naming change for all barcode types, please see the documentation. - Moved the global constants
SBSDKBarcodeMetadataEANUPCExtensionKeyandSBSDKBarcodeMetadataIsGS1MessageKeytoSBSDKBarcodeScannerResultas its static properties. - Changed all
SBSDKBarcodeDocumentTypeglobal constants to static properties ofSBSDKBarcodeDocumentType. - Replaced the default value of
acceptedBarcodeTypeswithSBSDKBarcodeType.commonTypes, this property will no longer accept nil anywhere, if it's set to an empty array, this will automatically be translated toSBSDKBarcodeType.commonTypes.
- Deprecated
- 🚙 Under the hood:
- Refactored all public SDK code to Swift.
Version 4.2.2 (21 March 2024):
- 🐞 Bug fixes:
- Changed privacy manifest to comply with the latest Apple specs.
Version 4.2.1 (13 February 2024):
- 🎉 New:
- Added Privacy manifest file (
PrivacyInfo.xcprivacy) to the SDK. - Added new static property
maximumRecommendedImageSizetoSBSDKDeviceInformation.
- Added Privacy manifest file (
Version 4.2.0 (7 December 2023):
- 🎉 New:
- Added support for new barcode type
SBSDKBarcodeTypeGS1Composite.
- Added support for new barcode type
- 🚀 Improvements:
- Added more control over how to handle GS1 messages in barcodes. See
SBSDKGS1Handling.
- Added more control over how to handle GS1 messages in barcodes. See
- ⚠️ Breaking Changes:
- The property
enableGS1Decodinghas been replaced by the enumSBSDKGS1HandlinginSBSDKBarcodeAdditionalParameters. GS1codes are now handled differently for various barcode types. Using the default optionPARSEwill give the same result as before for all barcode types, except ofRSS_EXPANDED. Previously, forRSS_EXPANDED, the result was inconsistently returned with parentheses. Now, to get results with parentheses for all barcode types, it is needed to choose the optionDECODE.
- The property
Version 4.1.0 (27 November 2023):
- 🎉 New:
- Added support for 6 new barcode types to the barcode scanner:
SBSDKBarcodeTypeUSPSIntelligentMailSBSDKBarcodeTypeRoyalMailSBSDKBarcodeTypeJapanPostSBSDKBarcodeTypeRoyalTNTPostSBSDKBarcodeTypeAustraliaPostSBSDKBarcodeTypeDatabarLimited
- Added support for 6 new barcode types to the barcode scanner:
- 🐞 Bug fixes:
- Fixed a bug where the finder text hint was still showing when
viewFinderEnabledwas disabled inSBSDKUIBarcodeScannerViewControllerandSBSDKUIBarcodesBatchScannerViewController. - Fixed a wrong polygon color in RTU-UI barcode scanner tracking overlay.
- Fixed a bug where the finder text hint was still showing when
Version 4.0.3 (30 October 2023):
- 🎉 New:
- Added new method
widestAvailableBackFacingCameratoSBSDKCameraDevice. - Added new method
setupDefaultLicenseFailureHandlerWithCompletion:to theScanbotclass.
- Added new method
- ⚠️ Breaking Changes:
- Renamed
photoQualityPriorizationtophotoQualityPrioritizationeverywhere in the SDK.
- Renamed
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
extensionFilterto all barcode scanning APIs (SBSDKBarcodeScanner,SBSDKBarcodeScannerViewController,SBSDKBarcodeScanAndCountViewController,SBSDKUIBarcodeScannerBehaviorConfigurationandSBSDKUIBarcodesBatchScannerBehaviorConfiguration). - Added property
extensiontoSBSDKBarcodeScannerResult. - Added new class
SBSDKScanAndCountPolygonStyle. - Added new delegate function
(nonnull SBSDKScanAndCountPolygonStyle *)barcodeScanAndCountController:(nonnull SBSDKBarcodeScanAndCountViewController *)controller polygonStyleForBarcode:(nonnull SBSDKBarcodeScannerResult *)codetoSBSDKBarcodeScanAndCountViewControllerDelegate. - Added
trackingOverlayControllerproperty toSBSDKBarcodeScannerViewController. - Introduced new classes and protocols to manage barcode tracking overlay:
SBSDKBarcodeTrackingOverlayController: Provides a customizable user interface for displaying barcodes and supports interaction with them.SBSDKBarcodeTrackingOverlayConfiguration: Represents the configuration options for anSBSDKBarcodeTrackingOverlayController.SBSDKBarcodeTrackedViewTextStyle: Represents the style and kind of text rendered below a barcode.SBSDKBarcodeTrackedViewPolygonStyle: Represents the style of the polygon rendered around a barcode.SBSDKTrackedBarcodeInfoView: A protocol that defines the methods and properties required for a custom tracking view.- Added functions to
SBSDKDeviceInformationto get the total, used and unused disk space on the device.
- Added property
- 🚀 Improvements:
- RTU-UI configurations can now be initialized with partial/incomplete JSON data by internally merging the partial data into the configurations default values.
- Improved the speed of barcode recognition for most barcode symbologies.
- 🐞 Bug fixes:
- Fixed a crash when denying camera permission.
- ⚠️ Breaking Changes:
- Due to a Swift compiler naming collision, the class
ScanbotSDKhas been renamed toScanbot. - Renamed the class
ScanbotSDKUItoScanbotUIfor consistency. - Removed barcode type
SBSDKBarcodeTypeUnknown. - Removed
qrBarcodeDetectionViewController:selectionOverlayTextFor:fromSBSDKUIBarcodeScannerViewController. - Renamed
selectionOverlayEnabledtoisTrackingOverlayEnabledinSBSDKBarcodeScannerViewController. - Renamed
SBSDKUIBarcodeSelectionOverlayConfigurationtoSBSDKUIBarcodeTrackingOverlayConfiguration - Renamed
selectionOverlayConfigurationtotrackingOverlayConfigurationinSBSDKUIBarcodeScannerConfigurationandSBSDKUIBarcodesBatchScannerConfiguration. - Replaced the properties
polygonEnabled,polygonColor,polygonFillColorandpolygonLineWidthby the propertypolygonStyleinSBSDKBarcodeScanAndCountViewController.
- Due to a Swift compiler naming collision, the class
Version 3.7.0 (22 June 2023):
- 🎉 New:
- Added support for the Micro QR barcode type.
- Added new property
viewFinderEnabledtoSBSDKUIBarcodeScannerBehaviorConfigurationandSBSDKUIBarcodesBatchScannerBehaviorConfiguration. - Added new properties
confirmationDialogTitleandconfirmationDialogMessagetoSBSDKUIBarcodeScannerTextConfiguration. - Added new class
SBSDKPDFPagesExtractor. - Added new Classic UI component
SBSDKBarcodeScanAndCountViewControllerwhich 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.
- 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
- 🐞 Bug fixes:
- Fixed the detection of a few false positive RSS Expanded codes in live mode.
- Fixed an unexpected behavior of the barcode scanner when passing
SBSDKBarcodeTypeUnknownas accepted barcode type. - Fixed a bug in all Classic UI and RTU-UI components where the
recognitionEnabledproperty might not have worked as intended. - Fixed a bug where
automaticSelectionEnabledwas not working properly inSBSDKUIBarcodesBatchScannerViewController.
- ⚠️ Breaking Changes:
- Removed support for iOS 11.x and 12.x. The minimum deployment target to use ScanbotSDK in your app is iOS 13.0!
- Removed class
SBSDKUIMachineCodesCollection. - Renamed the property
acceptedMachineCodeTypestoacceptedBarcodeTypesinSBSDKUIBarcodeScannerBehaviorConfigurationandSBSDKUIBarcodesBatchScannerBehaviorConfiguration. - 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:, andbarcodeScannerController:customCellFrameForProposedFrame:toSBSDKBarcodeScannerViewControllerDelegate. - Added new property
automaticSelectionEnabledtoSBSDKBarcodeScannerViewController. - Added new properties
oneDTypesandtwoDTypestoSBSDKBarcodeType. - Added properties
dateOfDetectionandagetoSBSDKBarcodeScannerResult. - Added new methods
initandattach:parentViewController:containerViewtoSBSDKBarcodeScannerViewController. - Added support for the barcode type
SBSDKBarcodeTypeCode25, which is a variant of the Industrial-2of5 type without the checksum. - Added new methods
initandattach:parentViewController:containerViewfor all Classic-UI components. - Added new property
minimumTimeWithoutDeviceMotionBeforeDetectiontoSBSDKBaseScannerGeneralConfiguration.
- Added optional delegate methods
- 🚀 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:delegateofSBSDKBarcodeScannerViewControllerso that theparentViewControllerand theparentViewmust not be nil. - Removed property
decodeStacks1DfromSBSDKBarcodeAdditionalParameters. The barcode scanner now handles this automatically.
- Changed the method
- 🐞 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
resultWithConfirmationEnabledanddialogTextFormatinSBSDKUIBarcodeScannerBehaviorConfigurationto display a confirmation dialog before returning the results. - Added new properties
confirmationDialogRetryButtonTitleandconfirmationDialogConfirmButtonTitleinSBSDKUIBarcodeScannerTextConfigurationto configure the text confirmation dialog buttons. - Added new properties
confirmationDialogStyle,confirmationDialogConfirmButtonStyleandconfirmationDialogRetryButtonStyleinSBSDKUIBarcodeScannerUIConfigurationto configure the style of the confirmation dialog buttons. - Added new property
automaticSelectionEnabledtoSBSDKUIBarcodeSelectionOverlayConfiguration. - Added new property
sourceImagetoSBSDKBarcodeScannerResult. - Added new property
videoFrameResolutionof the new typeSBSDKVideoFrameResolutiontoSBSDKBaseScannerGeneralConfiguration.
- Added new properties
- 🚀 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 toSBSDKBarcodeScannerViewControllerDelegate.
- Refactored
- 🚙 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 areSBSDKCameraDeviceTypeUltraWide,SBSDKCameraDeviceTypeDualWide,SBSDKCameraDeviceTypeDualandSBSDKCameraDeviceTypeTriple. - Added new barcode scanner parameter
decodeStacks1DtoSBSDKBarcodeAdditionalParameters. For stacked RSS barcodes, this should be set to the number of stacks with which the barcode was printed. - Added a new text format property configuration in barcodes overlay
SBSDKBarcodeOverlayFormatfor RTU-UI, seeoverlayTextFormatinSBSDKUIBarcodeSelectionOverlayConfigurationand for classical component, seeoverlayTextFormatinSBSDKBarcodeScannerViewController.
- Added support for more camera device types in
- 🚀 Improvements:
- Improved recognition of inverted barcodes.
- Improved performance and reduced false positive rate for stacked RSS barcodes.
- Improved performance of DataMatrix and QR-codes.
- 🐞 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 methodstartSessionis now asynchronous and has a completion handler.
- 🎉 New:
- Added support for IATA and Industrial barcode types.
- Added property
initialScanDelaytoSBSDKBaseScannerViewController,SBSDKUIBarcodesBatchScannerBehaviourConfigurationandSBSDKUIBarcodeScannerBehaviourConfiguration, 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 *> *)codestoSBSDKBarcodeScannerViewControllerDelegatewhich allows you to filter detected barcodes before post-processing them in the final delegate call. - Added properties
displayResultsOverlay,resultsOverlayColorandresultsOverlayTextColortoSBSDKBarcodeScannerViewControllerto display an AR-style overlay highlighting the found recognition result in real-time - Added properties
selectionOverlayEnabledas well asselectionPolygonColor,selectionTextColor,selectionTextContainerColorand their highlighted counterparts toSBSDKBarcodeScannerViewControllerto display and configure an overlay for selecting and highlighting recognized barcodes. - Added property
selectionOverlayConfigurationof the new classSBSDKUIBarcodeSelectionOverlayConfigurationtoSBSDKUIBarcodeScannerConfigurationandSBSDKUIBarcodesBatchScannerConfiguration. - Added property
applicationStateDidChangeHandlertoSBSDKBaseScannerViewControllerto notify you when the application moved to foreground or background state. - Added property
zoomFactorDidChangeHandlertoSBSDKBaseScannerViewControllerto notify you when the camera zoom factor has changed. - Added property
cameraZoomFactorAbsolutetoSBSDKBaseScannerViewControllerwhich returns the absolute camera's video zoom factor. - Added functions
freezeCameraandunfreezeCameratoSBSDKBaseScannerViewController,SBSDKUIBarcodeScannerViewControllerandSBSDKUIBarcodesBatchScannerViewController.
- 🐞 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
SBSDKSoundControllerto play a default or custom sound on different actions, e.g. successful code detection. - Added new method
playBleepSoundtoSBSDKBaseScannerViewControllerto play a default bleep sound.
- Added new class
Version 3.2.3 (18 August 2022):
- 🎉 New:
- Added support for JSON in all RTU-UI configurations. All
SBSDKUI...Configurationclasses now have aninitWithJSON:initializer - Added new parameter
codeDensitytoSBSDKBarcodeAdditionalParameters. - Added new parameter
flashButtonHiddento RTU-UI screen.
- Added support for JSON in all RTU-UI configurations. All
- ⚠️ Breaking Changes:
- Moved the parameters
acceptedMachineCodeTypesandacceptedDocumentTypesfrom the initializers ofSBSDKUIBarcodeScannerViewControllertoSBSDKUIBarcodeScannerBehaviorConfigurationand fromSBSDKUIBarcodesBatchScannerViewControllertoSBSDKUIBarcodesBatchScannerBehaviorConfiguration. - Removed the parameter
accumulatedFramesCountand the corresponding initializers fromSBSDKBarcodeScanner. - Removed the parameter
barcodeAccumulatedFramesCountfromSBSDKBarcodeScannerViewControllerandSBSDKScannerViewController. - Removed parameters
imageOrientationLockandallowedInterfaceOrientationsfrom all RTU-UI configurations. This has been replaced by the combined propertyorientationLockMode.
- Moved the parameters
- 🚙 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
SBSDKBaseScannerViewControllerwhich 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.
- Added a new base scanner view controller
- RTU-UI components:
- Refactored all RTU-UI components to make use of the new Classic UI components under the hood.
- Classic UI components:
- 🚀 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
SBSDKBarcodeScannerViewControllerDelegatethe 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 useoverlayView. - removed property
cameraZoomRange, please usezoomConfiguration.zoomRange. - removed property
cameraZoomFactor, please usezoomConfiguration.initialZoomFactor. - removed property
doubleTapToZoomEnabled, please usezoomConfiguration.doubleTapToZoomEnabled. - removed property
pinchToZoomEnabled, please usezoomConfiguration.pinchToZoomEnabled. - removed property
shouldUseFinderFrame. - removed property
finderAspectRatio, please useviewFinderConfiguration.aspectRatio. - removed property
finderMinimumInset, please useviewFinderConfiguration.minimumInset. - removed property
previewBackgroundColor. - removed property
viewFinderBackgroundColor, please useviewFinderConfiguration.backgroundColor. - removed property
viewFinderLineColor, please useviewFinderConfiguration.lineColor. - removed property
viewFinderLineWidth, please useviewFinderConfiguration.lineWidth.
- replaced designated initializer with
- Replaced
SBSDKFinderLayerbySBSDKFinderView. - Renamed
SBSDKUIVideoContentModetoSBSDKVideoContentMode.
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
SBSDKBarcodeScannerViewControllerandSBSDKUIBarcodeScannerViewControllerin landscape orientation.
- Fixed a bug with wrong camera preview orientation when starting
Version 3.1.2 (18 February 2022):
- 🎉 New:
- Added support for the GS1 barcode document format, see
SBSDKGS1DocumentFormat. - Added the
SBSDKBarcodeDocumentParserclass which parses any given string for supported barcode document types.
- Added support for the GS1 barcode document format, see
- ⚠️ Breaking Changes:
- Renamed
SBSDKDisabilityCertificateDocumentFormattoSBSDKMedicalCertificateDocumentFormat
- Renamed
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
SBSDKUIBarcodeScannerViewControllerandSBSDKUIBarcodesBatchScannerViewController.
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
isFocusLockEnabledand functions- (BOOL)beginFocusLockAtLensPosition:(CGFloat)lensPosition,- (void)endFocusLocktoSBSDKBarcodeScannerViewControllerandSBSDKCameraSession. - Added properties
focusLockEnabledandfocusLockPositiontoSBSDKUIBarcodeScannerBehaviorConfigurationandSBSDKUIBarcodesBatchScannerBehaviorConfiguration.
- Added property
- Support for front-facing, telephoto and wide angle cameras in RTU-UI and classic components:
- New classes for camera support:
SBSDKCameraDevice,SBSDKUIConfigurationandSBSDKUICameraConfiguration. - New function for camera support:
[SBSDKCameraSession initForFeature:withDevice:]. - New property for camera support:
cameraDeviceinSBSDKBaseCameraViewControllerwhich is the base class for all classic components. - All SBSDKUIConfiguration objects now derive from
SBSDKUIConfigurationwhich adds the new subconfigrationcameraConfigurationof typeSBSDKUICameraConfiguration.
- New classes for camera support:
- Added properties
rawTextStringWithExtensionandmetadatatoSBSDKBarcodeScannerResultto support barcode extensions of UPC and EAN barcodes. - The results screen of the
SBSDKUIBarcodesBatchScannerViewControllernow displaysrawTextStringWithExtensioninstead ofrawTextString. - Support for barcode scanner results filtering in RTU-UI barcode scanning components:
- New subclassable objects
SBSDKUIBarcodeFilterandSBSDKUIBarcodeExtensionsFilter. - New property
barcodeFilterinSBSDKUIBarcodeScannerBehaviorConfigurationandSBSDKUIBarcodesBatchScannerBehaviorConfiguration.
- New subclassable objects
- Added ability to disable auto-focus by locking the lens at the specified lens position.
- 🚀 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:
- Updated some third party libraries. (see Third-party Libraries)
Version 3.0.2 (26 August 2021):
- 🎉 New:
- Added support for zooming in
SBSDKUIBarcodesBatchScannerViewController - Added
stripCheckDigitsparameter inSBSDKBarcodeAdditionalParametersclass.
- Added support for zooming in
- ⚠️ Breaking Changes:
- Added
SBSDKSEPADocumentFieldTypePurpose,SBSDKSEPADocumentFieldTypeRemittanceandSBSDKSEPADocumentFieldTypeInformationfields toSBSDKSEPADocumentFieldType. RemovedSBSDKSEPADocumentFieldTypeReferenceandSBSDKSEPADocumentFieldTypeHintfields from it.
- Added
- 🚀 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.xcframeworkor via CocoaPods now will run natively on M1 Mac simulators without having to start Xcode in Rosetta 2 mode
- Added support for Apple Silicon M1 simulators. Your app build with the
- ⚠️ 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
engineModeproperty of typeSBSDKBarcodeEngineModeon barcode scanning APIs likeSBSDKBarcodeScanner,SBSDKBarcodeScannerViewController, andSBSDKUIBarcodesBatchScannerBehaviorConfigurationto switch between the legacy barcode engine and the new Next Generation barcode engine. By default, the new engine is used.
- ⚠️ Breaking Changes:
- Removed
enableHighSensitivityModeproperty onSBSDKBarcodeScanner, because it is no longer needed
- Removed
- 🚀 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:
- New third-party libraries: xsimd, xtl und xtensor (see Third-party Libraries)
Version 1.12.0 (9 June 2021):
- 🎉 New:
- Added support for MSI-Plessey barcodes again: see
SBSDKBarcodeTypeMSIPlessey, MSI checksum algorithm is selectable viaSBSDKBarcodeAdditionalParametersproperty namedmsiPlesseyChecksumAlgorithm, by default MSI-Plessey is disabled, you must explicitly passSBSDKBarcodeAdditionalParametersas accepted type to any barcode scanning class
- Added support for MSI-Plessey barcodes again: see
- 🚀 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
SBSDKBarcodeScannerViewControllerandSBSDKUIBarcodeScannerViewController. Use the new propertiescameraZoomRange,cameraZoomFactor,shouldAnimateZooming,doubleTapToZoomEnabledandpinchToZoomEnabledonSBSDKBarcodeScannerViewControllerandSBSDKUIBarcodeScannerBehaviorConfigurationto configure zooming the camera to scan small barcodes. - Added support for document type filtering to
SBSDKUIBarcodesBatchScannerViewController
- Added support for zooming in
- ⚠️ Breaking Changes:
SBSDKBarcodeScannerViewController:capturingFrameAspectRatiowas renamed tofinderAspectRatio, andcapturingFrameMinimumInsetwas renamed tofinderMinimumInset.- Removed
SBSDKUIMachineCodeScannerConfigurationand related configurations.SBSDKUIBarcodeScannerViewControllernow usesSBSDKUIBarcodeScannerConfigurationas configuration.
Version 1.10.1 (9 April 2021):
- 🎉 New:
- Added
enableGS1Decodingparameter toSBSDKBarcodeAdditionalParameters.
- Added
- 🐞 Bug fixes
- Fixed a bug in
SBSDKUIBarcodesBatchScannerViewControllerwhereadditionalDetectionParametershave not been applied. - Fixed a rare bug with calculation the finder rectangle in
SBSDKBarcodeScannerViewController.
- Fixed a bug in
- 🚙 Under the hood:
- Updated OpenSSL to version 1.1.1j.
Version 1.10.0 (25 March 2021):
- 🎉 New:
- Added
additionalParametersproperty toSBSDKBarcodeScannerandSBSDKUIMachineCodeScannerBehaviorConfiguration,additionalDetectionParameterstoSBSDKBarcodeScannerViewControllerandSBSDKUIBarcodesBatchScannerBehaviorConfigurationandadditionalBarcodeDetectionParameterstoSBSDKScannerViewControllerwhich lets you setup a minimum and maximum text length as well as a quiet zone. Currently works for ITF barcodes only.
- Added
- 🐞 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,
acceptedDocumentTypesproperties inSBSDKBarcodeScanner,SBSDKBarcodeScannerViewControllerandSBSDKUIBarcodeScannerViewController - Added global control of status bar visibility and style in SBSDKUI components, see functions
+ (void)setShouldShowStatusBarOnScanningScreens:(BOOL)shouldShowand+ (void)setDefaultStatusBarStyle:(UIStatusBarStyle)stylein the classScanbotSDKUI
- Added support for Swiss QR codes, see
- 🐞 Bug fixes
- Fixed a UI problem in
SBSDKUIBarcodesBatchScannerViewController
- Fixed a UI problem in
Version 1.8.5 (2 Feb 2021):
- ⚠️ Breaking Changes:
- (nullable instancetype)initWithKey:(NSString *)key mode:(SBSDKAESEncrypterMode)modewas replaced by- (nullable instancetype)initWithPassword:(NSString *)password mode:(SBSDKAESEncrypterMode)mode
- 🐞 Bug fixes
- Fixed a potential crash in
SBSDKUIBarcodesBatchScannerViewController
- Fixed a potential crash in
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
autoCancelTimeouttoSBSDKUIMachineCodeScannerBehaviorConfiguration - Added new optional delegate function
- (void)qrBarcodeDetectionViewControllerDidTimeout:(nonnull SBSDKUIBarcodeScannerViewController *)viewController;toSBSDKUIBarcodeScannerViewController
- Added new property
- 🚀 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>)encrypterofScanbotSDKUIclass, this will encrypt all stored images in these components SBSDKAESEncrypterprovides built-in support for AES128 and AES256 encryption, but you can create your own encrypter by implementing a class conforming to the protocolSBSDKStorageCrypting
- Added (customizable) encryption/decryption to image stores; new classes:
- 🚀 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.
- Fixed a rare crash in
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
- Fixed a deadlock in
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:
SBSDKBarcodeScannerResultclass now containsrawBytesparameter.
- Added Barcode batch detector RTU UI component
- 🐞 Bug fixes:
- Barcode scanner format parser fixes
- ⚠️ Breaking Changes:
SBSDKBarcodeScannerResultinitializer 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.
commonTypesarray of barcodes inSBSDKBarcodeTypenow 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:
SBSDKMedicalPlanPatientFieldTypeAllergysAndIntolerancesis renamed toSBSDKMedicalPlanPatientFieldTypeAllergiesAndIntolerancesSBSDKMedicalPlanSubheadingReceipeFieldTypeenum is renamed toSBSDKMedicalPlanSubheadingPrescriptionFieldType. Its casesSBSDKMedicalPlanSubheadingReceipeFieldTypeGeneralInformationandSBSDKMedicalPlanSubheadingReceipeFieldTypeReceipeFreeTexthas been renamed toSBSDKMedicalPlanSubheadingPrescriptionFieldTypeGeneralInformationandSBSDKMedicalPlanSubheadingPrescriptionFieldTypePrescriptionFreeTextrespectively.SBSDKMedicalPlanSubheadingReceipeFieldclass name is changed toSBSDKMedicalPlanSubheadingPrescriptionField.SBSDKMedicalPlanSubheadingReceipeclass name is changed toSBSDKMedicalPlanSubheadingPrescription.- Cases of
SBSDKVCardDocumentFieldType-SBSDKVCardDocumentFieldTypeCallendarURIForRequestsandSBSDKVCardDocumentFieldTypeCallendarURIhas been renamed toSBSDKVCardDocumentFieldTypeCalendarURIForRequestsandSBSDKVCardDocumentFieldTypeCalendarURIrespectively. - Case of
SBSDKBoardingPassDocumentFieldType-SBSDKBoardingPassDocumentFieldTypeSecongNonConsecutiveBaggageTagLicensePlateNumberhas been renamed toSBSDKBoardingPassDocumentFieldTypeSecondNonConsecutiveBaggageTagLicensePlateNumber - In
SBSDKBarcodeScannerViewControllerDelegatethe 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.hparameterenableCameraDesctiptionColoris renamed toenableCameraDescriptionColor.
Version 1.4.0 (8 May 2020):
- 🚀 Improvements:
- Improved barcode detection on still images.
- In
SBSDKUIBarcodeScannerViewControllerflash button was moved to navigation bar to save more space for finder layer.
- ⚠️ Breaking Changes:
- Renamed
SBSDKPageAspectRatioclass toSBSDKAspectRatio - In
SBSDKUIMachineCodeScannerUIConfigurationremovedbottomButtonsInactiveColorandbottomButtonsActiveColor. ParametertopBarButtonsColornow affects flash button active state. AddedflashButtonInactiveColor. - In
SBSDKBarcodeScannerViewControllertype of the parametercapturingFrameMinimumInsetwas changed fromCGSizetoUIEdgeInsets. - In
SBSDKBarcodeScannerViewControllerparameterCGSize capturingFrameSizeis changed toSBSDKAspectRatio *capturingFrameAspectRatio. - In
SBSDKUIMachineCodeScannerUIConfigurationparametersCGFloat finderWidthandCGFloat finderHeightare replaced bySBSDKAspectRatio *finderAspectRatio.
- Renamed
Version 1.3.1 (3 Mar 2020):
- 🎉 New:
- Added property
SBSDKBarcodeScannerViewController.flashLightEnabled.
- Added property
Version 1.3.0 (6 Feb 2020):
- 🎉 New:
- Added
SBSDKUIBarcodeImageStorageclass for handling barcode images storage.
- Added
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].
- Added property
- 🐞 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.
- Added parameter
- 🚀 Improvements:
- Properties
SBSDKBarcodeScanner.acceptedBarcodeTypesandSBSDKBarcodeScanner.accumulatedFramesCountcan now be set after the initialization.
- Properties
- 🐞 Bug fixes:
- Fixed a bug, that caused detecting of all barcodes, if
dataMatrixbarcode type was selected as accepted.
- Fixed a bug, that caused detecting of all barcodes, if
Version 1.0.0 (5 Dec 2019):
🎉 First release of the standalone Scanbot Barcode Scanner SDK.
Want to scan longer than one minute?
Generate a free trial license to test the Scanbot SDK thoroughly.
Get free trial license