Changelog for the iOS Barcode Scanner SDK
tip
For additional details about the API, please refer to our API reference documentation.
Version 8.0.0 (13 January 2026)
- 🎉 New:
- General:
- The SDK now supports a new license key format, which does not contain special characters or line breaks.
SBSDKImageRefconstructor now supports HEIC images.- Added the possibility for providing custom encryption for individual images from path load / image save operations.
- Added property
cameraLiveScannerResolutionto all the RTU-UI v2 screens to control the camera live scanning resolution. - Added property
keepScreenOnto all RTU-UI v2 screens to prevent the system from going idle or entering the lockscreen while scanning. - Added property
keepScreenOnto all Classic UI screens (seeSBSDKBaseScannerEnergyConfiguration) to prevent the system from going idle or entering the lockscreen while scanning. - Added mandatory delegate functions
...scannerViewController(controller:didFailScanning:)to all Classic-UI components. - All scanner and generator classes now throw errors instead of returning
nilorfalsein case of failures. - Added a read-only property
colorStringtoSBSDKUI2Colorto retrieve the color in HEX format or a reference to a palette color. - Added functions
toRgba()andtoArgb()toSBSDKUI2Colorto retrieve the color in RGBA and ARGB hex formats.
- Barcode Scanner:
- New supported document parser for British Columbia driver licenses PDF417 codes.
- Introduced a new algorithm for recognizing 1D symbologies, enhancing performance with blurred and distant barcodes. This feature is enabled by default but can be turned off using the
enableOneDBlurScannerproperty in barcode format configurations on low-power devices if necessary. - Added a new
SBSDKBarcodeScannerEngineMode:nextGenMaxDistance, which is optimized for scanning from far distances on very high-power devices with a 4K video stream. - All 1D barcode formats can be configured with a new
oneDConfirmationModewhich isthoroughby default. Setting it tominimalornonecould lead to higher recall in difficult scenarios, but could also cause more false positives. SeeSBSDKOneDConfirmationMode.
- General:
- 🚀 Improvements:
- General:
- The "Created TensorFlow Lite XNNPACK delegate for CPU." log is no longer an output in production builds.
- If a global or custom encrypter is set when an image is created from a file, it will be automatically detected if the image is encrypted or not. Note that now
encryptionModeis NOT ignored if a custom encrypter/decrypter is used. - When creating an
SBSDKImageReffromUIImageor from a .png file containing an alpha channel, they are blended with a user specified canvas color instead of simply discarding the alpha channel. It is possible to select whether to use aWHITEorBLACKbackground inSBSDKRawImageLoadOptions,SBSDKPathImageLoadOptions, andSBSDKBufferImageLoadOptions. - Improved error handling and reporting in all scanners, this includes licensing errors, cancellation by user, file I/O errors, image conversion errors, and scanning errors. In case of an error, an
SBSDKErroris thrown with a descriptive error message and error code. - Camera sessions no longer show a black screen in case of license error. Instead, the camera runs but the detection fails with appropriate license error.
- Classic UI components can now be configured directly by setting the properties of the configuration objects instead of creating new configuration objects.
- Barcode Scanner:
- Improved quiet zone checks for the barcode format
PharmaCodeto reduce the false positive rate. - Reduced the false positive rate of blurred barcodes in live mode when the barcode is only partially visible.
- Improved quiet zone checks for the barcode format
- General:
- 🐞 Bug fixes:
- General:
- SBSDKImageRef: If
SBSDKImageRefwas created in a lazy mode from an encrypted file and then saved to some location, a simple copy was performed. Because of this, the created file could become invalid if the decryption key depends on location. - SBSDKImageRef: If
SBSDKImageRefwas saved to an already existing location, in some cases it could return an error instead of overwriting the existing file. - SBSDKImageRef: Fixed possibility of
SBSDKImageRefto be saved as an invalid JPEG (when only part of the image was actually saved).
- SBSDKImageRef: If
- Barcode Scanner:
- Fixed a bug in Barcode RTU-UI v2 Multiple Scanning Mode where the count of the sheet button was not updated properly.
- General:
- ⚠️ Breaking changes:
- General:
- API Consistency Improvements: We went through our APIs and made several improvements to make them more consistent and easier to use. The SDK now throws errors instead of returning
nilorfalsein many places. This also affects how you handle results from various operations in the SDK. Please review your error handling code when updating to this version. - For 'Scan from Image',
SBSDKImageRefis now used as the input and output for all features, and the function is now namedrun(image:). SBSDKImageRefis now immutable. Theclone()method has been removed, and cloning now acquires a new strong reference.SBSDKImageRef:encryptionModedefault value has been replaced withAUTO.- Changed the completion handlers of all RTU-UI v2 screens to either return a result or an error. Cancellation by user is treated as an error. Check
SBSDKError.isCanceled. - The default license error handler
Scanbot.defaultLicenseFailureHandlerno longer tries to display an alert, instead it logs the error to the console.
- API Consistency Improvements: We went through our APIs and made several improvements to make them more consistent and easier to use. The SDK now throws errors instead of returning
- Barcode Scanner:
- No longer returns crops by default. This can be re-enabled in the configuration.
- The
MicroQrCodebarcode format has been removed from the list of common barcode formats. - Removed Barcode RTU-UI v1 completely, including
SBSDKUIBarcodeScannerViewController,SBSDKUIBarcodesBatchScannerViewControllerand all related components. - Removed
SBSDKUI2BarcodeScannerConfigurationand replaced it withSBSDKBarcodeScannerConfigurationin Barcode RTU-UI v2. - Removed properties
isSelectableandisAutomaticSelectionEnabledfromSBSDKBarcodeTrackingOverlayConfiguration. - Renamed parameter
isSelectedtoisHighlightedin tracking overlay methods. - Changed delegate method signatures in
SBSDKBarcodeTrackingOverlayControllerDelegate:- Removed
didChangeSelectedBarcodesmethod. - Added
shouldHighlightmethod to determine barcode highlighting state. - Added
proposedStyleparameter to style-related delegate methods.
- Removed
- General:
- 🚙 Under the hood:
- Upgraded libzueci to 1.0.1.
- Added snowflake-arctic-embed-xs eadfba3b.
Version 7.1.4 (28 October 2025)
- 🐞 Bug fixes:
- Barcode Scanner:
- Fixed truncated text on the back button in the RTU-UI v2 Barcode Scanner screen.
- Barcode Scanner:
Version 7.1.3 (15 October 2025)
- 🎉 New:
- Barcode Scanner:
- Barcode configurations for 1D barcode types have a new field
minimumNumberOfRequiredFramesWithEqualRecognitionResultthat requires this number of frames on which the barcode has to be detected.
- Barcode configurations for 1D barcode types have a new field
- 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