Changelog | iOS Document Scanner
tip
For additional details about the API, please refer to our API reference documentation.
Version 6.1.1 (28 November 2024):
- 🐞 Bug fixes:
- Fixed a bug that did not properly store a
SBSDKScannedDocument
without pages. - Fixed a bug that caused
SBSDKTIFFImageWriter
to crash when the input images are encrypted.
- Fixed a bug that did not properly store a
- ⚠️ Breaking Changes:
- Changed signature of
SBSDKScannedPage
methodapply(rotation: SBSDKImageRotation?, polygon: SBSDKPolygon?, filters: [SBSDKParametricFilter]?)
toapply(rotation: SBSDKImageRotation, polygon: SBSDKPolygon?, filters: [SBSDKParametricFilter]?)
to properly expose it to Objective-C.
- Changed signature of
Version 6.1.0 (7 November 2024):
- 🎉 New:
- Added a new property
hardwareButtonsEnabled
that enables snapping from the hardware volume buttons and the new hardware camera control button toSBSDKDocumentScannerViewController
andSBSDKBarcodeScanAndCountViewController
, 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
captureWithHardwareButtonsEnabled
toSBSDKUI2DocumentScannerCameraConfiguration
. - Added a new mode
SBSDKUI2PageSnapFeedbackNone
to disable the animation when a page is captured. - Added a new property
allowEmptySubmission
toSBSDKUI2MultipleScanningMode
.
- Added a new property
- 🚀 Improvements:
- Document detector:
- Improved detection speed and robustness against orientation changes.
- Improved robustness against picking up random contours.
- Improved robustness against documents with colored corners, booklets, handheld documents and cards, documents near edges of tables and overlapping documents.
- Document detector:
- 🐞 Bug fixes:
- Fixed KANJI mode for QR codes.
- Fixed a bug with wrong raw bytes returned for some 2D barcode types.
- Fixed potential broken generic document field validation status that could lead to a crash or undefined behavior.
- Fixed a bug with the page counters visibility in the RTU-UI v2 Document Scanner.
- Fixed a bug in RTU-UI v2 Document Scanner where the document could not be captured in auto snap mode when
enabledInAutoSnappingMode
is set to false inSBSDKUI2ShutterButton
. - Fixed a memory leak in
SBSDKUI2DocumentScannerViewController
when the document scanner is dismissed.
- ⚠️ Breaking Changes:
- Replaced the buggy initializer
init?(json: Data)
inSBSDKUI2BarcodeScannerConfiguration
by the static functionSBSDKUI2BarcodeScannerConfiguration.fromJson(json: String)?
. - Replaced the buggy initializer
init?(json: Data)
inSBSDKUI2DocumentScanningFlow
by the static functionSBSDKUI2DocumentScanningFlow.fromJson(json: String)?
.
- Replaced the buggy initializer
Version 6.0.0 (15 October 2024):
- 🎉 New:
- Added new RTU-UI V2 component, see
SBSDKUI2DocumentScannerController
. - Added document capture animation in
SBSDKDocumentScannerViewController
. - Added new optional delegate function
documentScannerViewControllerCaptureAnimationConfiguration(_ controller: SBSDKDocumentScannerViewController) -> SBSDKDocumentAnimationConfiguration
inSBSDKDocumentScannerViewController
. - Added class
SBSDKDocumentAnimationConfiguration
to configure document capture animation. - Added classes
SBSDKScannedDocument
andSBSDKScannedPage
. - Added support for the new
SBSDKScannedDocument
class toSBSDKPDFRenderer
,SBSDKUIPDFRenderer
,SBSDKTIFFImageWriter
andSBSDKOpticalCharacterRecognizer
. - Added
init(uiColor: UIColor)
inSBSDKUI2Color
. - Added new property
isAnimatingCapture
toSBSDKDocumentScannerViewController
. - Added new class
SBSDKDocumentScannerPolygonConfiguration
. - Added new properties
polygonConfigurationAccepted
,polygonConfigurationRejected
andautoSnapProgressPolygonConfiguration
toSBSDKDocumentScannerViewController
. - Added new optional delegate method
documentScannerViewController(_ controller: SBSDKDocumentScannerViewController, polygonConfigurationFor: SBSDKDocumentDetectionStatus) -> SBSDKDocumentScannerPolygonConfiguration
to protocolSBSDKDocumentScannerViewControllerDelegate
. - Added new optional delegate method
imageEditingViewController(_ editingViewController: didDetectPolygon:)
toSBSDKImageEditingViewControllerDelegate
. - Added new property
addAdditionalQuietZone
toSBSDKBarcodeAdditionalParameters
. - Added new property
postalTypes
toSBSDKBarcodeType
.
- Added new RTU-UI V2 component, see
- 🚀 Improvements:
- Improved sharpness of captured images in
SBSDKDocumentScannerViewController
by tweaking various timing related default values, such asinitialScanDelay
andautoSnappingDelay
. - The AR-overlay in
SBSDKUI2FindAndPickScanningMode
is 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.
- Improved sharpness of captured images 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
button
sheet mode where the counter badge was not visible. - Fixed a UI issue in
SBSDKFinderView
where the background color overlapped with the line color. - Fixed a crash when zooming with invalid
minZoom
andmaxZoom
values. - Fixed a bug that did not mirror the front camera as expected.
- Fixed a bug in
SBSDKUI2SingleScanDialogModelProvider
where the default displayed texts were not correct.
- ⚠️ Breaking Changes:
- Deprecated
SBSDKUIDocumentScannerViewController
,SBSDKUIFinderDocumentScannerViewController
,SBSDKUICroppingViewController
and their related classes. - Renamed the values of the enum
SBSDKDocumentDetectionStatus
. - Removed optional delegate method
documentScannerViewController(_ controller:, polygonLineColorFor:) -> UIColor
from protocolSBSDKDocumentScannerViewControllerDelegate
. - Removed optional delegate method
documentScannerViewController(_ controller:, polygonFillColorFor:) -> UIColor
from protocolSBSDKDocumentScannerViewControllerDelegate
. - Removed properties
polygonLineWidth
,polygonLineColorAccepted
,polygonLineColorRejected
,polygonFillColorAccepted
,polygonFillColorRejected
,polygonAutoSnapProgressEnabled
,polygonAutoSnapProgressColor
,polygonAutoSnapProgressLineWidth
andpolygonCornerRadius
fromSBSDKDocumentScannerViewController
. - Renamed property
residencePermitFronBack
toresidencePermitFrontBack
inSBSDKUIDocumentType
. - Removed parameter
encrypter
from allSBSDKPDFRenderer
methods and added it to the initializer of the class.
- Deprecated
Version 5.2.2 (2 August 2024):
- 🐞 Bug fixes:
- Fixed the false positive document detection (introduced in v5.2.0).
Version 5.2.1 (24 July 2024):
- 🎉 New:
- Added support for United Arab Emirates (UAE) and Canadian (CAN) checks.
- Added new properties
resultAccumulatorConfiguration
toSBSDKGenericDocumentRecognizer
andSBSDKGenericDocumentRecognizerViewController
. See new classSBSDKGenericDocumentRecognizerAccumulationConfiguration
.
- 🚀 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.
- Fixed a bug in
compression
ofSBSDKTIFFImageWriterParameters
where theSBSDKTIFFImageWriter
was not using the chosen compression value. - Fixed a bug in
SBSDKCheckRecognizer
where theacceptedCheckTypes
were not being applied correctly. - Fixed a bug in
SBSDKUICheckRecognizerViewController
where theacceptedCheckStandards
were not being applied correctly.
- ⚠️ Breaking Changes:
- Changed SwiftUI Barcode Scanner initializer to accept blocks instead of binding vars. See
SBSDKUI2BarcodeScannerView
. - Removed
ccittfax3
andccittfax4
options fromSBSDKTIFFImageWriterCompressionOptions
, you should now useccitt_t4
andccitt_t6
respectively.
- Changed SwiftUI Barcode Scanner initializer to accept blocks instead of binding vars. See
Version 5.2.0 (26 June 2024):
- 🎉 New:
- Added support for german health insurance card front side and european health insurance card to
SBSDKGenericDocumentRecognizer
,SBSDKGenericDocumentRecognizerViewController
andSBSDKUIGenericDocumentViewController
. - Added support for new barcode types Maxicode, rMQR code, Code 11 and Code 32.
- Added properties
australiaPostCustomerFormat
,useIATA2OF5Checksum
anduseCode11Checksum
toSBSDKBarcodeAdditionalParameters
andSBSDKUI2BarcodeRecognizerConfiguration
. - Added support for PDF metadata attributes when rendering PDF files: see new class
SBSDKPDFAttributes
and new propertypdfAttributes
onSBSDKPDFRendererOptions
.
- Added support for german health insurance card front side and european health insurance card to
- 🚀 Improvements:
- Improved detection of UPC- and EAN extensions.
- The generic document recognizer and its UI components now use the new Scanbot OCR engine under the hood. In order to scan for generic documents the additional OCR language data bundle is no longer required.
- Improved document detection on booklet documents.
- Improved performance of
SBSDKDocumentQualityAnalyzer
. - Added support for Extended Channel Interpretation (ECI) for Datamatrix and Aztec.
- Improved GS1 string handling with new modes for decoding and validation. See
SBSDKGS1Handling
. - Added the ability to display the scanned barcodes image in the FindAndPick usecase of
SBSDKUI2BarcodeScannerViewController
by specifyingSBSDKUI2ExpectedBarcode.barcodeImageKey
for the expected barcodesimage
property.
- 🐞 Bug fixes:
- Fixed a bug in the FindAndPick usecase of
SBSDKUI2BarcodeScannerViewController
that never showed the expected barcodes title, but always the barcode value.
- Fixed a bug in the FindAndPick usecase of
- ⚠️ Breaking Changes:
- Removed enum
SBSDKBarcodeDensity
. - Removed property
codeDensity
fromSBSDKBarcodeAdditionalParameters
. - Removed enum values
validate
anddecode
fromSBSDKGS1Handling
and replaced them bydecodeStructure
,decodeFull
,validateStructure
andvalidateFull
. - Removed property
sharpnessAcceptanceFactor
fromSBSDKGenericDocumentRecognizer
,SBSDKGenericDocumentRecognizerViewController
andSBSDKUIGenericDocumentRecognizerBehaviorConfiguration
. - Removed property
isAccumulatingDocuments
fromSBSDKGenericDocumentRecognizer
andSBSDKGenericDocumentRecognizerViewController
. - Deprecated
SBSDKHealthInsuranceCardRecognizer
,SBSDKHealthInsuranceCardScannerViewController
andSBSDKUIHealthInsuranceCardScannerViewController
. - Removed class
SBSDKPDFMetadataEditor
.
- 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
SBSDKUI2Color
where settingisArgb
to 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
SBSDKUI2BarcodeScannerViewController
in single scan mode that prevented the barcode scanner from pausing the recognition while the submit dialog is shown.
Version 5.1.0 (21 May 2024):
- 🎉 New:
- Added new property
regularExpressionPattern
toSBSDKBarcodeScanner
andSBSDKBarcodeScannerViewController
to limit detection results. - Added support of the new 'Find and Pick' barcode scanning mode, see
SBSDKUI2FindAndPickScanningMode
. - Added support for continuous scanning in
SBSDKUI2BarcodeScannerViewController
. - Added a new configuration class
SBSDKHealthInsuranceCardRecognizerParameters
to configure the live detection recognizer inSBSDKHealthInsuranceCardRecognizer
. - Added a new property
liveDetectionParameters
inSBSDKHealthInsuranceCardRecognizer
. - Added a new property
recognizerParameters
inSBSDKHealthInsuranceCardScannerViewController
andSBSDKUIHealthInsuranceCardScannerViewController
. - Added support for new barcode type
SBSDKBarcodeTypeMicroPdf417
. - Added a new class
SBSDKBarcodeDocumentConstants
which has all the constants related to the barcode document format. - Added new classes for all the barcode document formats. See the API documentation for more details.
- Added a new class
SBSDKBarcodeDocumentRootType
which replaces the oldSBSDKBarCodeScannerDocumentFormat
. - Added read-only, Key-Value observable property
pages
of type[SBSDKDocumentPage]
toSBSDKDocument
. - Added Swift structured concurrency API (async/await) to
SBSDKUI2BarcodeScannerViewController
,SBSDKUIPDFRenderer
,SBSDKPDFRenderer
,SBSDKTIFFImageWriter
,SBSDKOpticalCharacterRecognizer
,SBSDKPDFPagesExtractor
andSBSDKTextLayoutRecognizer
. - Added a new struct
SBSDKUI2BarcodeScannerView
which 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
,SBSDKTestData
andSBSDKSimulatedCameraMockData
. - Added
isCameraFrozen
property toSBSDKBaseScannerViewController
. - Added property
acceptedBrightnessThreshold
toSBSDKDocumentScanner
,SBSDKDocumentScannerViewController
,SBSDKUIDocumentScannerBehaviourConfiguration
andSBSDKUIFinderDocumentScannerBehaviorConfiguration
. - Added property
averageBrightness
toSBSDKDocumentDetectionMetrics
. - Added new static properties
allFormats
,commonFormats
,oneDFormats
andtwoDFormats
toSBSDKUI2BarcodeFormat
. - Added new class
SBSDKUI2BarcodeTextLocalization
and new propertylocalization
toSBSDKUI2BarcodeScannerConfiguration
to 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.
- The health insurance card recognizer now implements the new scanbot OCR engine. The recognition is faster and more accurate than before.
- Added support of haptic feedback on capable devices.
- Made properties
polygon
,filter
,parametricFilters
,documentImageSizeLimit
,documentImage
,documentImageURL
,documentPreviewImage
anddocumentPreviewImageURL
of classSBSDKDocumentPage
Key-Value observable. SBSDKPDFPagesExtractor
functions now create the output directory if it doesn't exist yet.- Added support for structured logging (OSLog) to the SDK (iOS 14+).
- 🐞 Bug fixes:
- Fixed a bug with the generic textline recognizer not returning multiline results.
- Fixed a bug with the asynchronous functions of
SBSDKPDFPagesExtractor
which returned an empty array of image URLs. - Fixed a UI bug in the
SBSDKUI2BarcodeScannerViewController
. - Fixed the documentation of
isShutterButtonHidden
inSBSDKUIFinderDocumentScannerUIConfiguration
to correctly mention its default value. - Fixed JSON representation of
SBSDKUI2BarcodeItem
.
- ⚠️ Breaking Changes:
- Important: The default rear camera in all scanners has been changed from the ultra-wide or wide camera to the triple or dual camera.
- Renamed function
captureJPEGStillImage
tocaptureStillImage
inSBSDKBaseScannerViewController
(and all subclasses) andSBSDKCameraSession
. - Renamed function
captureOutput(_ output:, didOutput:, from:)
tocameraSession(_ session:, didOutput:)
in protocolSBSDKCameraSessionDelegate
. - Replaced the class
SBSDKBarcodeDocumentType
bySBSDKBarcodeDocumentRootType
. - Renamed
supportedBarcodesTypes(for:)
tosupportedBarcodeTypes(for:)
in the new classSBSDKBarcodeDocumentRootType
. - Removed the protocol
SBSDKBarCodeScannerDocumentFormat
and all of its children classes. - Removed default properties of use cases in
SBSDKUI2BarcodeUseCase
, now use the proper initializer for every use case, e.g.SBSDKUI2SingleScanningMode()
. - Changed the type of numeric parametric filter parameters from Float to Double.
- Changed the order of parameters in the initializer of
SBSDKCustomBinarizationFilter
. - Removed
barcodeTypes
andacceptedDocumentTypes
fromSBSDKUI2BarcodeRecognizerConfiguration
as they are not needed anymore and we can usebarcodeFormats
andacceptedDocumentFormats
directly. - Made the property
type
inSBSDKUI2BarcodeItem
optional. - Changed type of property
rawBytes
from [UInt8] to Data.
- 🚙 Under the hood:
- Updated third-party libraries zlib to version 1.3.1, libtiff to 4.6.0, libjpeg-turbo to 2.1.5.1, libpng to 1.6.40.
- Added third-party library libzueci version 1.0.0
Version 5.0.4 (27 March 2024):
- 🐞 Bug fixes:
- Fixes a bug where barcode results formattedResult returned nil instead of the correct barcode document.
Version 5.0.3 (21 March 2024):
- 🐞 Bug fixes:
- Changed privacy manifest to comply with the latest Apple specs.
Version 5.0.2 (15 March 2024):
- 🐞 Bug fixes:
- Fixes a problem that slowed down still image capturing on some older iOS devices.
- 🚀 Improvements:
- Improved speed and image quality of still image capturing.
Version 5.0.1 (12 March 2024):
- 🐞 Bug fixes:
- Fixed a critical bug in the camera session causing still images to be captured at a lower than expected resolution.
- Fixed a bug in the Generic Document Scanner which prevented the extraction of the given names as well as the valid from date from a residence permit card.
Version 5.0.0 (1 March 2024):
- 🎉 New:
- Added new RTU-UI V2 component, see
SBSDKUI2BarcodeScannerViewController
. - Added new class-based image filters with customizable parameters:
SBSDKParametricFilter
(abstract base class)SBSDKScanbotBinarizationFilter
SBSDKCustomBinarizationFilter
SBSDKColorDocumentFilter
SBSDKBrightnessFilter
SBSDKContrastFilter
SBSDKGrayscaleFilter
SBSDKWhiteBlackPointFilter
SBSDKLegacyFilter
(encapsulates the deprecatedSBSDKImageFilterType
filters)
- Added support for German residence permit documents to
SBSDKGenericDocumentRecognizer
. SeeSBSDKGenericDocumentRootType
. - Added class
SBSDKCheckDocument
to represent a document specifically used for checking purposes, inheriting properties and methods fromSBSDKGenericDocument
. - Added the
returnCroppedDocumentImage
property toSBSDKMedicalCertificateRecognizerConfigurationOptions
,SBSDKMedicalCertificateScannerViewController
andSBSDKUIMedicalCertificateScannerViewController
. This property allows you to control whether the SDK should include a cropped document image in its output or not. - Added new property
minimumNumberOfSymbols
toSBSDKDocumentQualityAnalyzer
. - Added streaming encryption support to
SBSDKStorageCrypting
. - Added the
SBSDKFinderView.Style
enum and the propertystyle
that defines the drawing styles of the finder view toSBSDKFinderView
andSBSDKBaseScannerViewFinderConfiguration
. - Added the
viewFinderStyle
property toSBSDKBaseScannerViewController
. - Added a new property
supportedBarcodeTypes
inSBSDKBarcodeDocumentType
that has the supported barcode types of the barcode document format. - Added a new static method
supportedBarcodesTypes(for:)
inSBSDKBarcodeDocumentType
to return the supported barcode types of a given array of barcode document formats. - Added a new modern beep sound in
SBSDKSoundController
. - Added a new enum
SBSDKSoundType
to configure the default beep sound ofSBSDKSoundController
. - Added Privacy manifest file (
PrivacyInfo.xcprivacy
) to the SDK. - Added new static property
maximumRecommendedImageSize
toSBSDKDeviceInformation
. - Added a new property
boundingBoxWithImageSize
toSBSDKOCRResultBlock
to get the bounding box of the receiver in absolute image coordinate system. - Added new function
resetAccumulation
toSBSDKBarcodeScannerViewController
.
- Added new RTU-UI V2 component, see
- 🚀 Improvements:
- Improved the installation of custom OCR languages for the Tesseract OCR engine. See
SBSDKOCRLanguagesManager
. - Streaming rendering and encrypting for
SBSDKPDFRenderer
andSBSDKTIFFImageWriter
. Memory footprint during rendering reduced by up to 5x for TIFF. Unlimited PDF rendering.
- Improved the installation of custom OCR languages for the Tesseract OCR engine. See
- 🐞 Bug fixes:
- Fixed a bug where the
recognizeOnImageStorage:completion:
was unable to detect text on imageStorage when the encryption was on.
- Fixed a bug where the
- ⚠️ Breaking Changes
- Due to the refactoring of Scanbot SDK to the Swift language a lot of properties and method parameters have changed in order to provide a clean and consistent interface for Swift and Objective-C.
- Renamed barcode type RSS14 to Databar and RSSExpanded to DatabarLimited.
- Removed adjustable filters and partially replaced them with the parametric filters.
- Deprecated
SBSDKImageFilterType
. Use the new parametric filtersSBSDKParametricFilter
and its subclasses if possible. - Replaced parameters of type
SBSDKImageFilterType
bySBSDKParametricFilter
in most classes. - Changed type of
binarizationFilter
inSBSDKTIFFImageWriterParameters
fromSBSDKImageFilterType
toSBSDKParametricFilter
. - Renamed
SBSDKUIDocument
toSBSDKDocument
,SBSDKUIPage
toSBSDKDocumentPage
andSBSDKUIPageFileStorage
toSBSDKDocumentPageFileStorage
. - Refactored
SBSDKImageProcessor
moving away from the complex asynchronous functions to a straight object oriented approach. - Deprecated
SBSDKUIBarcodeScannerViewController
andSBSDKUIBarcodesBatchScannerViewController
along with their related classes. Please consider switching to the newSBSDKUI2BarcodeScannerViewController
. - Changed
isLicenseValid
,licenseStatus
from functions to variables inScanbot
class. - Changed
defaultImageStoreEncrypter
,defaultPDFEncrypter
,shouldShowStatusBarOnScanningScreens
,defaultStatusBarStyle
from separated getters and setters to variables inScanbotUI
class. - Removed
printInfo:
,printError:
andprintWarning:
fromSBSDKLog
. - Changed
setLoggingEnabled:
to propertyisLoggingEnabled
inSBSDKLog
. - Functions
logInfo:
,logError:
andlogWarning:
inSBSDKLog
now acceptString
as a parameter instead ofva_list
. - Changed all properties of type
NSNumber
to optionalDouble
inSBSDKImageMetadata
. - Replaced default initialization
initWithParentViewController:containerView
by the new static methodcreateWithParentViewController:containerView
inSBSDKImageEditingViewController
. - Changed
SBSDKTIFFImageWriter
from static class to instantiated class and simplified the interface. - Changed all
SBSDKBarcodeType
global 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
SBSDKBarcodeMetadataEANUPCExtensionKey
andSBSDKBarcodeMetadataIsGS1MessageKey
toSBSDKBarcodeScannerResult
as its static properties. - Renamed enum
SBSDKAutosnappingMode
toSBSDKAutoSnappingMode
. - Renamed enum
SBSDKMedicalCertificateRecognizerFormType
toSBSDKMedicalCertificateRecognizerForm
, please see the documentation for the refactored types. - Renamed properties
patientInformationRecognitionEnabled
andbarcodeRecognitionEnabled
toisPatientInformationRecognitionEnabled
andisBarcodeRecognitionEnabled
inSBSDKMedicalCertificateRecognizerConfigurationOptions
. - Renamed and refactored class
SBSDKPDFMetadataProcessor
toSBSDKPDFMetadataEditor
. - Renamed and refactored class
SBSDKResourcesManager
toSBSDKOCRLanguagesManager
. - Renamed functions
mlConfiguration
andlegacyConfigurationWithLanguages:
inSBSDKOpticalCharacterRecognizerConfiguration
toscanbotOCR
andtesseractWithLanguages:
. - Renamed enum values
SBSDKOpticalCharacterRecognitionModeLegacy
toSBSDKOpticalCharacterRecognitionModeTesseract
andSBSDKOpticalCharacterRecognitionModeML
toSBSDKOpticalCharacterRecognitionModeScanbotOCR
. - Renamed the function
recognizeFromStillImage
,recognizeFromVideoFrameImage
,recognizeFromSampleBuffer:orientation:
,recognizeFromSampleBuffer:searchInRect:orientation:
torecognizeOnStillImage
,recognizeOnVideoFrameImage
,recognizeOnSampleBuffer:orientation:
,recognizeOnSampleBuffer:searchInRect:orientation:
inSBSDKHealthInsuranceCardRecognizer
. - Renamed the static factory functions in
SBSDKUIHealthInsuranceCardScannerViewController
to fix their ugly signatures. - Renamed the function
recognizeFromSampleBuffer
torecognizeOnSampleBuffer
inSBSDKGenericTextLineRecognizer
. - Renamed the static factory functions in
SBSDKUITextDataScannerViewController
to fix their ugly signatures. - Changed all
SBSDKBarcodeDocumentType
global constants to static properties ofSBSDKBarcodeDocumentType
. - Changed all
SBSDKGenericDocument
global constants to static properties ofSBSDKGenericDocument
andSBSDKCheckDocument
. - Replaced the default value of
acceptedBarcodeTypes
withSBSDKBarcodeType.commonTypes
, this property will no longer accept nil anywhere, if it's set to an empty array, this will automatically be translated toSBSDKBarcodeType.commonTypes
. - The property
acceptedDocumentTypes
ofSBSDKBarcodeScanner
andSBSDKBarcodeScannerViewController
can no longer be set to nil. - Renamed the property
optional1Field
inSBSDKMachineReadableZoneRecognizerResult
tovisaOptionalField
. - Renamed enum value
SBSDKMachineReadableZoneRecognizerFieldNameOptional1
toSBSDKMachineReadableZoneRecognizerFieldNameVisaOptional
.
- 🚙 Under the hood:
- Refactored all public SDK code to Swift.
Version 4.2.2 (21 March 2024):
- 🐞 Bug fixes:
- Changed privacy manifest to comply with the latest Apple specs.
Version 4.2.1 (13 February 2024):
- 🎉 New:
- Added Privacy manifest file (
PrivacyInfo.xcprivacy
) to the SDK. - Added new static property
maximumRecommendedImageSize
toSBSDKDeviceInformation
.
- Added Privacy manifest file (
- 🐞 Bug fixes:
- Fixed a bug in
SBSDKOpticalCharacterRecognizer
whererecognizeText:completion:
was unable to detect text on imageStorage when the encryption was enabled. - Fixed the issue when the top and bottom toolbars' background color in
SBSDKUICroppingViewController
didn't update on dark mode change, when set toUIColor.systemBackground
.
- Fixed a bug in
Version 4.2.0 (8 January 2024):
- 🎉 New:
- Added support for Kuwait ID cards in the MRZ scanner.
- Added support for Israelian checks to the check recognizer.
- Added support for new barcode type
SBSDKBarcodeTypeGS1Composite
. - Added property
imageSizeLimit
toSBSDKDocumentQualityAnalyzer
.
- 🚀 Improvements:
- Improved the performance and memory footprint of the document quality analyzer.
- Added more control over how to handle GS1 messages in barcodes. See
SBSDKGS1Handling
.
- ⚠️ Breaking Changes:
- The property
enableGS1Decoding
has been replaced by the enumSBSDKGS1Handling
inSBSDKBarcodeAdditionalParameters
. GS1
codes are now handled differently for various barcode types. Using the default optionPARSE
will 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 (24 November 2023):
- 🎉 New:
- Added a new class
SBSDKDocumentQualityAnalyzer
. - Added support for 6 new barcode types to the barcode scanner:
SBSDKBarcodeTypeUSPSIntelligentMail
SBSDKBarcodeTypeRoyalMail
SBSDKBarcodeTypeJapanPost
SBSDKBarcodeTypeRoyalTNTPost
SBSDKBarcodeTypeAustraliaPost
SBSDKBarcodeTypeDatabarLimited
- Added a new class
- 🐞 Bug fixes:
- Fixed a bug with the iPad 5th generation where captured images were wrong.
- Fixed a bug where the finder text hint was still showing when
viewFinderEnabled
was disabled inSBSDKUIBarcodeScannerViewController
andSBSDKUIBarcodesBatchScannerViewController
. - Fixed a wrong polygon color in RTU-UI barcode scanner tracking overlay.
- ⚠️ Breaking Changes:
- The class
SBSDKBlurrinessEstimator
has been removed and replaced by the far superiorSBSDKDocumentQualityAnalyzer
.
- The class
Version 4.0.0 (18 October 2023):
- 🎉 New:
- Added new classes
SBSDKOpticalCharacterRecognizer
,SBSDKOpticalCharacterRecognizerConfiguration
andSBSDKTextLayoutRecognizer
. - Added new method
widestAvailableBackFacingCamera
toSBSDKCameraDevice
. - Added new method
setupDefaultLicenseFailureHandlerWithCompletion:
to theScanbot
class.
- Added new classes
- 🚀 Improvements:
- New improved document detector with better performance and less memory consumption.
- Added new Optical Character Recognition engine based on machine learning algorithms that is much faster and less error prone.
- The new OCR engine currently supports all languages with latin letters, there is no need to specify the languages for it. The legacy engine based on Tesseract can still be used.
- ⚠️ Breaking Changes:
- Renamed
photoQualityPriorization
tophotoQualityPrioritization
everywhere in the SDK. - Removed
SBSDKImageMetricsAnalyzer
,SBSDKImageChannelMetrics
andUIImage+SBSDKMetricsAnalysis
. - Refactored all OCR and PDF rendering classes to incorporate the new OCR engine and simplify the API:
- Removed
SBSDKOpticalTextRecognizer
andSBSDKTextOrientationRecognizer
. - Renamed
SBSDKPageOrientation
toSBSDKTextOrientation
. - Renamed property
pageAnalyzerResult
totextLayoutRecognizerResult
inSBSDKOCRPage
. - Replaced
boundingBox
property bypolygon
inSBSDKOCRResultBlock
. - Changed function signatures of methods in
SBSDKPDFRenderer
andSBSDKUIPDFRenderer
. - Added new values and removed unused values in
SBSDKPDFRendererPageSize
.
- Removed
- Changed default value of the finder aspect ratio in
SBSDKUIFinderDocumentScannerUIConfiguration
to DIN A4 portrait.
- Renamed
- 🚙 Under the hood:
- New library libharu.
Version 3.0.2 (28 September 2023):
- 🐞 Bug fixes:
- Fixed a focusing issue with the new iPhone 15 Pro and 15 Pro Max.
Version 3.0.0 (23 August 2023):
- 🎉 New:
- Added property
extensionFilter
to all barcode scanning APIs (SBSDKBarcodeScanner
,SBSDKBarcodeScannerViewController
,SBSDKBarcodeScanAndCountViewController
,SBSDKUIBarcodeScannerBehaviorConfiguration
andSBSDKUIBarcodesBatchScannerBehaviorConfiguration
). - Added property
extension
toSBSDKBarcodeScannerResult
. - Added new Scanner
SBSDKVehicleIdentificationNumberScanner
which scans and validates a Vehicle Identification Number. - Added new Classic UI component
SBSDKVINScannerViewController
which enables you to scan Vehicle Identification Numbers. - Added new RTU-UI component
SBSDKUIVINScannerViewController
which enables you to scan Vehicle Identification Numbers. - Added new class
SBSDKScanAndCountPolygonStyle
. - Added new delegate function
(nonnull SBSDKScanAndCountPolygonStyle *)barcodeScanAndCountController:(nonnull SBSDKBarcodeScanAndCountViewController *)controller polygonStyleForBarcode:(nonnull SBSDKBarcodeScannerResult *)code
toSBSDKBarcodeScanAndCountViewControllerDelegate
. - Added
trackingOverlayController
property 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 aSBSDKBarcodeTrackingOverlayController
.SBSDKBarcodeTrackedViewTextStyle
: Represents the style and kind of text rendered below a barcode.SBSDKBarcodeTrackedViewPolygonStyle
: Represents the style of the polygon rendered around a barcode.SBSDKTrackedBarcodeInfoView
: A protocol that defines the methods and properties required for a custom tracking view.
- Added functions to
SBSDKDeviceInformation
to get the total, used and unused disk space on the device.
- 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.
- OCR quality for the Generic Text Line Scanner is significantly more reliable.
- 🐞 Bug fixes:
- Fixed a bug where
flashEnabled
was not working properly inSBSDKUIHealthInsuranceCardScannerViewController
. - Fixed a crash when denying camera permission.
- Fixed a bug with magnetic lines in
SBSDKImageEditingViewController
andSBSDKUICroppingViewController
. - Fixed an issue where the MRZ Scanner was not recognizing the new standard of Belgian ID Cards.
- Fixed the broken default zoom level in
SBSDKGenericTextLineRecognizerViewController
andSBSDKUITextDataScannerViewController
.
- Fixed a bug where
- ⚠️ Breaking Changes:
- Due to a Swift compiler naming collision, the class
ScanbotSDK
has been renamed toScanbot
. - Renamed the class
ScanbotSDKUI
toScanbotUI
for consistency. - Removed barcode type
SBSDKBarcodeTypeUnknown
. - Removed property
autoCancelTimeout
fromSBSDKUIMRZScannerBehaviorConfiguration
. - Removed
textRecognitionLanguages
andtextFilterStrategy
fromSBSDKGenericTextLineRecognizerViewController
. - Removed
textFilterStrategy
fromSBSDKUITextDataScannerStep
. - Removed
supportedLanguages
fromSBSDKUITextDataScannerBehaviorConfiguration
. - Removed
qrBarcodeDetectionViewController:selectionOverlayTextFor:
fromSBSDKUIBarcodeScannerViewController
. - Renamed
selectionOverlayEnabled
toisTrackingOverlayEnabled
inSBSDKBarcodeScannerViewController
. - Renamed
SBSDKUIBarcodeSelectionOverlayConfiguration
toSBSDKUIBarcodeTrackingOverlayConfiguration
- Renamed
selectionOverlayConfiguration
totrackingOverlayConfiguration
inSBSDKUIBarcodeScannerConfiguration
andSBSDKUIBarcodesBatchScannerConfiguration
. - Replaced the properties
polygonEnabled
,polygonColor
,polygonFillColor
andpolygonLineWidth
by the propertypolygonStyle
inSBSDKBarcodeScanAndCountViewController
.
- Due to a Swift compiler naming collision, the class
Version 2.3.0 (22 June 2023):
- 🎉 New:
- Added support for the Micro QR barcode type.
- Added new property
viewFinderEnabled
toSBSDKUIBarcodeScannerBehaviorConfiguration
andSBSDKUIBarcodesBatchScannerBehaviorConfiguration
. - Added new properties
confirmationDialogTitle
andconfirmationDialogMessage
toSBSDKUIBarcodeScannerTextConfiguration
. - Machine-readable-zone results have been refactored (please see Breaking Changes):
- Added new properties
genericDocument
,travelDocumentTypeVariantField
anddateOfIssueField
toSBSDKMachineReadableZoneRecognizerResult
. - Added new value
SBSDKMachineReadableZoneRecognizerResultDocumentTypeCrewMemberCertificate
to theSBSDKMachineReadableZoneRecognizerResultDocumentType
enum. - Added new values
SBSDKMachineReadableZoneRecognizerFieldNameDateOfIssuance
andSBSDKMachineReadableZoneRecognizerFieldNameTravelDocumentTypeVariant
to theSBSDKMachineReadableZoneRecognizerFieldName
enum.
- Added new properties
- Added new Classic UI component
SBSDKBarcodeScanAndCountViewController
which enables you to scan barcodes multiple times using the shutter button. - Added new function
-(void)flipHorizontally:(CGSize)size
toSBSDKPolygon
. - Added new function
-(BOOL)isMirrored
toSBSDKCameraDevice
.
- 🚀 Improvements:
- Changed the default value for the
documentType
property inSBSDKUIGenericDocumentRecognizerBehaviorConfiguration
to a document type that contains all kinds ofSBSDKGenericDocumentRootType
. Simply said, by defaultSBSDKUIGenericDocumentRecognizerViewController
now recognizes all documents. - Changed the default zoom range from (0.0 - 3.0) to (0.0 - 12.0) in all ClassicUI and RTU-UI components and in
SBSDKZoomRange
. - Better per-frame accuracy for QR code detection.
- Support for inverted PDF-417 barcodes.
- The barcode types Code 39 and Code 93 decode slightly faster.
- Support for generic documents in the MRZ recognizer.
- Changed the default value for the
- 🐞 Bug fixes:
- Fixed the detection of a few false positive RSS Expanded codes in live mode.
- Fixed an unexpected behavior of the barcode scanner when passing
SBSDKBarcodeTypeUnknown
as accepted barcode type. - Fixed a bug in all Classic UI and RTU-UI components where the
recognitionEnabled
property might not have worked as intended. - Fixed a bug where
ocrResolutionLimit
was not being used inSBSDKUITextDataScannerViewController
from JSON. - Fixed a bug where the polygon should be mirrored when using the front camera in
SBSDKDocumentScannerViewController
andSBSDKUIDocumentScannerViewController
. - Fixed a bug where
automaticSelectionEnabled
was 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
. - Removed classes
SBSDKMultipleObjectScannerViewController
,SBSDKBusinessCardsImageProcessor
,SBSDKMultipleObjectsDetector
,SBSDKUIMultipleObjectScannerViewController
and its configuration classes. - Removed class
SBSDKBaseCameraViewController
. - Renamed the property
acceptedMachineCodeTypes
toacceptedBarcodeTypes
inSBSDKUIBarcodeScannerBehaviorConfiguration
andSBSDKUIBarcodesBatchScannerBehaviorConfiguration
. - The RTU-UI configuration JSON formats have been changed, mostly the enum values have been capitalized.
- Machine-readable-zone results have been refactored:
- Date fields in machine-readable-zones are returned unformatted now, e.g. in the format 'YYMMDD'. Previously we tried to convert them to the format 'DD.MM.YY'.
- Removed value
SBSDKMachineReadableZoneRecognizerFieldNameDiscreetIssuingStateOrOrganization
from theSBSDKMachineReadableZoneRecognizerFieldName
enum. - Removed value
SBSDKMachineReadableZoneRecognizerResultDocumentTypeTravelDocument
from theSBSDKMachineReadableZoneRecognizerResultDocumentType
enum. - Removed property
checkDigitCharacter
fromSBSDKMachineReadableZoneRecognizerResultCheckDigit
. - Removed property
discreetIssuingStateOrOrganizationField
fromSBSDKMachineReadableZoneRecognizerResult
. - Removed property
checkDigitsCount
fromSBSDKMachineReadableZoneRecognizerResult
.
Version 2.2.1 (1 June 2023):
- 🎉 New:
- Added properties
maxNumberOfAccumulatedResults
andrequiredNumberOfEqualAccumulatedResults
toSBSDKMachineReadableZoneRecognizer
,SBSDKMRZScannerViewController
andSBSDKUIMRZScannerBehaviorConfiguration
.
- Added properties
- 🚀 Improvements:
- New configurable machine-readable-zone result accumulator that lets you fine-tune the strictness of the recognizer.
- ⚠️ Breaking Changes:
- Removed property
resultAccumulationCount
fromSBSDKMachineReadableZoneRecognizer
,SBSDKMRZScannerViewController
andSBSDKUIMRZScannerBehaviorConfiguration
.
- Removed property
Version 2.2.0 (19 April 2023):
- 🎉 New:
- A new machine-learning based machine-readable zone recognizer has been introduced
- All Classic-UI components now have new methods
init
andattach:parentViewController:containerView
, which provide more flexibility. - Portuguese ID cards (old and new format) can now be recognized by the MRZ scanners.
- Support for barcode type
SBSDKBarcodeTypeCode25
, which is a variant of the Industrial-2of5 type without the checksum, has been added. SBSDKMedicalCertificateRecognizerResultPatientField
now has a new propertyrecognitionConfidence
.SBSDKMachineReadableZoneRecognizerResult
now has a new propertyrawString
, providing direct access to the raw MRZ string.SBSDKBaseScannerGeneralConfiguration
now has a new propertyminimumTimeWithoutDeviceMotionBeforeDetection
.SBSDKUIDocumentScannerViewController
now has a new propertycurrentSettings
, which can be used to persist and restore user-made settings.
- 🚀 Improvements:
- Barcode scanning has been improved with new ML models.
- Stacked RSS barcode scanning has seen substantial improvements.
- All Classic-UI view controllers can now be instantiated from storyboards.
- Patient info box recognition has been improved in the medical certificate scanners.
SBSDKUIDocument
andSBSDKUIPage
now conform to theNSCopying
protocol, making it easier to create deep copies of their instances.
- 🐞 Bug fixes:
- The Generic Document Recognizer now returns no result if MRZ parsing fails.
- A bug that caused the document scanner to auto-capture a second image shortly after the first image has been fixed.
- A rare crash with the application state observer has been fixed.
- ⚠️ Breaking Changes:
- The additional
SBSDKMRZData.bundle
has been removed as it is no longer needed with the new machine-readable zone recognizer. - The MRZ subspec has been removed from the Cocoapods podspec file. Please make sure to check your pods file!
- The method
initWithParentViewController:parentViewController:parentView:delegate
of all Classic-UI components has been changed so that theparentViewController
and theparentView
must not be nil. - The method
initWithParentViewController:parentViewController:parentView
of all the Classic-UI components has been changed so that theparentView
must not be nil. - Property
validationConfidence
has been removed fromSBSDKMedicalCertificateRecognizerDateResult
. - The format of date strings in
SBSDKMedicalCertificateRecognizerDateResult
has been changed fromDD.MM.YY
toDD.MM.YYYY
. - Property
textLines
has been removed fromSBSDKMachineReadableZoneRecognizerResult
. - Class
SBSDKMachineReadableZoneRecognizerTextLine
has been removed. - Property
decodeStacks1D
has been removed fromSBSDKBarcodeAdditionalParameters
. The barcode scanner now handles this automatically.
- The additional
- 🚙 Under the hood:
- Removed third-party library
backward-cpp
.
- Removed third-party library
Version 2.1.0 (15 March 2023):
- 🎉 New:
- Added optional delegate method
genericDocumentRecognizerViewControllerShouldRecognize:
toSBSDKGenericDocumentRecognizerViewControllerDelegate
. - Added optional delegate method
healthInsuranceCardScannerViewControllerShouldRecognize:
toSBSDKHealthInsuranceCardScannerViewControllerDelegate
. - Added optional delegate method
checkRecognizerViewControllerShouldRecognize:
toSBSDKCheckRecognizerViewControllerDelegate
. - Added optional delegate methods
barcodeScannerController:didUpdateDetectedBarcodes:
,barcodeScannerController:configureCustomCell:forBarcode:withBarcodePolygonPath:
, andbarcodeScannerController:customCellFrameForProposedFrame:
toSBSDKBarcodeScannerViewControllerDelegate
. - Added new property
automaticSelectionEnabled
toSBSDKBarcodeScannerViewController
. - Added new RTU-UI component
SBSDKUIFinderDocumentScannerViewController
which enables you to scan a single document page with the help of a viewfinder and bound to a certain aspect ratio. - Added new property
ignoresSafeAreaInsets
toSBSDKFinderView
. - Added new property
requiredAspectRatios
toSBSDKUIDocumentScannerBehaviorConfiguration
. - Added new properties
oneDTypes
andtwoDTypes
toSBSDKBarcodeType
. - Added new function
-(void)captureDocumentImage
toSBSDKDocumentScannerViewController
. - Added properties
dateOfDetection
andage
toSBSDKBarcodeScannerResult
.
- Added optional delegate method
- 🚀 Improvements:
- Improved performance and accuracy of machine-readable zone recognition.
- 🐞 Bug fixes:
- Fixed a potential memory issue in the check recognizer.
- Fixed a crash while logging URLs with spaces.
Version 2.0.0 (1 February 2023):
- 🎉 New:
- Added new properties
resultWithConfirmationEnabled
anddialogTextFormat
inSBSDKUIBarcodeScannerBehaviorConfiguration
to display a confirmation dialog before returning the results. - Added new properties
confirmationDialogRetryButtonTitle
andconfirmationDialogConfirmButtonTitle
inSBSDKUIBarcodeScannerTextConfiguration
to configure the text confirmation dialog buttons. - Added new properties
confirmationDialogStyle
,confirmationDialogConfirmButtonStyle
andconfirmationDialogRetryButtonStyle
inSBSDKUIBarcodeScannerUIConfiguration
to configure the style of the confirmation dialog buttons. - Added new property
automaticSelectionEnabled
toSBSDKUIBarcodeSelectionOverlayConfiguration
. - Added new property
sourceImage
toSBSDKBarcodeScannerResult
. - Added new property
autoSnappingDelay
toSBSDKDocumentScannerViewController
andSBSDKUIDocumentScannerBehaviorConfiguration
. - Added new property
videoFrameResolution
of the new typeSBSDKVideoFrameResolution
toSBSDKBaseScannerGeneralConfiguration
.
- Added new properties
- 🚀 Improvements:
- Improved general speed and accuracy when detecting barcodes.
- Improved recognition of stacked RSS Expanded barcodes.
- Improved live check recognition by using UHD resolution by default.
- 🐞 Bug fixes:
- Fixed an issue in
SBSDKPDFPagesExtractor
with QR codes as described in the PDF 1.6 standard. - Fixed a layout problem and log warnings with
SBSDKZoomingImageScrollView
. - Fixed a problem where the colors of magnetic and non-magnetic lines in
SBSDKImageEditingViewController
andSBSDKUICroppingViewController
did not update properly.
- Fixed an issue in
- ⚠️ Breaking Changes:
- Removed all deprecated classes:
SBSDKUIWorkflowScannerViewController
,SBSDKUINFCPassportReaderViewController
,SBSDKNFCPassportReader
,SBSDKScannerViewController
,SBSDKPayFormScanner
and all their related classes. - Removed deprecated properties and functions in
SBSDKMachineReadableZoneRecognizerResult
,SBSDKMedicalCertificateRecognizer
,SBSDKOpticalTextRecognizer
,SBSDKCaptureInfo
,SBSDKUIPage
andSBSDKGenericTextLineRecognizerConfiguration
. - Refactored
SBSDKBarcodeScannerViewControllerDelegate
. Please check all your classes that conform toSBSDKBarcodeScannerViewControllerDelegate
. - Removed
device
parameter from the initializer ofSBSDKMedicalCertificateScannerViewController
to be on par with other classic UI components.
- Removed all deprecated classes:
- 🚙 Under the hood:
- Updated third-party library TFlite to version 2.10.
Version 1.31.0 (3 January 2023):
- 🎉 New:
- Added support for more camera device types in
SBSDKCameraDevice
. The new device types areSBSDKCameraDeviceTypeUltraWide
,SBSDKCameraDeviceTypeDualWide
,SBSDKCameraDeviceTypeDual
andSBSDKCameraDeviceTypeTriple
. - Added new barcode scanner parameter
decodeStacks1D
toSBSDKBarcodeAdditionalParameters
. For stacked RSS barcodes, this should be set to the number of stacks with which the barcode was printed. - Added new type
SBSDKMedicalCertificateRecognizerFormType_21A_BACK
toSBSDKMedicalCertificateRecognizerFormType
. - Added new enum values
SBSDKMedicalCertificateRecognizerCheckboxTypeEntitlementToContinuedPaymentYes
,SBSDKMedicalCertificateRecognizerCheckboxTypeEntitlementToContinuedPaymentNo
,SBSDKMedicalCertificateRecognizerCheckboxTypeSickPayWasClaimedYes
,SBSDKMedicalCertificateRecognizerCheckboxTypeSickPayWasClaimedNo
,SBSDKMedicalCertificateRecognizerCheckboxTypeSingleParentYes
andSBSDKMedicalCertificateRecognizerCheckboxTypeSingleParentNo
toSBSDKMedicalCertificateRecognizerCheckboxType
. - Added a new text format property configuration in barcodes overlay
SBSDKBarcodeOverlayFormat
for RTU-UI, seeoverlayTextFormat
inSBSDKUIBarcodeSelectionOverlayConfiguration
and for classical component, seeoverlayTextFormat
inSBSDKBarcodeScannerViewController
. - Added new property
suppressPolygonLayer
toSBSDKDocumentScannerViewController
, to hide the polygon layer.
- 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.
- Improved recognition of Medical certificates in general.
- 🐞 Bug fixes:
- Fixed a potential crash when the app using ScanbotSDK is suspended by the operating system.
- Fixed issues with MRZ on Mexican and US passports.
- Fixed a crash when applying a filter to single channel images.
- Fixed a crash on the detection of Health Insurance cards in some rare cases.
- ⚠️ Breaking Changes:
- Changed the default back-facing camera to the ultra-wide lens on iPhone 14 Pro (including Max) devices, due to close-focusing issues with these devices.
- Renamed
hideDetectionStatusLabel
tosuppressDetectionStatusLabel
inSBSDKDocumentScannerViewController
. - Renamed
SBSDKMedicalCertificateRecognizerCheckboxTypeAccident
toSBSDKMedicalCertificateRecognizerCheckboxTypeAccidentYes
. - Renamed
SBSDKMedicalCertificateRecognizerCheckboxTypeRequiresCare
toSBSDKMedicalCertificateRecognizerCheckboxTypeRequiresCareYes
. - Deprecated
SBSDKNFCPassportReader
,SBSDKUINFCPassportReaderViewController
and related classes. Will be removed in the future. - Deprecated
SBSDKPayformScanner
and related classes. Will be removed in the future.
- 🚙 Under the hood:
- Added third-party libraries (backward-cpp v1.6 and magic-enum v0.8.1).
Version 1.30.2 (14 Mar 2023):
- 🐞 Bug fixes:
- Fixed a potential crash in OCR initialization when the app name contains spaces
Version 1.30.1 (17 October 2022):
- 🐞 Bug fixes:
- Fixed a crash when navigating to and from scanner view controllers.
Version 1.30.0 (14 October 2022):
- ⚠️ Breaking Changes:
- Xcode 14.0 and higher is now required to build and submit apps using ScanbotSDK!
- Removed bitcode from ScanbotSDK. Bitcode is no longer needed and Apple deprecated it with Xcode 14. Please turn bitcode off for your apps using ScanbotSDK!
- The
SBSDKCameraSession
's methodstartSession
is now asynchronous and has a completion handler.
- 🎉 New:
- Added support for IATA and Industrial barcode types.
- Added property
detectionStatusFontSize
toSBSDKDocumentScannerViewController
which allows you to change the font size for the user guidance. - Added property
textHintFontSize
toSBSDKUIDocumentScannerTextConfiguration
which allows you to change the font size of the text hints. - Added property
initialScanDelay
toSBSDKBaseScannerViewController
,SBSDKUIBarcodesBatchScannerBehaviourConfiguration
andSBSDKUIBarcodeScannerBehaviourConfiguration
, which allows you to define how long the view controller waits (after its appearance) before scanning/recognizing. - Added JSON-support for
SBSDKUICroppingScreenConfiguration
. - Added a new function
- (nonnull NSArray<SBSDKBarcodeScannerResult *> *)barcodeScanner:(nonnull SBSDKBarcodeScannerViewController *)controller filterResults:(nonnull NSArray<SBSDKBarcodeScannerResult *> *)codes
toSBSDKBarcodeScannerViewControllerDelegate
which allows you to filter detected barcodes before post-processing them in the final delegate call. - Added properties
displayResultsOverlay
,resultsOverlayColor
andresultsOverlayTextColor
toSBSDKBarcodeScannerViewController
to display an AR-style overlay highlighting the found recognition result in real-time. - Added properties
selectionOverlayEnabled
as well asselectionPolygonColor
,selectionTextColor
,selectionTextContainerColor
and their highlighted counterparts toSBSDKBarcodeScannerViewController
to display and configure an overlay for selecting and highlighting recognized barcodes. - Added property
selectionOverlayConfiguration
of the new classSBSDKUIBarcodeSelectionOverlayConfiguration
toSBSDKUIBarcodeScannerConfiguration
andSBSDKUIBarcodesBatchScannerConfiguration
. - Added property
applicationStateDidChangeHandler
toSBSDKBaseScannerViewController
to notify you when the application moved to foreground or background state. - Added property
zoomFactorDidChangeHandler
toSBSDKBaseScannerViewController
to notify you when the camera zoom factor has changed. - Added property
cameraZoomFactorAbsolute
toSBSDKBaseScannerViewController
which returns the absolute camera's video zoom factor. - Added functions
freezeCamera
andunfreezeCamera
toSBSDKBaseScannerViewController
,SBSDKUIBarcodeScannerViewController
andSBSDKUIBarcodesBatchScannerViewController
.
- 🚀 Improvements:
- Improved MRZ detection on the US passports
- 🐞 Bug fixes:
- Fixed a bug where UPC/EAN extensions were not recognized.
- Fixed a warning with Xcode 14/iOS 16 about the camera session's synchronous start.
- Fixed a bug in
SBSDKImageEditingViewController
where magnetic lines were initially not being recognized.
Version 1.29.0 (1 September 2022):
- 🎉 New:
- Added new class
SBSDKSoundController
to play a default or custom sound on different actions, e.g. successful code detection. - Added new method
playBleepSound
toSBSDKBaseScannerViewController
to play a default bleep sound.
- Added new class
- 🚀 Improvements:
- Improved accuracy and performance of the check recognizer.
- 🐞 Bug fixes:
- Fixed a bug in
SBSDKImageEditingViewController
where the initial document detection failed. - Fixed a bug with inaccurate results of the MRZ recognizer.
- Fixed a bug in
Version 1.28.1 (17 August 2022):
- 🎉 New:
- Added optional delegate method
documentScannerController:didSampleVideoFrame:detectionResult:
toSBSDKDocumentScannerViewControllerDelegate
, which informs the delegate that the document scanner has processed a video frame.
- Added optional delegate method
- 🐞 Bug fixes:
- Fixed a crash in
SBSDKBarcodeScannerViewController
.
- Fixed a crash in
Version 1.28.0 (19 July 2022):
- 🎉 New:
- Added support for JSON in all RTU-UI configurations. All
SBSDKUI...Configuration
classes now have aninitWithJSON:
initializer. - Added new parameter
codeDensity
toSBSDKBarcodeAdditionalParameters
. - Replaced
autoSnappingEnabled
withautoSnappingMode
of the new typeSBSDKAutosnappingMode
inSBSDKDocumentScannerViewController
. - Added new parameter
forceUserGuidance
toSBSDKUIDocumentScannerBehaviorConfiguration
. - Added new parameter
flashButtonHidden
to all RTU-UI screens.
- Added support for JSON in all RTU-UI configurations. All
- ⚠️ Breaking Changes:
- Moved the parameters
acceptedMachineCodeTypes
andacceptedDocumentTypes
from the initializers ofSBSDKUIBarcodeScannerViewController
toSBSDKUIBarcodeScannerBehaviorConfiguration
and fromSBSDKUIBarcodesBatchScannerViewController
toSBSDKUIBarcodesBatchScannerBehaviorConfiguration
. - Moved the parameter
recognitionStep
fromSBSDKUITextDataScannerViewController
toSBSDKUITextDataScannerBehaviorConfiguration
. - Removed the parameter
accumulatedFramesCount
and the corresponding initializers fromSBSDKBarcodeScanner
. - Removed the parameter
barcodeAccumulatedFramesCount
fromSBSDKBarcodeScannerViewController
andSBSDKScannerViewController
. - Removed parameters
imageOrientationLock
andallowedInterfaceOrientations
from all RTU-UI configurations. This has been replaced by the combined propertyorientationLockMode
. - Removed delegate methods
(void)scannerControllerDidChangeDeviceOrientation:(nonnull SBSDKScannerViewController *)controller to:(UIDeviceOrientation)orientation transform:(CGAffineTransform)transform
and(BOOL)scannerController:(nonnull SBSDKScannerViewController *)controller shouldRotateInterfaceForDeviceOrientation:(UIDeviceOrientation)orientation transform:(CGAffineTransform)transform
fromSBSDKScannerViewControllerDelegate
.
- Moved the parameters
- 🐞 Bug fixes:
- Fixed a crash in the check recognizer.
- 🚙 Under the hood:
- Updated third-party library Boost to version 1.79.0
Version 1.27.1 (7 June 2022):
- 🐞 Bug fixes:
- Fixed
autoSnappingEnabled
inSBSDUIDocumentScannerBehaviourConfiguration
that had no effect. - Fixed visibility of the shutter button in
SBSDKUIDocumentScannerViewController
when camera access is denied.
- Fixed
Version 1.27.0 (3 June 2022):
- 🎉 New:
- Classic UI components:
- Added a new base scanner view controller
SBSDKBaseScannerViewController
which provides a lot of base functionality like zooming, viewfinder, energy management, focus locking, flash light and flash animation, automatic interruption of detection on disappearance or when presenting view controllers and more. - Made all Classic UI scanner view controllers subclasses of the new
SBSDKBaseScannerViewController
. - Added new component
SBSDKCheckRecognizerViewController
for scanning checks. - Added new component
SBSDKHealthInsuranceScannerViewController
for scanning health insurance cards. - Added new component
SBSDKMRZScannerViewController
for scanning machine-readable zones. - Added new component
SBSDKDocumentScannerViewController
for scanning documents. This is a simpler version of the soon to be deprecatedSBSDKScannerViewController
.
- 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.
- Added new component
SBSDKUICheckRecognizerViewController
for scanning checks.
- Classic UI components:
- 🚀 Improvements:
- Beta: An improved Check Recognizer that now supports further bank layouts from different countries (e.g Kuwait, India, Australia). The recognizer is available as Classic and RTU UI components. Please note that this feature is still in beta. Furthermore, due to the renaming of the feature from "Cheque" to "Check", some classes and API methods have been renamed as well as new classes have been introduced. For more details please see the Breaking Changes.
- Improved 1D barcode recognition
- Improved generic document recognizer field validation
- 🐞 Bug fixes:
- Driver's license number is being validated now by its checksum.
- Medical certificates of type 1C are no longer recognized as 1A.
- ⚠️ Breaking Changes:
SBSDKLicensePlateScannerViewController
- removed property
showViewFinder
, please useviewFinderConfiguration.viewFinderEnabled
. - removed property
viewFinderBackgroundColor
, please useviewFinderConfiguration.backgroundColor
. - removed property
viewFinderLineColor
, please useviewFinderConfiguration.lineColor
. - removed property
viewFinderLineWidth
, please useviewFinderConfiguration.lineWidth
. - removed property
viewFinderMinimumInset
, please useviewFinderConfiguration.minimumInset
.
- removed property
SBSDKBarcodeScannerViewController
- replaced designated initializer with
- (nullable instancetype)initWithParentViewController:(nonnull UIViewController *)parentViewController parentView:(nullable UIView *)containerView delegate:(nullable id<SBSDKBarcodeScannerViewControllerDelegate>)delegate
. - In
SBSDKBarcodeScannerViewControllerDelegate
the function- (void)barcodeScannerController:(nonnull SBSDKBarcodeScannerViewController *)controller didDetectBarcodes:(nonnull NSArray<SBSDKBarcodeScannerResult *> *)codes;
is renamed to- (void)barcodeScannerController:(nonnull SBSDKBarcodeScannerViewController *)controller didDetectBarcodes:(nonnull NSArray<SBSDKBarcodeScannerResult *> *)codes onImage:(nonnull UIImage *)image;
. - removed property
HUDView
, please 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
SBSDKGenericTextLineRecognizerViewController
- removed property
finderMinimumInset
, please useviewFinderConfiguration.minimumInset
. - removed property
viewFinderBackgroundColor
, please useviewFinderConfiguration.backgroundColor
. - removed property
viewFinderLineColor
, please useviewFinderConfiguration.lineColor
. - removed property
viewFinderLineWidth
, please useviewFinderConfiguration.lineWidth
. - removed property
doubleTapToZoomEnabled
, please usezoomConfiguration.doubleTapToZoomEnabled
. - removed property
shouldAnimateZooming
, please usezoomConfiguration.shouldAnimateZooming
. - removed property
deviceMotionRecognitionDelay
. - removed function
toggleZoom
. - removed function
zoomIn
. - removed function
zoomOut
.
- removed property
SBSDKGenericDocumentRecognizerViewController
- removed property
showViewFinder
, please useviewFinderConfiguration.viewFinderEnabled
. - removed property
viewFinderBackgroundColor
, please useviewFinderConfiguration.backgroundColor
. - removed property
viewFinderLineColor
, please useviewFinderConfiguration.lineColor
. - removed property
viewFinderLineWidth
, please useviewFinderConfiguration.lineWidth
. - removed property
finderMinimumInset
, please useviewFinderConfiguration.minimumInset
.
- removed property
- Replaced
SBSDKFinderLayer
withSBSDKFinderView
. - Deprecated
SBSBDKScannerViewController
in favor ofSBSDKDocumentScannerViewController
. - Deprecated workflows, namely
SBSDKUIWorkflowScannerViewController
, its configurations andSBSDKUIWorkflowStep
, these will be removed from the SDK soon as they are not commonly used by our customers. - Removed the deprecated classes
SBSDKIDCardRecognizer
,SBSDKIDCardScannerViewController
,SBSDKUIIDCardScannerViewController
and their related classes, please use theSBSDKGenericDocument
-based API. - Renamed
SBSDKUIVideoContentMode
toSBSDKVideoContentMode
.
Version 1.26.2 (5 May 2022):
- 🎉 New:
- Added asynchronous, cancellable and progress-observable functions to
SBSDKPDFPagesExtractor
.
- Added asynchronous, cancellable and progress-observable functions to
- 🐞 Bug fixes:
- Fixed a bug with the viewfinder rectangle not being calculated correctly in landscape mode in
SBSDKBarcodeScannerViewController
.
- Fixed a bug with the viewfinder rectangle not being calculated correctly in landscape mode in
- 🚀 Improvements:
- Improved loading performance of
SBSDKImageEditingViewController
by executing the document detection concurrently. You can specify the queue for the document detection by setting the propertyprocessingQueue
before assigning an image. - Improved memory footprint of
SBSDKPDFPagesExtractor
.
- Improved loading performance of
Version 1.26.0 (7 April 2022):
- 🚀 Improvements:
- Major improvements on barcode detection.
- Improved barcode image cropping.
- Changed default OCR language in the health insurance card scanner to German for better recognition of umlauts.
- 🎉 New:
- Added a new property
topAndBottomButtonsSwapped
toSBSDKUICroppingScreenUIConfiguration
which enables the swapping of the top and bottom buttons inSBSDKUICroppingViewController
. - Added the
SBSDKUIDialogFactory
class to create iOS system-style alerts with extended functionality, e.g. displaying images. - Added the function tiffDataForImages:parameters: to get the TIFF image data in
SBSDKTIFFImageWriter
. - Added new checkbox types to the medical certificate recognizer, see
SBSDKMedicalCertificateRecognizerCheckboxType
.
- Added a new property
- ⚠️ Breaking Changes:
- Renamed
pageCounterAccessibilityHint
topageCounterButtonAccessibilityHint
inSBSDKUIDocumentScannerAccessibilityConfiguration
.
- Renamed
- 🚙 Under the hood:
- Since Swift is now module-stable, internal support for Swift was added. This allows us to implement future features using Swift with its extended robustness. Of course the Objective-C interoperability will still be maintained.
- Updated third-party library Boost to version 1.75.0
- Updated third-party library BoringSSL to commit 8f5eb80b
- Updated third-party library JSON for Modern C++ to version 3.10.2
- Updated third-party library Leptonica to version 1.82.0
- Updated third-party library libjpeg-turbo to version 2.1.2
- Updated third-party library libpng to version 1.6.36
- Updated third-party library libtiff to version 4.2.0
- Updated third-party library Nameof C++ to version 0.10.1
- Updated third-party library OpenCV to version 4.5.3
- Updated third-party library OpenSSL to version 1.1.1i
- Updated third-party library Skia to commit 47b4b19
- Updated third-party library spdlog to version 1.9.2
- Updated third-party library Tensorflow to version 2.6.1
- Updated third-party library Tesseract to version 4.1.3
- Updated third-party library XNNPACK to commit fb8d1f1b2
- Updated third-party library xsimd to commit 3d17850e
- Updated third-party library xtensor to commit be35a267
- Updated third-party library xtl to commit e0f00666
- Updated third-party library ZXing-C++ to version 1.1.0
- Updated third-party library G8Tesseract to commit bfc86ac
Version 1.25.1 (1 March 2022):
- 🐞 Bug fixes:
- Fixed a bug with wrong camera preview orientation when starting
SBSDKBarcodeScannerViewController
andSBSDKUIBarcodeScannerViewController
in landscape orientation.
- Fixed a bug with wrong camera preview orientation when starting
Version 1.25.0 (17 February 2022):
- 🎉 New:
- Added the ability to read and write PDF metadata from and to PDF files, see
SBSDKPDFMetadataProcessor
. - Added support for the GS1 barcode document format, see
SBSDKGS1DocumentFormat
. - Added the
SBSDKBarcodeDocumentParser
class which parses any given string for supported barcode document types. - Added new Classic UI component
SBSDKMedicalCertificateScannerViewController
and RTU-UI componentSBSDKUIMedicalCertificateScannerViewController
to scan medical certificates. - Added the ability to exclude certain fields from the generic document scanner's recognition process, see the
excludedFieldTypes
property inSBSDKGenericDocumentRecognizer
,SBSDKGenericDocumentRecognizerViewController
andSBSDKUIGenericDocumentRecognizerBehaviorConfiguration
.excludedFieldTypes
is an array of normalized names for the document field types, e.g.SBSDKGenericDocumentDeIdCardFrontPINFieldNormalizedName
. The full list of supported field types can be found inSBSDKGenericDocumentsModel.h
.
- Added the ability to read and write PDF metadata from and to PDF files, see
- 🚀 Improvements:
- Improved validation for
SBSDKGenericDocumentField
. Fields that havevalidationStatus
SBSDKGenericDocumentFieldValidationStatusInvalid
will not be shown in the list of fields ofSBSDKGenericDocument
.
- Improved validation for
- ⚠️ Breaking Changes:
- Renamed all disability certificate recognition APIs from SBSDKDisabilityCertificate... to SBSDKMedicalCertificate...
- Deprecated
SBSDKUIScanDisabilityCertificateWorkflowStep
.
- 🐞 Bug fixes:
- Fixed a crash when setting
pageCounterButtonAccessibilityLabel
inSBSDKUIDocumentScannerAccessibilityConfiguration
to nil.
- Fixed a crash when setting
Version 1.24.1 (26 January 2022):
- 🐞 Bug fixes:
- Fixes an issue with viewfinder colors and line width not being applied in RTU-UI components.
- Fixes an issue with the flashlight not turning on automatically if configured in
SBSDKUIBarcodeScannerViewController
andSBSDKUIBarcodesBatchScannerViewController
. - Fixes a crash when creating an instance of
SBSDKBlurrinessEstimator
.
Version 1.24.0 (14 January 2022):
- 🎉 New:
- Added ability to disable auto-focus by locking the lens at the specified lens position.
- Added property
isFocusLockEnabled
and functions- (BOOL)beginFocusLockAtLensPosition:(CGFloat)lensPosition
,- (void)endFocusLock
toSBSDKBarcodeScannerViewController
andSBSDKCameraSession
. - Added properties
focusLockEnabled
andfocusLockPosition
toSBSDKUIBarcodeScannerBehaviorConfiguration
andSBSDKUIBarcodesBatchScannerBehaviorConfiguration
.
- Added property
- Added ability to disable auto-focus by locking the lens at the specified lens position.
- 🚀 Improvements:
- Improved machine readable zone recognizer.
- Improved ID card recognizer.
- Improved Aztec barcode recognition.
- 🐞 Bug fixes:
- Fixes a bug with simulators not capturing the demo image when the shutter button is pressed
- Fixes a bug in
SBSDKPDFPagesExtractor
with transformed PDF pages.
Version 1.23.0 (22 December 2021):
- 🎉 New:
- Support for barcode scanner results filtering in RTU-UI barcode scanning components:
- New subclassable objects
SBSDKUIBarcodeFilter
andSBSDKUIBarcodeExtensionsFilter
. - New property
barcodeFilter
inSBSDKUIBarcodeScannerBehaviorConfiguration
andSBSDKUIBarcodesBatchScannerBehaviorConfiguration
.
- New subclassable objects
- Support for barcode scanner results filtering in RTU-UI barcode scanning components:
- 🚀 Improvements:
- Improved PDF417 recognition performance on single photos.
- Improved barcode detection on large documents.
- Updated flash buttons' icons.
- Improved GS-1 databar recognition in the next-gen barcode scanner.
- ⚠️ Breaking Changes:
- Added property
flashButtonInactiveColor
toSBSDKUIHealthInsuranceCardScannerUIConfiguration
. - Removed properties
bottomButtonsInactiveColor
andbottomButtonsActiveColor
ofSBSDKUIHealthInsuranceCardScannerUIConfiguration
as they are unnecessary.
- Added property
- 🐞 Bug fixes:
- Fixed a very rare problem in all scanner screens where the camera layer lost track of the device orientation.
- Fixed a rare crash in
SBSDKUIMRZScannerViewController
andSBSDKUIHealthInsuranceCardScannerViewController
when used in landscape mode. - Fixed a problem with an inaccurate finder in
SBSDKUIMRZScannerViewController
andSBSDKUIHealthInsuranceCardScannerViewController
.
Version 1.22.0 (25 November 2021):
- 🎉 New:
- Support for front-facing, telephoto and wide angle cameras in RTU-UI and classic components:
- New classes for camera support:
SBSDKCameraDevice
,SBSDKUIConfiguration
andSBSDKUICameraConfiguration
. - New function for camera support:
[SBSDKCameraSession initForFeature:withDevice:]
. - New property for camera support:
cameraDevice
inSBSDKBaseCameraViewController
which is the base class for all classic components. - All SBSDKUIConfiguration objects now derive from
SBSDKUIConfiguration
which adds the new subconfigrationcameraConfiguration
of typeSBSDKUICameraConfiguration
.
- New classes for camera support:
- Barcodes:
- Added properties
rawTextStringWithExtension
andmetadata
toSBSDKBarcodeScannerResult
to support barcode extensions of UPC and EAN barcodes. - The results screen of the
SBSDKUIBarcodesBatchScannerViewController
now displaysrawTextStringWithExtension
instead ofrawTextString
.
- Added properties
- Support for front-facing, telephoto and wide angle cameras in RTU-UI and classic components:
- 🐞 Bug fixes:
- Fixed crash when scanning barcodes on certain images.
- Fixed missing person info on disability certificate scans.
Version 1.21.2 (2 November 2021):
- 🎉 New:
- Added property
photoQualityPriorization
of typeSBSDKCapturePhotoQualityPrioritization
toSBSDKScannerViewController
and toSBSDKUIDocumentScannerBehaviorConfiguration
, which changes the prioritization of quality and speed when capturing still images.
- Added property
- ⚠️ Breaking Changes:
- Removed enum value SBSDKDocumentDetectorModeMachineLearningNoCoreML from
SBSDKDocumentDetectorMode
, CoreML and NonCoreML document detectors are now working equally, making the distinction of them obsolete. The CoreML version is used on devices with iOS 13.0 and above, on older iOS version the NonCoreML version is used internally.
- Removed enum value SBSDKDocumentDetectorModeMachineLearningNoCoreML from
- 🚙 Under the hood:
- Updated some third party libraries. (see Third-party Libraries)
Version 1.21.1 (13 October 2021):
- 🐞 Bug fixes:
- Fixes a crash in
SBSDKGenericDocumentRecognizer
when scanning the back of an ID card.
- Fixes a crash in
Version 1.21.0 (12 October 2021):
- 🎉 New:
- Added new filter type
SBSDKImageFilterTypePureGray
, a grayscale filter without further optimizations.
- Added new filter type
- 🚀 Improvements:
- Improved flexibility, speed, and accuracy of the EHIC Scanner (European Health Insurance Cards).
- 🐞 Bug fixes:
- Fixed a rare bug where capturing an image on a physical device returns a dummy image. The dummy image is now only returned on simulators.
- Fixed a bug in the layout of the status hints label in
SBSDKScannerViewController
on some devices. - Fixed a rare crash in
SBSDKNFCPassportReader
.
- ⚠️ Breaking Changes:
- Removed enum
SBSDKHealthInsuranceCardValidationType
, removed propertyvalidationType
fromSBSDKUIHealthInsuranceCardScannerBehaviorConfiguration
, removedinitWithValidationType:
and alldetectAndRecognizeFromImage
methods fromSBSDKHealthInsuranceCardRecognizer
, renamedSBSDKHealthInsuranceCardDetectionStatusFailedValidation
toSBSDKHealthInsuranceCardDetectionStatusIncompleteValidation
andrecognizeFromImage
torecognizeFromStillImage
resp.recognizeFromVideoFrameImage
. - Changed the method of localizing status hints in document scanner. Old keys will not work. Instead, added new class
SBSDKScannerStatusTextConfiguration
for setting the status hint text in the document scanner, along with thetextConfiguration
parameter inSBSDKScannerViewController
. - Changed property initializer in
SBSDKUINFCPassportReaderResult
from(instancetype _Nonnull )initWithDatagroupDG1:(nullable SBSDKNFCDatagroupDG1 *)dg1 datagroupDG2:(nullable SBSDKNFCDatagroupDG2 *)dg2;
to(instancetype _Nonnull )initWithDatagroup1:(nullable SBSDKNFCDatagroupDG1 *)dataGroup1 datagroup2:(nullable SBSDKNFCDatagroupDG2 *)dataGroup2;
and properties fromdatagroupDG1
,datagroupDG2
andphotoImageURL
todataGroup1
,dataGroup2
andphotoURL
. - Changed property from
submitButtonTitle
toviewResultsButtonTitle
inSBSDKUIGenericDocumentRecognizerTextConfiguration
andSBSDKUIIDCardScannerTextConfiguration
.
- Removed enum
Version 1.20.0 (25 August 2021):
- 🎉 New:
- Added support for zooming in
SBSDKUIBarcodesBatchScannerViewController
. - Added support for the ML based document detector without using CoreML to maintain compliance with the Android implementation, see
SBSDKDocumentDetectorModeMachineLearningNoCoreML
. - Added
anchorPointsColor
property toSBSDKImageEditingViewController
andSBSDKUICroppingScreenUIConfiguration
, which allows setting the color of the cropping anchor handles. - Added
stripCheckDigits
parameter inSBSDKBarcodeAdditionalParameters
class. - Added
SBSDKPDFPagesExtractor
class that can extract pages from a PDF asUIImages
, or convert them to JPEGs and write them to a specified URL.
- Added support for zooming in
- ⚠️ Breaking Changes:
- Added
SBSDKSEPADocumentFieldTypePurpose
,SBSDKSEPADocumentFieldTypeRemittance
andSBSDKSEPADocumentFieldTypeInformation
fields toSBSDKSEPADocumentFieldType
. RemovedSBSDKSEPADocumentFieldTypeReference
andSBSDKSEPADocumentFieldTypeHint
fields from it. - Added
pageImageSource
property toSBSDKUIPage
which replaces the now deprecatedisCapturedAutomatically
property.
- Added
- 🚀 Improvements:
- Improved recognition of UPC/EAN barcodes due to ink spread.
- 🐞 Bug fixes:
- Fixed a rare bug with calling some delegate function in
SBSDKUIDocumentScannerViewController
too often in some cases. - Fixed a bug with the EHIC recognizer that caused some UTF8 characters to be ignored upon recognition.
- Fixed a rare bug with calling some delegate function in
Version 1.19.3 (7 July 2021):
- 🎉 New:
- Added support for Swift Package Manager: you can now use the Swift Package Manager to embed the Scanbot SDK into your app.
- 🐞 Bug fixes
- Fixed a bug in
SBSDKGenericDocumentRecognizerViewController
where results come in before the previous results were processed.
- Fixed a bug in
Version 1.19.2 (6 July 2021):
- 🎉 New:
- Added support for recognition status and document image in
SBSDKGenericDocumentRecognizer
(seeSBSDKGenericDocumentRecognitionResult
).
- Added support for recognition status and document image in
- ⚠️ Breaking Changes:
SBSDKGenericDocumentRecognizer
andSBSDKGenericDocumentRecognizerViewControllerDelegate
returnSBSDKGenericDocumentRecognitionResult
instead ofSBSDKGenericDocument
.
Version 1.19.1 (1 July 2021):
- 🎉 New:
- Added support for Apple Silicon M1 simulators, your app build with the ScanbotSDK.xcframework or via CocoaPods now will run natively on M1 Mac simulators without having to start Xcode in Rosetta 2 mode.
- ⚠️ Breaking Changes:
- The Scanbot SDK CocoaPod now contains an XCFramework instead of a standard framework, you may need to update CocoaPods and/or Xcode.
Version 1.19.0 (30 June 2021):
- 🎉 New:
- Brand new "Next Generation" machine-learning-based barcode scanning engine with improved reliability and much faster performance.
- API changes for the new barcode engine: added
engineMode
property of typeSBSDKBarcodeEngineMode
on barcode scanning APIs likeSBSDKBarcodeScanner
,SBSDKBarcodeScannerViewController
, andSBSDKUIBarcodesBatchScannerBehaviorConfiguration
to switch between the legacy barcode engine and the new Next Generation barcode engine. By default, the new engine is used.
- ⚠️ Breaking Changes:
- Removed
enableHighSensitivityMode
property 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, the expiration date of expired licenses is now being logged to the console.
- More detailed Scanbot SDK module documentation.
- 🐞 Bug fixes
- Fixes a layout bug with long text on detection status labels.
- Fixes a bug in document scanner view controllers (Classic UI and Ready-to-use UI) where sometimes the energy save mode did not end properly.
- 🚙 Under the hood:
- New third-party libraries: xsimd, xtl und xtensor (see Third-party Libraries).
Version 1.18.0 (9 June 2021):
- 🎉 New:
- New disability certificate type:
SBSDKDisabilityCertificatesRecognizerFormType_1B_CUSTOM
. - Added support for MSI-Plessey barcodes again: see
SBSDKBarcodeTypeMSIPlessey
, MSI checksum algorithm is selectable viaSBSDKBarcodeAdditionalParameters
property namedmsiPlesseyChecksumAlgorithm
, by default MSI-Plessey is disabled, you must explicitly passSBSDKBarcodeAdditionalParameters
as an accepted type to any barcode scanning class.
- New disability certificate type:
- 🚀 Improvements:
- Better logging of licensing system errors, e.g. display the apps and the licenses bundle identifier.
- 🐞 Bug fixes
- Fixes a problem with UPC-A barcodes being recognized as EAN-13 barcodes.
Version 1.17.1 (12 May 2021):
- 🐞 Bug fixes
- Fixes a localization issue in
SBSDKUIGenericDocumentRecognizerViewController
.
- Fixes a localization issue in
Version 1.17.0 (10 May 2021):
- 🎉 New:
- Introduces the Generic Document Recognizer, providing the ability to scan various types of documents, including German ID cards, German passports and German driver's licenses:
SBSDKGenericDocument
,SBSDKGenericDocumentRecognizer
,SBSDKGenericDocumentRecognizerViewController
andSBSDKUIGenericDocumentRecognizerViewController
.
- Introduces the Generic Document Recognizer, providing the ability to scan various types of documents, including German ID cards, German passports and German driver's licenses:
- ⚠️ Breaking Changes:
- Deprecated
SBSDKIDCardRecognizer
,SBSDKIDCardScannerViewController
,SBSDKUIIDCardScannerViewController
and related classes, please use theSBSDKGenericDocument
-based API.
- Deprecated
Version 1.16.0 (21 April 2021):
- 🎉 New:
- Added support for zooming in
SBSDKBarcodeScannerViewController
andSBSDKUIBarcodeScannerViewController
. Use the new propertiescameraZoomRange
,cameraZoomFactor
,shouldAnimateZooming
,doubleTapToZoomEnabled
andpinchToZoomEnabled
onSBSDKBarcodeScannerViewController
andSBSDKUIBarcodeScannerBehaviorConfiguration
to configure zooming the camera to scan small barcodes. - Added support for document type filtering to
SBSDKUIBarcodesBatchScannerViewController
.
- Added support for zooming in
- ⚠️ Breaking Changes:
- Breaking change:
SBSDKBarcodeScannerViewController
:capturingFrameAspectRatio
was renamed tofinderAspectRatio
, andcapturingFrameMinimumInset
was renamed tofinderMinimumInset
. - Breaking change: Removed
SBSDKUIMachineCodeScannerConfiguration
and related configurations.SBSDKUIMRZScannerViewController
now usesSBSDKUIMRZScannerConfiguration
andSBSDKUIBarcodeScannerViewController
now usesSBSDKUIBarcodeScannerConfiguration
as configurations.
- Breaking change:
- 🐞 Bug fixes
- Fixes a bug in
SBSDKScannerViewController
where the default detection status label sometimes showed up although a custom status view was provided.
- Fixes a bug in
Version 1.15.1 (9 April 2021):
- 🎉 New:
- Added
enableGS1Decoding
parameter toSBSDKBarcodeAdditionalParameters
. - Added
image
property toSBSDKMachineReadableZoneRecognizerField
.
- Added
- 🐞 Bug fixes
- Fixed a bug in
SBSDKUIBarcodesBatchScannerViewController
whereadditionalDetectionParameters
have not been applied. - Fixed a rare bug when calculating the finder rectangle in
SBSDKGenericTextLineRecognizerViewController
,SBSDKLicensePlateScannerViewController
andSBSDKBarcodeScannerViewController
. - Fixed the delegate calls in
SBSDKUILicensePlateScannerViewController
.
- Fixed a bug in
- ⚠️ Breaking Changes:
- Renamed property
flashImageButtonHidden
toflashButtonHidden
inSBSDKUIDocumentScannerUIConfiguration
andSBSDKUIMultipleObjectScannerUIConfiguration
. - Removed the 2017 deprecated
SBSDKCropViewController
, please useSBSDKImageEditingViewController
instead.
- Renamed property
- 🚙 Under the hood:
- Updated OpenSSL to version 1.1.1j.
Version 1.15.0 (23 Mar 2021):
- 🎉 New:
- New feature: vehicle license plate scanner. The new classes are
SBSDKLicensePlateScanner
,SBSDKLicensePlateScannerViewController
andSBSDKUILicensePlateScannerViewController
. - Added
acceptedDocumentTypes
toSBSDKIDCardRecognizer
,SBSDKIDCardScannerViewController
andSBSDKUIIDCardScannerBehaviorConfiguration
. - Added
sharpnessAcceptanceFactor
toSBSDKUIIDCardScannerBehaviorConfiguration
. - Added
edgeLineWidth
parameter toSBSDKCropView
andSBSDKImageEditingViewController
. - Added
polygonLineWidth
parameter toSBSDKUICroppingScreenUIConfiguration
. - Added support for Voice-Over in RTU-UI components of the document scanner and the cropping screen, please see
SBSDKUICroppingScreenAccessibilityConfiguration
andSBSDKUIDocumentScannerAccessibilityConfiguration
for further info. You can customize the Voice-Over feature using theaccessibilityConfiguration
property inSBSDKUICroppingScreenTextConfiguration
andSBSDKUIDocumentScannerTextConfiguration
. - Added
additionalParameters
property toSBSDKBarcodeScanner
andSBSDKUIMachineCodeScannerBehaviorConfiguration
,additionalDetectionParameters
toSBSDKBarcodeScannerViewController
andSBSDKUIBarcodesBatchScannerBehaviorConfiguration
andadditionalBarcodeDetectionParameters
toSBSDKScannerViewController
which lets you setup a minimum and maximum text length as well as a quiet zone. Currently works for ITF and MSI Plessey barcodes only.
- New feature: vehicle license plate scanner. The new classes are
- 🐞 Bug fixes
- Fixed a rare out-of-memory crash in barcode (data matrix) scanning on older devices.
- Fixed issues with title centering in the cropping RTU-UI component.
- 🚀 Improvements:
- The machine-learning-based document detector is now the default detector on iOS devices with iOS 11.2 and above.
- Added download links for ScanbotSDK.framework and XCFramework in the Installation Guide of the documentation.
Version 1.14.1 (10 Mar 2021):
- 🐞 Bug fixes
- Fixed a rare crash in the barcode scanner with wrong finder coordinates.
- ⚠️ Breaking Changes:
- Removed support for MSI Plessey barcode detection.
Version 1.14.0 (23 Feb 2021):
- 🎉 New:
- Added support for Swiss QR codes, see
SBSDKSwissQRCodeDocumentFormat
. - Added support for document type filtering to barcode and QR code scanners,
acceptedDocumentTypes
properties inSBSDKBarcodeScanner
,SBSDKBarcodeScannerViewController
andSBSDKUIBarcodeScannerViewController
. - Added the ability to encrypt TIFF image files using the SDK encryption API, see
SBSDKTiffImageWriter
. - Added global control of status bar visibility and style in SBSDKUI components, see functions
+ (void)setShouldShowStatusBarOnScanningScreens:(BOOL)shouldShow
and+ (void)setDefaultStatusBarStyle:(UIStatusBarStyle)style
in the classScanbotSDKUI
.
- Added support for Swiss QR codes, see
- 🐞 Bug fixes
- Fixed a UI problem in
SBSDKUIBarcodesBatchScannerViewController
.
- Fixed a UI problem in
Version 1.13.0 (29 Jan 2021):
- 🎉 New:
- Added support for PDF encryption with new public functions in
SBSDKPDFRenderer
,SBSDKOpticalTextRecognizer
andScanbotSDKUI
: PDFs can be encrypted usingSBSDKAESEncrypter
or your custom written encryption classes. The PDF's data is encrypted in memory before it is written to disk. To decrpyt the PDF you need to run proper decryption in your backend or clients. SBSDKIDCardRecognizer
now additionally extracts machine readable zone fields and check digits, see the new propertiesmrzFields
andmrzCheckDigits
inSBSDKIDCardRecognizerResult
.
- Added support for PDF encryption with new public functions in
- 🚀 Improvements:
- Improved ID Card Recognizer with better compensation for perspective distortion
- Changed
SBSDKAESEncrypter
to create the keyphrase from password using the PBKDF2 method.
- ⚠️ Breaking Changes:
- (nullable instancetype)initWithKey:(NSString *)key mode:(SBSDKAESEncrypterMode)mode
was replaced by- (nullable instancetype)initWithPassword:(NSString *)password mode:(SBSDKAESEncrypterMode)mode
.
- 🐞 Bug fixes
- Fixed a potential crash in
SBSDKUIBarcodesBatchScannerViewController
.
- Fixed a potential crash in
Version 1.12.3 (17 Dec 2020):
- 🚀 Improvements:
- Improved detection of ITF barcodes
Version 1.12.2 (7 Dec 2020):
- 🚀 Improvements:
- Improved DataMatrix detection
Version 1.12.1 (2 Dec 2020):
- 🎉 New:
- Added new property
autoCancelTimeout
toSBSDKUIMachineCodeScannerBehaviorConfiguration
- 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
- Fixed a crash in
SBSDKUINFCPassportReaderViewController
Version 1.12.0 (26 Nov 2020):
- 🎉 New:
- Added (customizable) encryption/decryption to image stores; new classes:
SBSDKAESEncrypter
,SBSDKStorageCrypting
,ScanbotSDKUI
- For SBSDKUI components you can enable encryption for stored images globally using the function
+ (void)setDefaultImageStoreEncrypter:(nullable id<SBSDKStorageCrypting>)encrypter
ofScanbotSDKUI
class, this will encrypt all stored images in these components - Classic SBSDK components use
SBSDKKeyedImageStorage
orSBSDKIndexedImageStorage
, both got a new property namedencrypter
. SBSDKAESEncrypter
provides built-in support for AES128 and AES256 encryption, but you can create your own encrypter by implementing a class conforming to the protocolSBSDKStorageCrypting
- Added corner radius property
polygonCornerRadius
to document detection polygon layer inSBSDKScannerViewController
- Added delegate method
scannerController:backgroundPolygonColorForDetectionStatus:
toSBSDKScannerViewControllerDelegate
- Added ability to enable or disable crop and rotation functionality on
SBSDKImageEditingViewController
and RTU UI - Added ability to choose the binarization filter being used when storing TIFF files with
SBSDKTIFFImageWriter
, seebinarizationFilter
inSBSDKTIFFImageWriterParameters
- Added (customizable) encryption/decryption to image stores; new classes:
- 🚀 Improvements:
- Better recognition of rotated PDF417 codes
- ⚠️ Breaking Changes:
- Removed
polygonAutoSnapProgressCornerRadius
from SBSDKScannerViewController because of obsolescence. UsepolygonCornerRadius
instead. - Simplified
SBSDKTIFFImageWriter
API, a lot of functions have been removed because of duplication, the class now has only 2 functions left. Please refer to the documentation of this class.
- Removed
Version 1.11.9 (19 Nov 2020):
- 🚀 Improvements:
- Improved barcode and PDF417 detection
Version 1.11.8 (11 Nov 2020):
- 🐞 Bug fixes
- Fixed a license problem in SBSDKUIWorkflowScannerViewController
- Fixed a deadlock in
SBSDKUIBarcodesBatchScannerViewController
- Fixed a potential memory leak with
SBSDKUIBarcodesBatchScannerViewController
- The delegate function of
SBSDKUIBarcodeBatchStorageDelegate
- (void)barcodeBatchStorage:(SBSDKUIBarcodeBatchStorage *)storage didUpdateBarcode:(SBSDKUIBarcodeMappedResult *)barcode atIndex:(NSInteger)index;
is now called on the main queue
Version 1.11.7 (29 Oct 2020):
- 🚀 Improvements:
- Improved barcode, QR code and data matrix detection
Version 1.11.6 (22 Oct 2020):
- 🎉 New:
- Added polygon autosnap progress animation to
SBSDKScannerViewController
andSBSDKUIDocumentScannerViewController
- New properties related to this feature:
polygonAutoSnapProgressColor
,polygonAutoSnapProgressLineWidth
,polygonAutoSnapProgressEnabled
,polygonAutoSnapProgressCornerRadius
- Added another optional function in
SBSDKIDCardScannerViewControllerDelegate
:- (void)idCardScannerViewController:(SBSDKIDCardScannerViewController *)controller didFailRecognition:(SBSDKIDCardRecognizerResult *)idCardResult onImage:(UIImage *)image;
- Added polygon autosnap progress animation to
- 🐞 Bug fixes
- Potential crash in barcode recognition
Version 1.11.5 (14 Oct 2020):
- 🐞 Bug fixes
- Fixes call into SBSDKIDCardScannerViewControllerDelegate
Version 1.11.4 (13 Oct 2020):
- 🚀 Improvements:
- Reduced memory footprint of ID card recognizer by around 50%.
Version 1.11.3 (12 Oct 2020):
- 🐞 Bug fixes
- Reduced lifetime of memory intensive ID card recognizer instances to reduce memory related crashes on older devices.
- 🎉 New:
- Added new optional function to
SBSDKIDCardScannerViewControllerDelegate
:- (void)idCardScannerViewControllerWillCaptureImage:(SBSDKIDCardScannerViewController *)controller;
- Added new optional function to
Version 1.11.2 (6 Oct 2020):
- 🐞 Bug fixes
- Fixed zooming logic in some cases in Text Data Scanner RTU UI.
- The MRZ result fields in
SBSDKMachineReadableZoneRecognizerResult
, when received from therecognizePersonalIdentityFromText:
function, now have the confidence value set to 1.0.
- 🚀 Improvements:
- ID card recognition model was updated to improve recognition results for ID cards with address changed sticker.
- 🎉 New:
- Added function to
SBSDKFinderLayer
:+ (CGRect)potentialFinderRectWithBounds:(CGRect)bounds aspectRatio:(double)aspectRatio minimumInsets:(UIEdgeInsets)minimumInsets;
- Added function to
- ⚠️ Breaking Changes:
- Removed
SBSDKFilterMethodGPUOpenGL
fromSBSDKFilterMethod
enum, because OpenGLES is deprecated for a long time now
- Removed
Version 1.11.1 (30 Sep 2020):
- 🐞 Bug fixes
- fix font validation issue upon app submission to the app store
- fixes inivisible finder in
SBSDKGenericTextLineRecognizerViewController
Version 1.11.0 (29 Sep 2020):
- 🎉 New:
- NFC passport reader RTU UI component
SBSDKUINFCPassportReaderViewController
(requires iOS 13) - Text data scanner RTU UI component
SBSDKUITextDataScannerViewController
SBSDKUICroppingViewController
now has a hint label. The corresponding parameterhintTitle
was added toSBSDKUICroppingScreenTextConfiguration
- Added new delegate function to
SBSDKGenericTextLineRecognizerViewController
- (void)textLineRecognizerViewController:(nonnull SBSDKGenericTextLineRecognizerViewController *)controller didChangeViewFinderRect:(CGRect)rect;
- Added new parameter:
finderMinimumInset
,viewFinderBackgroundColor
,shouldShowWordBoxes
,wordBoxesFillColor
,wordBoxesLineColor
,viewFinderLineColor
,viewFinderLineWidth
,currentViewFinderRect
,shouldUseAnimationWhileZooming
toSBSDKGenericTextLineRecognizerViewController
- Added parameters
preferredZoom
andocrResolutionLimit
toSBSDKGenericTextLineRecognizerConfiguration
- NFC passport reader RTU UI component
- 🚀 Improvements:
SBSDKUIIDCardScannerViewController
now has improved MRZ-OCR validation. In case MRZ is scanned, its values are compared to OCR'd ones and result info is presented on details screen.
- 🐞 Bug fixes
- Crash while scanning large Aztec codes
- Fixed crash in cropping RTU UI related to too long hint label.
- Fixed build error with Cocoapods
- ⚠️ Breaking Changes:
- SBSDKGenericTextLineRecognizerViewController:
- Moved
preferredFinderHeight
andfinderAspectRatio
parameters fromSBSDKGenericTextLineRecognizerViewController
toSBSDKGenericTextLineRecognizerConfiguration
class. - Changed initializer from
- (nullable instancetype)initWithParentViewController:(nullable UIViewController *)parentViewController parentView:(nullable UIView *)containerView configuration:(nullable SBSDKGenericTextLineRecognizerConfiguration *)configuration preferredFinderHeight:(CGFloat)height finderAspectRatio:(double)aspectRatio delegate:(id<SBSDKGenericTextLineRecognizerViewControllerDelegate>)delegate;
to- (nullable instancetype)initWithParentViewController:(nullable UIViewController *)parentViewController parentView:(nullable UIView *)containerView configuration:(nullable SBSDKGenericTextLineRecognizerConfiguration *)configuration delegate:(id<SBSDKGenericTextLineRecognizerViewControllerDelegate>)delegate;
- 🚙 Under the hood:
- Deeply integrated document detector data into the framework, SBSDKDocumentDetectorData.bundle now is not longer an additional data bundle
Version 1.10.5 (23 Sep 2020):
- 🎉 New:
- Added NFC passport reader RTU UI component
SBSDKUINFCPassportReaderViewController
- Added Text Data scanner RTU UI component
SBSDKUITextDataScannerViewController
- Added NFC passport reader RTU UI component
- 🐞 Bug fixes:
- Fixed crash while scanning large Aztec codes
- 🚀 Improvements:
- Moved SBSDKDocumentDetectorData.bundle into the SDK, this is no longer an optional component
Version 1.10.4 (17 Sep 2020):
- 🚀 Improvements:
- Improved recognition of damaged DataMatrix barcodes
- Modernized camera API usage and removed deprecated API usage, multiple new functions added to process a CVPixelBufferRef
- Improved Disability Certificate Recognizer
- 🐞 Bug fixes:
- Fixed potential crash in
SBSDKGenericTextLineRecognizerViewController
- Fixed potential crash in
- ⚠️ Breaking Changes:
- SBSDKMultipleObjectsDetector:
- (nullable NSArray<SBSDKPolygon*>*) detectInBuffer:(nonnull CMSampleBufferRef)sampleBufferRef orientation:(AVCaptureVideoOrientation)videoOrientation;
renamed to- (nullable NSArray<SBSDKPolygon*>*) detectInSampleBuffer:(nonnull CMSampleBufferRef)sampleBufferRef orientation:(AVCaptureVideoOrientation)videoOrientation;
- SBSDKCameraSession:
- (void)captureStillImageWithCompletionHandler:(nullable void (^)(CMSampleBufferRef _Nullable, NSError* _Nullable))completion;
changed to- (void)captureStillImageWithCompletionHandler:(nullable void (^)(CVPixelBufferRef _Nullable, NSError* _Nullable))completion;
- SBSDKMultipleObjectsDetector:
- 🚙 Under the hood:
- Updated OpenCV to version 4.4.0
Version 1.10.3 (10 Sep 2020):
- 🎉 New:
- Added Data Scanner module
SBSDKGenericTextLineRecognizer
andSBSDKGenericTextLineRecognizerViewController
- Added Data Scanner module
- ⚠️ Breaking Changes:
- Removed support for iOS 9 and iOS 10
Version 1.10.2 (2 Sep 2020):
- 🐞 Bug fixes:
- Fixed passport document number check digit assignment.
Version 1.10.1 (13 Aug 2020):
- 🐞 Bug fixes:
- Fixed ID card RTU UI startup crash.
Version 1.10.0 (11 Aug 2020):
- 🎉 New:
- Added ID Card Recognizer RTU UI component
SBSDKUIIDCardScannerViewController
. - Added Barcode batch detector RTU UI component
SBSDKUIBarcodesBatchScannerViewController
. - Beta: Added NFC Passport Scanner component
SBSDKNFCPassportReader
. - Barcode scanner:
SBSDKBarcodeScannerResult
class now containsrawBytes
parameter.
- Added ID Card Recognizer RTU UI component
- 🐞 Bug fixes:
- Barcode scanner format parser fixes
- Fixed error type in
SBSDKOpticalTextRecognizer
in case of cancelling operation.
- ⚠️ Breaking Changes:
SBSDKBarcodeScannerResult
initializer is now- (instancetype)initWithPolygon:(SBSDKPolygon *)poly type:(SBSDKBarcodeType *)type barcodeImage:(UIImage *)image rawTextString:(NSString *)string rawBytes:(NSData *)rawBytes;
Version 1.9.19 (29 Jul 2020):
- 🐞 Bug fixes:
- ID Card Scanning: fixed an issue that caused poor OCR results
- Added missing debug symbol files
Version 1.9.18 (13 Jul 2020):
- 🎉 New:
- ID Card Recognizer: added support for german passports
- Beta: New sensitive binarization image filter
SBSDKImageFilterTypeSensitiveBinarization
- Beta: Added support for MSI Plessey barcode format. Disabled by default, must explicitly be allowed.
- 🚀 Improvements:
- Improved barcode detection model
- Improved handling of ink spread issues with Code128 barcodes
- Improved barcode and QR code live detection especially for very dense codes
- 🐞 Bug fixes:
- ID Card Scanning: fixed bug that prevented recognition of the letter 'ß'
Version 1.9.17 (3 Jul 2020):
- 🐞 Bug fixes:
- Adds missing simulator debug symbol files
Version 1.9.16 (2 Jul 2020):
- 🎉 New:
- Recognizer for German ID Cards
SBSDKIDCardRecognizer
+ the correspondingSBSDKIDCardScannerViewController
as Classical Component - Added support for XCFramework - Apple's new binary format of packing frameworks
- Beta: Blurriness estimator
SBSDKBlurrinessEstimator
- Beta: Model-based solution for BackgroundClean filter
- Recognizer for German ID Cards
- 🚀 Improvements:
- Updated the installation guide
- 🚙 Under the hood:
- Updated OpenSSL to version 1.1.1g
- Updated TensorFlow to version 2.2.0
- ⚠️ Breaking Changes:
- Spelling fixes:
- In
SBSDKUIEnableCameraUIConfiguration
parameterenableCameraDesctiptionColor
was renamed toenableCameraDescriptionColor
- In
SBSDKUIWorkflowStep
parameterrunsContinousValidation
was renamed torunsContinuousValidation
- In
- Spelling fixes:
Version 1.9.15 (18 May 2020):
- 🎉 New:
- Added support for inverted barcodes
- Added class
SBSDKUICroppingScreenBehaviorConfiguration
and corresponding property of this class toSBSDKUICroppingScreenConfiguration
. - Added
detectorMode
parameter to behavior configuration for RTU UI document scannerSBSDKUIDocumentScannerBehaviorConfiguration
. This parameter allows to choose the detector type for scanner: standard or machine learning based. - Added possibility to set default detector mode of
SBSDKDocumentDetector
via+ (void)setDefaultDetectorMode:(SBSDKDocumentDetectorMode)newDefaultDetectorMode;
. The getter function is+ (SBSDKDocumentDetectorMode)defaultDetectorMode;
. - Added functions
- (nullable SBSDKDocumentDetectorResult *)detectDocument:(BOOL)applyPolygonIfOkay detectorMode:(SBSDKDocumentDetectorMode)detectorMode;
and- (void)applyDocumentDetectionWithDetectorMode:(SBSDKDocumentDetectorMode)detectorMode;
toSBSDKUIPage
.
- ⚠️ Breaking Changes:
SBSDKUICroppingScreenConfiguration
initializer is now- (nonnull instancetype)initWithUIConfiguration:(nonnull SBSDKUICroppingScreenUIConfiguration *)uiConfiguration textConfiguration:(nonnull SBSDKUICroppingScreenTextConfiguration *)textConfiguration behaviorConfiguration:(nonnull SBSDKUICroppingScreenBehaviorConfiguration *)behaviorConfiguration
- Removed function
+ (BOOL)isDocumentDetectorModeAvailable:(SBSDKDocumentDetectorMode)mode;
fromSBSDKDocumentDetector
. IOS version check can now be used instead of this function. - Removed function
+ (BOOL)isDocumentDetectorModeAvailable:(SBSDKDocumentDetectorMode)mode;
fromSBSDKScannerViewController
. IOS version check can now be used instead of this function. SBSDKMedicalPlanPatientFieldTypeAllergysAndIntolerances
is renamed toSBSDKMedicalPlanPatientFieldTypeAllergiesAndIntolerances
SBSDKMedicalPlanSubheadingReceipeFieldType
enum is renamed toSBSDKMedicalPlanSubheadingPrescriptionFieldType
. Its casesSBSDKMedicalPlanSubheadingReceipeFieldTypeGeneralInformation
andSBSDKMedicalPlanSubheadingReceipeFieldTypeReceipeFreeText
has been renamed toSBSDKMedicalPlanSubheadingPrescriptionFieldTypeGeneralInformation
andSBSDKMedicalPlanSubheadingPrescriptionFieldTypePrescriptionFreeText
respectively.SBSDKMedicalPlanSubheadingReceipeField
class name is changed toSBSDKMedicalPlanSubheadingPrescriptionField
.SBSDKMedicalPlanSubheadingReceipe
class name is changed toSBSDKMedicalPlanSubheadingPrescription
.- Cases of
SBSDKVCardDocumentFieldType
-SBSDKVCardDocumentFieldTypeCallendarURIForRequests
andSBSDKVCardDocumentFieldTypeCallendarURI
has been renamed toSBSDKVCardDocumentFieldTypeCalendarURIForRequests
andSBSDKVCardDocumentFieldTypeCalendarURI
respectively. - Case of
SBSDKBoardingPassDocumentFieldType
-SBSDKBoardingPassDocumentFieldTypeSecongNonConsecutiveBaggageTagLicensePlateNumber
has been renamed toSBSDKBoardingPassDocumentFieldTypeSecondNonConsecutiveBaggageTagLicensePlateNumber
- In
SBSDKBarcodeScannerViewControllerDelegate
the function- (void)barcodeScannerController:(nonnull SBSDKBarcodeScannerViewController *)controller didDetecBarcodes:(nonnull NSArray<SBSDKBarcodeScannerResult *> *)codes;
is renamed to- (void)barcodeScannerController:(nonnull SBSDKBarcodeScannerViewController *)controller didDetectBarcodes:(nonnull NSArray<SBSDKBarcodeScannerResult *> *)codes;
.
Version 1.9.14 (7 May 2020):
- 🐞 Bug fixes:
- Fixes a problem with Apples review process rejecting an app because of pdf.ttf font
Version 1.9.13 (28 Apr 2020):
- 🐞 Bug fixes:
- Fixes a crash in Workflows
Version 1.9.12 (27 Apr 2020):
- 🎉 New:
- New ML-based document detector
- European Health Insurance Card (EHIC): Automatic country detection and support for Austrian EKVK cards
- Updated Tesseract OCR engine to version 4.1.0
- ⚠️ Breaking Changes:
- Renamed
SBSDKPageAspectRatio
toSBSDKAspectRatio
- In
SBSDKFinderLayer
type of parameterminimumInsets
was changed fromCGSize
toUIEdgeInsets
. So now inset from each side can be set up independently. - In
SBSDKUIMachineCodeScannerUIConfiguration
removedbottomButtonsInactiveColor
andbottomButtonsActiveColor
. ParametertopBarButtonsColor
now affects flash button active state. AddedflashButtonInactiveColor
. - In
SBSDKScannerViewController
type of parametercapturingFrameMinimumInset
was changed fromCGSize
toUIEdgeInsets
. - In
SBSDKScannerViewController
parameterCGSize capturingFrameSize
is changed toSBSDKAspectRatio *capturingFrameAspectRatio
. - In
SBSDKBarcodeScannerViewController
parameterCGSize capturingFrameSize
is changed toSBSDKAspectRatio *capturingFrameAspectRatio
. - In
SBSDKBarcodeScannerViewController
type of the parametercapturingFrameMinimumInset
was changed fromCGSize
toUIEdgeInsets
. - In
SBSDKUIMachineCodeScannerUIConfiguration
parametersCGFloat finderWidth
andCGFloat finderHeight
are replaced bySBSDKAspectRatio *finderAspectRatio
. - In
SBSDKUIScanBarCodeWorkflowStep
the initializer- (instancetype)initWithTitle:(nullable NSString *)title message:(nullable NSString *)message acceptedCodeTypes:(nullable NSArray<SBSDKBarcodeType *> *)acceptedMachineCodeTypes finderViewSize:(CGSize)finderViewSize resultValidation:(nullable SBSDKUIWorkflowStepValidationHandler)resultValidationHandler
is changed to- (instancetype)initWithTitle:(nullable NSString *)title message:(nullable NSString *)message acceptedCodeTypes:(nullable NSArray<SBSDKBarcodeType *>*)acceptedMachineCodeTypes finderViewAspectRatio:(nullable SBSDKAspectRatio *)finderViewAspectRatio resultValidation:(nullable SBSDKUIWorkflowStepValidationHandler)resultValidationHandler
- Renamed
- 🐞 Bug fixes:
- Finder in
SBSDKUIMRZScannerViewController
now has the same behavior, as inSBSDKUIBarcodeScannerViewController
. By documentation, both should operate with aspect ratio, but MRZ screen operated with actual sizes.
- Finder in
- 🚀 Improvements:
- In
SBSDKUIBarcodeScannerViewController
andSBSDKUIMRZScannerViewController
flash button was moved to navigation bar to save more space for finder layer.
- In
Version 1.9.11 (26 Mar 2020):
- 🎉 New:
- New
SBSDKUIMultipleObjectScannerViewController
RTU UI component for scanning multiple objects like business cards - Barcode scanning: Added
SBSDKUIBarcodeImageStorage
class for handling barcode images storage - Barcode scanning: Added flashLightEnabled property to SBSDKBarcodeScannerViewController
- General: Added
- (void)cameraAccessDidChange:(BOOL)granted;
function toSBSDKUICameraViewController
. This function can be used bySBSDKUICameraViewController
subclasses to define behavior after camera access check
- New
- ⚠️ Breaking Changes:
- removed SBSDKMachineReadableCode, SBSDKMachineReadableCodeMetadata, SBSDKMachineReadableCodeManager, SBSDKGenericBarcode, SBSDKGenericQRCode, SBSDKContactQRCode, SBSDKEventQRCode, SBSDKLocationQRCode, SBSDKMailMessageQRCode, SBSDKPhoneNumberQRCode, SBSDKShortMessageQRCode, SBSDKWebURLQRCode, SBSDKWiFiHotspotQRCode since these classes have become obsolete
Version 1.9.10 (21 Feb 2020):
- 🐞 Bug fixes:
- Various minor bug fixes and improvements
Version 1.9.9 (4 Feb 2020):
- 🎉 New:
- Adjustable Filters: Added new GPU-accelerated filters for base manipulation of images, e.g. contrast, brightness, saturation, vibrance, color temperature, tint etc. using Metal.framework with fallback options to OpenGL ES and CPU (see
SBSDKAdjustableFilters
headers includes for subclasses) - Barcode Scanning: New ML-based Barcode and QR-code scanner
- Cheque recognition: New ML-based recognizer with support for american and EU cheque formats
- Adjustable Filters: Added new GPU-accelerated filters for base manipulation of images, e.g. contrast, brightness, saturation, vibrance, color temperature, tint etc. using Metal.framework with fallback options to OpenGL ES and CPU (see
- 🚀 Improvements:
- Licensing: Changed license failure handling: invalid licenses will no longer crash the app containing ScanbotSDK, instead SDK API will return nil or empty values
- Licensing: Query the currents license status using
+[ScanbotSDK licenseStatus]
- Barcode Scanning: Improved static images detection
- MRZ Scanning: Added support for swiss driver license
- Added aspect ratio range property to
SBSDKMultipleObjectsDetector
- 🐞 Bug fixes:
- Fixes and improvements for various image filters
- Various fixes for barcode parsers of different formats
- Fixed Machine Readable Zones recognition (black background)
- Fixed a typo in SBSDKMachineReadableZoneRecognizerResult: recognitionSuccessful
- DC recognizer: bug fixes and performance improvements
- ⚠️ Breaking Changes:
- Fixed a typo in
SBSDKMachineReadableZoneRecognizerResult
: recognitionSuccessful SBSDKBarcodeScanner
: function parameters with types of barcodes to detect have been moved to a propertySBSDKBarcodeScanner
: some function parameters have been renamedSBSDKUIBarcodeScannerViewControllerDelegate
:[SBSDKUIBarcodeScannerViewControllerDelegate qrBarcodeDetectionViewController:didDetect:]
has been replaced by[SBSDKUIBarcodeScannerViewControllerDelegate qrBarcodeDetectionViewController:didDetectResults:]
- Fixed a typo in
- ❌ Deprecated API:
SBSDKChequeRecognizerResult
: the properties routingNumber, accountNumber and chequeNumber have been encapsulated in a new class namedSBSDKChequeRecognizerResultField
that now holds the string value as well as a detection confidence value
Version 1.9.8 (15 Jan 2020):
- 🐞 Bug fixes:
- Fixed crash caused by adding
SBSDKScannerViewController
as embedded controller via Interface Builder
- Fixed crash caused by adding
Version 1.9.7 (25 Oct 2019):
- 🚀 Improvements:
- MRZ Scanner: Added all checkdigits in MRZ result as additional fields - see
SBSDKMachineReadableZoneRecognizerResult.checkDigits
.
- MRZ Scanner: Added all checkdigits in MRZ result as additional fields - see
- 🐞 Bug fixes:
- Fixed crashes in the beta Barcode Scanner with parsing AAMVA data of PDF417 barcodes on US driver licenses.
- iOS 13 fix: Set the default
modalPresentationStyle
ofSBSDKScannerViewController
and all RTU UI ViewControllers toUIModalPresentationFullScreen
.
- ⚠️ Breaking Changes:
- Barcode types passed to ScnabotSDK API are no longer parameters of type
NSArray<NSNumber *>*
but ofNSArray<SBSDKBarcodeType *>*
. Affected APIs are located inSBSDKBarcodeScanner
,SBSDKBarcodeScannerResult
,SBSDKScannerViewController
,SBSDKUIBarcodeScannerViewController
,SBSDKUIMachineCodesCollection
andSBSDKUIWorkflowStep
and its subclasses.
- Barcode types passed to ScnabotSDK API are no longer parameters of type
Version 1.9.6 (24 Sep 2019):
- 🐞 Bug fixes:
- Fixed a sporadic crash in the beta Barcode Scanner
SBSDKBarcodeScanner
. - Fixed a crash in the beta Barcode Scanner with parsing AAMVA data of PDF417 barcodes (support for shorter header than in specification).
- Fixed a sporadic crash in the beta Barcode Scanner
Version 1.9.5 (21 Aug 2019):
- 🐞 Bug fixes:
- Fixed UI configs of the RTU UI EHIC Scanner (
SBSDKUIHealthInsuranceCardScannerUIConfiguration.topBarBackgroundColor
). - Fixed mappings of new field types
SBSDKDisabilityCertificateRecognizerCheckboxTypeAccident
andSBSDKDisabilityCertificateRecognizerCheckboxTypeRequiresCare
inSBSDKDisabilityCertificatesRecognizerResult
.
- Fixed UI configs of the RTU UI EHIC Scanner (
Version 1.9.4 (12 Aug 2019):
- 🎉 New:
- New recognizer for the European Health Insurance Cards (EHIC). Provides live detection and data extraction of all fields on the back of the card.
Available as Classical SDK Component class
SBSDKHealthInsuranceCardRecognizer
as well as the Ready-To-Use UI Component classSBSDKUIHealthInsuranceCardScannerViewController
. Also see our updated example apps on GitHub scanbot-sdk-example-ios for easy integration. - New QR- & Barcode Scanner
SBSDKBarcodeScanner
as beta feature which provides:- better detection and exatraction of 1D and 2D barcodes, especially Data Matrix and PDF 417 codes
- improved and simplified API - see the class
SBSDKBarcodeScanner
of our Classical SDK Components (implementation as RTU UI Component will follow soon) - out-of-the-box parsers, like German Medical Plans (Medikationsplan) based on Data Matrix (
SBSDKMedicalPlanDocumentFormat
), ID Cards (SBSDKIDCardPDF417DocumentFormat
) or US Driver Licenses (SBSDKAAMVADocumentFormat
) both based on PDF 417.
- Please note that the new
SBSDKBarcodeScanner
component is a BETA feature and is still under active development and improvement.
- New recognizer for the European Health Insurance Cards (EHIC). Provides live detection and data extraction of all fields on the back of the card.
Available as Classical SDK Component class
- 🐞 Bug fixes:
- Fixed the delegate call
imageEditingViewControllerDidChangePolygon:
ofSBSDKImageEditingViewController
.
- Fixed the delegate call
Version 1.9.3 (30 Jul 2019):
- 🎉 New:
- New black & white image filter
SBSDKImageFilterType.SBSDKImageFilterTypeLowLightBinarization2
. - Disability Certificate Recognizer - Recognition of new fields:
SBSDKDisabilityCertificatesRecognizerResult.patientFields
,SBSDKDisabilityCertificatesRecognizerResult.intention
,SBSDKDisabilityCertificatesRecognizerResult.insuredPersonType
.
- New black & white image filter
- 🚀 Improvements:
- Validation of the key names in
-[SBSDKKeyedImageStorage setImage:forKey:]
. Please note that passing an invalid key will throw anNSInvalidArgumentException
now. See the API docs of thesetImage
method for more details. - Improved recognition of SEPA payforms via
SBSDKPayFormScanner
. Added recognition from barcodes and some new fields. Please also note the API breaking changes below.
- Validation of the key names in
- ⚠️ Breaking Changes:
SBSDKPayFormScanner
API - Removed the obsolete methodsdetectOnImage:scannedImage
andrecognizeFieldsOnImage:scannedImage
. Replaced by a new all-in-one method-[SBSDKPayFormScanner recognizeFromImage:]
. Removed obsolete classesSBSDKPayFormResult
,SBSDKPayFormDetectionResult
andSBSDKPayFormDetectedBox
.
- 🐞 Bug fixes:
- Fixed an issue with unknown device orientation
UIDeviceOrientationUnknown
inSBSDKScannerViewController
. - Removed hardcoded language string in
+[SBSDKOpticalTextRecognizer recognizeText:indexSet:languageString:pdfOutputURL:error:]
.
- Fixed an issue with unknown device orientation
Version 1.9.2 (6 Jun 2019):
- 🎉 New:
- Added a new config property in the RTU UI Document Scanner Component:
SBSDKUIDocumentScannerBehaviorConfiguration.maxNumberOfPages
- Added a new config property in the RTU UI Document Scanner Component:
Version 1.9.1 (23 May 2019):
- 🚀 Improvements:
- Added initializer
-[SBSDKUIPage initWithPageFileID:polygon:filter:documentImageSizeLimit:]
- Added initializer
- 🐞 Bug fixes:
- Fixed OCR resource path
Version 1.9.0 (3 May 2019):
- 🎉 New:
- Workflows - New RTU UI Scanning Components.
- New black & white image filter
SBSDKImageFilterType.SBSDKImageFilterTypeLowLightBinarization
- Binarization filter primarily intended to use on low-contrast documents with hard shadows. - Added new config properties in the RTU UI Document Scanner Component:
SBSDKUIDocumentScannerBehaviorConfiguration.documentImageSizeLimit
- to limit the size of the document image.SBSDKUIDocumentScannerBehaviorConfiguration.stopsCameraSessionWhenDisappeared
- to avoid lags in some situations when the receiver returns to the scanning screen.SBSDKUIDocumentScannerUIConfiguration.shutterButtonHidden
- to hide the shutter button.
- 🚀 Improvements:
- OCR - Upgraded the OCR engine to Tesseract v4.00. Improved recognition speed and quality. Please also note the Breaking Changes below.
- Improved performance of the images filter
SBSDKImageFilterType.SBSDKImageFilterTypeDeepBinarization
. - Better visualization and API for energy save management in the Classical UI Scanner Component
SBSDKScannerViewController
. See the new propertySBSDKScannerViewController.energySavingActive
. Please make sure to implement a suitable handling and localized text for that (e.g. in the delegate method-[SBSDKScannerViewControllerDelegate scannerController:localizedTextForDetectionStatus:]
). - Better visualization for energy save management in the RTU UI Document Scanner Component
SBSDKUIDocumentScannerViewController
. Added a new text hint configurationSBSDKUIDocumentScannerTextConfiguration.textHintEnergySavingActive
. Please make sure to provide a suitable localized text for that. - Added a dummy image for simulator image capturing. It can be used to run automated tests of all Document Scanner components on a simulator.
- Added a new method in
-[SBSDKDisabilityCertificatesRecognizer detectAndRecognizeFromImage:]
as an alternative detection approach to therecognizeFromImage
method.
- ⚠️ Breaking Changes:
- OCR Language Files - If you use the OCR feature of the Scanbot SDK or some recognizer components which are based on OCR, please upgrade the OCR language files to Tesseract 4.00. See the OCR section for more details.
- OCR API - OCR results per page. See
SBSDKOCRResult.pages
.
- 🐞 Bug fixes:
- Fixed the status of the torch light toggle button in the RTU UI Document Scanner on reactivating the scanning screen.
- Various minor bug fixes and improvements.
Version 1.8.6 (20 Feb 2019):
- 🚀 Improvements:
- Changed the behaviour of image resource loading.
- 🚙 Under the hood:
- Updated OpenSSL to v1.0.2q
- Updated libtiff to v4.0.10
- Updated libpng to v1.6.36 (part of other libs)
- Updated libjpeg to v9b (part of other libs)
Version 1.8.5 (14 Feb 2019):
- 🎉 New:
- Added business card detector and processor:
SBSDKMultipleObjectsDetector
andSBSDKBusinessCardsImageProcessor
- Added text orientation recognizer:
SBSDKTextOrientationRecognizer
- Added business card detector and processor:
- 🐞 Bug fixes:
- Fixed potential synchronization issues with
SBSDKIndexedImageStorage
andSBSDKKeyedImageStorage
- Fixed potential synchronization issues with
Version 1.8.4 (31 Jan 2019):
- Fixed crashes in
SBSDKTIFFImageWriter
when using write methods with file URLs
Version 1.8.3 (30 Jan 2019):
- Fixed handling of
SBSDKUICroppingScreenConfiguration.uiConfiguration
arguments in RTU Cropping UI (polygonColor
, etc) - Fixed animation of the Shutter Button in SmartMode in
SBSDKScannerViewController
- Fixed handling of 24bit PNG images (e.g iOS 12 screenshots)
- Implemented a deep copy functionality in
SBSDKIndexedImageStorage
as specified by the protocol-[SBSDKImageStoring copy]
- Implemented new methods
-[SBSDKIndexedImageStorage replaceImageAtIndex:withImage:]
and-[SBSDKIndexedImageStorage replaceImageAtIndex:withImageAtURL:]
- Implemented new image filter types
SBSDKImageFilterType.SBSDKImageFilterTypeOtsuBinarization
,SBSDKImageFilterType.SBSDKImageFilterTypeDeepBinarization
andSBSDKImageFilterType.SBSDKImageFilterTypeEdgeHighlight
- Added storage location initializers to
SBSDKUIPageFileStorage
- Added support for meta-data and compression parameters in
SBSDKTIFFImageWriter
- Added frame limiter for QR/barcode scanning:
SBSDKScannerViewController.metadataFrameLimiter
- Improved recognition of pay cheque:
SBSDKChequeRecognizer
- Improved document detection by required aspect ratios
- ⚠️ Breaking change in the API: Changed the type of the property
SBSDKScannerViewController.requiredAspectRatios
- ⚠️ Breaking change in the API: Changed the type of the property
- Various minor bug fixes and improvements
Version 1.8.2 (20 Nov 2018):
- Fixed an issue with asset images of RTU UI components
- Small fixes in MRZ Recognizer (improved detection on still images of some ID cards)
Version 1.8.1 (13 Nov 2018):
- Added property
SBSDKScannerViewController.requiredAspectRatios
to restrict document detection to given aspect ratios - Added a new viewfinder layer to
SBSDKScannerViewController
and the related propertySBSDKScannerViewController.finderMode
to visualize detection of document with required aspect ratios - Added new functions to
ScanbotSDK
class to better handle license failures, like expiration and usage of features not included in your license:+[ScanbotSDK setupDefaultLicenseFailureHandler]
+[ScanbotSDK setLicenseFailureHandler:]
- Added property
SBSDKScannerViewController.frameLimiter
which limits the detection rate on very fast devices to save a lot of CPU power and prevents unnecessary battery draining - Added a new method
+[SBSDKUIPDFRenderer renderDocument:withOCRLanguages:output:]
which provides a convenient API to perform OCR and render a searchable PDF of aSBSDKUIDocument
- Minor accuracy improvements in the document detector
Version 1.8.0 (27 Sep 2018):
- Implemented the "Reset/Detect" functionality in RTU Cropping UI
- Added support for
allowedInterfaceOrientations
in all RTU UI ViewControllers (can be set via corresponding configurations) - Fixed issues with
orientationLockMode
in RTU Document Scanner UI - Added ability to specify preferred aspect ratios for detector in
SBSDKScannerViewController
(seeSBSDKScannerViewController.preferredAspectRatios
) - Under the hood: Upgraded to OpenCV version 3.4.3
- Minor bug fixes and improvements
Version 1.7.8 (7 Sep 2018):
- Added a new method
+[ScanbotSDK setResourceBundle:]
to overwrite the location of Scanbot SDK default data bundle (e.g. if you need to embed the data bundles in another bundle) - Added a new property
SBSDKScannerViewController.defaultShutterButton
- Bugfix in MRZ Recognizer (
dateOfBirth
field was not extracted on some French ID cards) - Fixed issues with Xcode inspector showing
nil
for every field inSBSDKMachineReadableZoneRecognizerResult
- Fixed an issue with bundle data location for Cheque Recognizer
- Improvements and potential fixes in SDK license manager
Version 1.7.7 (28 Aug 2018):
- Fixed bitcode generation
Version 1.7.6 (28 Aug 2018):
- DC Scanner:
- Improved recognition of low-constrast scans
- ⚠️ Breaking change: The DC Scanner now uses
eng.traineddata
instead ofdeu.traineddata
!
- Removed the obsolete Credit Card Recognizer from SDK (components and bundles)
- Minor internal refactorings and improvements
Version 1.7.4:
- fixes memory leaks
Version 1.7.3:
- fix a bug where
SBSDKIndexedImageStorage
removes image files not properly
Version 1.7.2:
- extended and improved API to apply image filter on pages coming from Ready-To-Use UI
- new thread-safe container class
SBSDKUIDocument
for scanned pages - added the fields
checkDigitsCount
andvalidCheckDigitsCount
inSBSDKMachineReadableZoneRecognizerResult
- minor bug fixes and improvements
Version 1.7.1:
- fixed rotation bug in
SBSDKImageEditingViewController
Version 1.7.0:
- added Ready-To-Use UI components
SBSDKUIDocumentScannerViewController
,SBSDKUICroppingViewController
,SBSDKUIMRZScannerViewController
,SBSDKUIBarcodeScannerViewController
- a set of easy to integrate and customize high-level UI components for the most common tasks in Scanbot SDK - added
SBSDKCameraExposureSettings
class to extract the current exposure metering parameters from the camera - deprecated
SBSDKImageStorage
- added
SBSDKIndexedImageStorage
andSBSDKKeyedImageStorage
as replacements - minor bug fixes
- dropped support for iOS 8
Version 1.6.2:
- minor bugfixes
- added two new
SBSDKPDFRendererPageSize
modes
Version 1.6.1:
- added support for CocoaPods
- new documentation
- new filters and cleaned up filter enum
- moved OCR lanugage data into a separate bundle
- added image orientation lock property to
SBSDKScannerViewController
Version 1.6.0:
- minor bugfixes and improvements
- built with Xcode 9.3 toolchain
Version 1.5.9:
- fixed a line rendering problem in
SBSDKImageEditingViewController
Version 1.5.8:
- added
SBSDKTIFFImageWriter
Version 1.5.7:
- updated OCR engine
- added
SBSDKMachineReadableZoneRecognizer
Version 1.5.6:
- added capture simulation to
SBSDKScannerViewController
Version 1.5.5:
- added Disability Certificate Recognizer
Version 1.5.4:
- fixed a bug with duplicated URLs in
SBSDKImageStorage
Version 1.5.3:
- fixed a crash when importing images from the photo library
Version 1.5.2:
- fixed a bug with 16 bit per component images and Display P3 colorspace
Version 1.5.1:
- added two new functions to
SBSDKScannerViewController
to help with energy saving
Version 1.5.0:
- fixed a bug with unrecognized barcodes
- added a new
SBSDKScannerViewControllerDelegate
function that delivers the captured original image and image metadata
Version 1.4.8:
- added support for machine readable codes (QR codes, barcodes) scanning in
SBSDKScannerViewController
- added support and protocol for parsing machine readable codes
- added basic QR and barcode parsers
- added support for registering custom machine readable code parsers
- moved demo app from SDK into a separate github repository, now it is located here: https://github.com/doo/scanbot-sdk-example-ios
Version 1.4.7:
- new
SBSDKImageEditingViewController
as a flexible and more powerful replacement ofSBSDKCropViewController
SBSDKCropViewController
has been deprecated and will not longer receive software engineering love
Version 1.4.6:
- Fixed a bug where capturing an image would block the main thread unnecessarily long
Version 1.4.5:
- Improved performance when capturing images using
SBSDKScannerViewController
by around 50%
Version 1.4.4:
- New functions in
SBSDKScannerViewControllerDelegate
for scanning documents, customizing UI and QR code scanning - Fixed a bug in
SBSDKCropViewController
where sometimes the polygon handles were not touchable
Version 1.4.3:
- Fixed a bug in
SBSDKCropViewController
where sometimes the polygon handles were not visible
Version 1.4.2:
- Minor bugfixes
- New autocaptureSensitivity property in
SBSDKScannerViewController
Version 1.4.1:
- Minor bugfixes in documentation
- Additional synchronous API for
SBSDKOpticalTextRecognizer
andSBSDKPDFRenderer
Version 1.4.0:
- Added
SBSDKCropViewController
, a Scanbot-like UI for manual cropping of images, including magnetic snapping of edges to found contours
Version 1.3.0:
- Removed static libraries
- Changed distribution model to single embeddable framework containing all architectures and bitcode
Version 1.2.1:
- Fixed crash in sample app by adding
NSCameraUsageDescription
andNSPhotoLibraryUsageDescription
.
Version 1.2.0:
- Improved all detectors accuracy
- Added
SBSDKImageMetadata
andSBSDKImageMetadataProcessor
to extract EXIF data etc. from image - Added
SBSDKLensCameraProperties
which can be passed to polygon based warping functions to improve the aspect ratio of the cropped image and let it be very close to the original documents aspect ratio SBSDKLensCameraProperties
can be extracted fromSBSDKImageMetadata
- Added 3 new filters: SBSDKImageFilterTypePhoto, SBSDKImageFilterTypePhotoBW1, SBSDKImageFilterTypePhotoBW2
- The photo filter is useful to correct strong color tints, the 2 other new filters create different color-to-gray mappings
- Added SBSDKMultipleDocumentsDetector (Beta) to detect multiple photos or documents on an image
- Minor fixes and optimizations
Version 1.1.4:
- Added cheque recognizer
SBSDKChequeRecognizer
Version 1.1.2:
- Improved credit card recognizer
SBSDKCreditCardRecognizer
Version 1.1.1:
- Beta: Added brand new credit card recognizer: SBSDKCreditCardRecognizer
- Refactored Demo app: now contains Document Detection, Payform Detection and Credit Card detection
- Fixed some bugs in
SBSDKScannerViewController
, e.g. automatic crop after manual snap - Added imageMode flag to
SBSDKScannerViewController
, can be set to grayscale mode to capture all images in grayscale mode for better memory footprint - Added API to SBSDImageProcessor to pass UIImage objects directly instead of NSURLs
Version 1.0.15:
- Added new delegate method -(NSString )scannerController:(SBSDKScannerViewController )controller localizedTextForDetectionStatus:(SBSDKDocumentDetectionStatus)status to help you localizing the detection status strings
Version 1.0.14:
- New color filter now working correctly
- Fixed a bug in the binarization filter
Version 1.0.13:
- Improved accuracy of automatic document detection
- Introduced new colored document image filter
Version 1.0.12:
- Rebuilt with Xcode 7 final
- Updated some documentation
Version 1.0.11:
SBSDKScannerViewController
- Fixed an orientation issue on iPad
Version 1.0.10:
SBSDKScannerViewController
- Significantly improved peak memory usage when capturing images (~ 50%)
- Added new delegate method - (BOOL)scannerController:shouldRotateInterfaceForDeviceOrientation:transform:(CGAffineTransform)transform
Version 1.0.9:
SBSDKScannerViewController
- Added new delegate method (void)scannerControllerDidChangeDeviceOrientation:to:transform:
Version 1.0.8:
SBSDKScannerViewController
- Added new method -(BOOL)captureStillImage to allow manual capturing using the delegate interface
Version 1.0.7:
SBSDKScannerViewController
- Fixed wrong orientation of original image when capturing a document image
Version 1.0.6:
SBSDKScannerViewController
- Fixed a bug that prevented displaying the detection statuses for poor light and noise
- Added properties acceptedSizeScore and acceptedAngleScore, allowing you to alter the acceptance parameters for automatic shutter release (e.g. more perspective distortion or smaller document size)
Want to scan longer than one minute?
Generate a free trial license to test the Scanbot SDK thoroughly.
Get your free Trial LicenseWhat do you think of this documentation?
What can we do to improve it? Please be as detailed as you like.