DOT iOS Document Integration Manual
v9.2.3
Introduction
DOT iOS Document provides components for document capture and related functionalities which are easy to integrate into an iOS application.
Requirements
- Xcode 26.2+
- iOS 13.0+
- Swift or Objective-C
- CocoaPods or Swift Package Manager
Deprecated Objective-C
In the major release 9.0.0, Objective-C support is deprecated, and in the following major release 10.0.0 it will be removed. If your iOS application integrates DOT iOS Document using Objective-C, you will need to implement the bridging on your side.
Distribution
Swift Package Manager
DOT iOS Document is distributed as a binary XCFramework - DotDocument.xcframework with its dependencies stored in our public github repository. It can be easily integrated into Xcode project in: Project -> Package Dependencies.
Use https://github.com/innovatrics/dot-ios-sdk-spm.git repository and choose version you want to use. There you can select DotDocument package. All the required dependencies will be downloaded with the selected package.
Cocoapods
DOT iOS Document is distributed as a XCFramework - DotDocument.xcframework using Cocoapods with its dependencies stored in our public github repository. It can be easily integrated into Xcode with custom definition of podspecs. First step is to insert following line of code on top of you Podfile.
.Podfile
source 'https://github.com/innovatrics/innovatrics-podspecs'
Then DOT iOS Document dependency must be specified in Podfile. Dependencies of DOT iOS Document will be downloaded alongside it.
.Podfile
source 'https://github.com/innovatrics/innovatrics-podspecs'
use_frameworks!
target 'YOUR_TARGET' do
pod 'dot-document'
end
In case of CocoaPods problem with pod install, try to clone the private pod repository manually.
pod repo remove innovatrics
pod repo add innovatrics https://github.com/innovatrics/innovatrics-podspecs
Supported Architectures
DOT iOS Document provides all supported architectures in the distributed XCFramework package.
Device binary contains: arm64.
Simulator binary contains: x86_64, arm64.
Debug symbols
Due to security concerns, DOT iOS Document does not include debug symbol files (dSYM files) in the distributed XCFramework package. As a result, Xcode will generate warnings when uploading an iOS application that includes DOT iOS Document to the App Store. These warnings can be safely ignored.
Licensing
In order to use DotSdk in your iOS application, it must be licensed. The license can be compiled into the application as it is bound to Bundle Identifier specified in the General tab in Xcode.
The Bundle ID can be also retrieved in runtime by calling DotSdk.shared.bundleId.
In order to obtain the license, please contact your Innovatrics’ representative specifying Bundle ID. After you have obtained your license file, add it to your Xcode project and use it during the DotSdk initialization, as shown below.
Permissions
Set the following permission in Info.plist:
.Info.plist
\<key>NSCameraUsageDescription\</key>
\<string>Your usage description\</string>
Basic Setup
Initialization
Before using any of the components, you need to initialize DOT SDK with the license, DotDocumentLibraryConfiguration object and modules configurations you want to use. Each module can be accessed by its *ModuleConfiguration class. DOT iOS Document is distributed as a set of XCFramework packages. Each module is distributed as a single XCFramework package, see the table below.
You do not need to import the modules you want to use, but you have to have them as dependencies in your project.
| Module | Configuration Class | XCFramework |
dot-document-barcode | DotDocumentBarcodeModuleConfiguration | DotDocumentBarcode.xcframework |
https://github.com/innovatrics/dot-ios-sdk-samples/blob/main/DotSdkSamples/SceneDelegate.swift[DOT SDK Sample] shows how to initialize DOT SDK with DotDocumentLibraryConfiguration. DotSdk.shared.initialize() method should be called on background thread.
Keep in mind that if you try to use any feature which was not added during initialization DOT SDK will generate fatal error.
Deinitialization
When you have finished using the DOT iOS Document, it is usually a good practice to deinitialize it in order to free the memory. You can deinitialize DOT iOS Document only after the complete process is finished and not within the life cycle of individual components. This can be performed using the DotSdk.shared.deinitialize() method. If you want to use the DOT iOS Document components again, you need to call DotSdk.shared.initialize() again.
Logging
DOT iOS Document supports logging using a global Logger class. You can set the log level as follows:
import DotDocument
Logger.logLevel = .debug
Log levels:
- debug
- info
- warning
- error
- none
Each log message contains DotDocument tag. Keep in mind that logging should be used just for debugging purposes.
Components
Overview
DOT iOS Document provides both non-UI and UI components. Non-UI components are aimed to be used by developers who want to build their own UI using the DOT iOS Document functionality. UI components are built on top of non-UI components. Components having UI are available as UIViewController classes and can be embedded into the application’s existing UI or presented using the standard methods.
List of Non-UI Components
DOCUMENT DETECTOR:: A component for performing document detection on an image. IMAGE PERSPECTIVE WARPER:: A component for warping the perspective of an image according to the detected document corners. DOCUMENT AUTO CAPTURE CONTROLLER:: A component for capturing good quality images suitable for optical character recognition. MACHINE READABLE ZONE READER:: A component for reading Machine Readable Zone (MRZ).
List of UI Components
UI DOCUMENT AUTO CAPTURE:: An visual component for capturing good quality images suitable for optical character recognition.
Non-UI Components
Document Detector
The DocumentDetector class provides a document detection functionality.
Create a DocumentDetector:
let documentDetector = DocumentDetector()
To perform detection, call the following method on the background thread:
let documents = try documentDetector.detect(image: image, limit: 1)
Image Perspective Warper
The ImagePerspectiveWarper class provides perspective warping functionality.
Create ImagePerspectiveWarper:
let imagePerspectiveWarper = ImagePerspectiveWarper()
To perform perspective warping, call the following method on the background thread:
let warpedImage = try? imagePerspectiveWarper.warp(image: image, detectionPosition: detectionPosition, targetImageSize: targetImageSize)
Document Auto Capture Controller
The DocumentAutoCaptureController class provides a stateful document auto capture functionality.
You can configure DocumentAutoCaptureController using DocumentAutoCaptureController.Configuration.
Create DocumentAutoCaptureController:
let configuration = try! DocumentAutoCaptureController.Configuration(
autoCapture: .init(
minValidSamplesInRowToStartCandidateSelection: 2,
candidateSelectionDurationMillis: 2000
),
validators: validators,
detectionArea: detectionArea)
let controller = DocumentAutoCaptureController(configuration: configuration)
You can use detectionArea to specify the region in the input image which will be used for document detection. For example, if you want to ignore top 30% and bottom 30% of the input image, you can do it as follows:
let detectionArea = RectangleDouble(left: 0, top: 0.3, right: 1.0, bottom: 0.7)
If detectionArea is set to nil(default) the full input image is used for document detection.
To capture a good quality document image, repeatedly call the process() method using the sample:
let processingResult = try documentAutoCaptureController.process(sample: sample)
The controller evaluates the document image requirements for each sample (frame). Once the controller detects enough (https://innovatrics.github.io/dot-ios-sdk-api-docs/dot-capture/latest/documentation/dotcapture/autocaptureconfiguration-swift.class/minvalidsamplesinrowtostartcandidateselection[minValidSamplesInRowToStartCandidateSelection]) valid samples in a row, candidate selection is started with duration of https://innovatrics.github.io/dot-ios-sdk-api-docs/dot-capture/latest/documentation/dotcapture/autocaptureconfiguration-swift.class/candidateselectiondurationmillis[candidateSelectionDurationMillis] milliseconds. After the candidate selection is finished, the best document image candidate is returned and the document auto capture process is over.
Machine Readable Zone Reader
The MrzReader class provides a Machine Readable Zone (MRZ) reading functionality.
Create MrzReader:
let mrzReader = MrzReader()
To read a MRZ, call the following method on the background thread:
let result = mrzReader.read(image: image, document: document)
Or alternatively, if you know the travel document type, call this method to increase the precision of the reading process:
let result = mrzReader.read(image: image, document: document, travelDocumentType: travelDocumentType)
The document argument is a product of either Document Detector component, Document Auto Capture Controller component or UI Document Auto Capture component.
The result of successful MRZ reading contains travel document type and machine readable zone. If MRZ reading was not successful, the result will contain an error and travelDocumentType and/or machineReadableZone may be nil.
UI Components
Camera handling
Camera lifecycle
DOT iOS Document view controller will start the camera in viewWillAppear(:) lifecycle method.
DOT iOS Document view controller will stop the camera in viewDidDisappear(:) lifecycle method.
Camera permission
DOT iOS Document view controller will check the camera permission right before the camera is started. If the camera permission is granted the view controller will start the camera. If the camera permission is denied the view controller will call
*ViewControllerNoCameraPermission(:) callback. Implement this callback in order to navigate the user further in your app workflow. If the camera permission is not determined the view controller will use iOS API -
https://developer.apple.com/documentation/avfoundation/avcapturedevice/1624584-requestaccessformediatype?language=objc[AVCaptureDevice.requestAccess(for: .video)] method to request the camera permission. This method will present the system
dialog to the user of the app. The user of the app can grant or deny the camera permission and then the view controller will proceed the same way as it does during the camera permission check as was explained at the beginning of this
section.
View Controller Configuration
Components containing UI are embedded into the application as view controllers. All view controllers can be embedded into your own view controller or presented directly. Each view controller can be configured using its *Configuration class and each view controller can have its appearance customized using its *Style class.
To present view controller:
let viewController = DocumentAutoCaptureViewController(configuration: .init(), style: .init())
viewController.delegate = self
navigationController?.pushViewController(viewController, animated: true)
To embed view controller into your view controller:
override func viewDidLoad() {
super.viewDidLoad()
let viewController = DocumentAutoCaptureViewController(configuration: .init(), style: .init())
addChild(viewController)
view.addSubview(viewController.view)
viewController.view.translatesAutoresizingMaskIntoConstraints = false
viewController.didMove(toParent: self)
NSLayoutConstraint.activate([
viewController.view.topAnchor.constraint(equalTo: view.safeAreaLayoutGuide.topAnchor),
viewController.view.leadingAnchor.constraint(equalTo: view.safeAreaLayoutGuide.leadingAnchor),
viewController.view.bottomAnchor.constraint(equalTo: view.safeAreaLayoutGuide.bottomAnchor),
viewController.view.trailingAnchor.constraint(equalTo: view.safeAreaLayoutGuide.trailingAnchor)
])
}
Safe Area
DOT iOS Document view controllers ignore safe area layout guide when they layout their subviews. Therefore, for example if you push DOT iOS Document view controller using UINavigationController, you will get incorrect layout. If you want to respect safe area layout guide, you should embed DOT iOS Document view controller in a container view controller and setup the layout constraints accordingly.
Video Recording for Identity Proofing
UI components support video recording. You can enable this feature in the component’s configuration using the isVideoCaptureEnabled parameter. The duration of the captured video is limited to a maximum of 8 seconds, corresponding to the end of the processing session. The captured video is bundled into the component’s result binary content and can be retrieved via the Digital Identity Service (DIS) for the purposes of https://developers.innovatrics.com/digital-onboarding/docs/functionalities/trust/identity-proofing/[Identity proofing].
UI Document Auto Capture
The view controller with document placeholder which is used for capturing document images.
You can configure DocumentAutoCaptureViewController using DocumentAutoCaptureViewController.Configuration.
You can customize the appearance of DocumentAutoCaptureViewController using DocumentAutoCaptureViewController.Style.
You can handle the DocumentAutoCaptureViewController events using its delegate DocumentAutoCaptureViewControllerDelegate.
Start the Document Auto Capture process:
- Check whether DOT iOS Document is initialized.
- If DOT iOS Document is initialized, you can call the
start()method immediately. If not, you need to initialize DOT iOS Document and callstart().
When the document auto capture process finishes successfully, the result will be returned via the documentAutoCaptureViewController(:finished:) callback.
In case you want to force the capture event, call the requestCapture() method. The most recent image will be returned via the documentAutoCaptureViewController(:finished:) callback asynchronously.
Call start() method again in case you need to start over the document auto capture process (e.g. you want to capture both sides of the document, one after another). You can also call start() method to stop and start over ongoing process as well.
In case you want to stop the document auto capture process prematurely, call the stop() method.
Once the document auto capture process has started, it is not safe to deinitialize the DOT iOS Document until either you have manually called the stop() method, or the following callback is called:
documentAutoCaptureViewController(:finished:)
Quality Attributes of the Output Image
You may adjust quality requirements for the output image. To perform this, you can use pre-defined builders - https://innovatrics.github.io/dot-ios-sdk-api-docs/dot-document/latest/documentation/dotdocument/documentautocapturequalityattributethresholds-swift.class/builder[`DocumentAutoCaptureQualityAttributeThresholds.Builder`] - from https://innovatrics.github.io/dot-ios-sdk-api-docs/dot-document/latest/documentation/dotdocument/documentautocapturequalityattributethresholds-swift.class/presets[`DocumentAutoCaptureQualityAttributeThresholds.Presets`] with recommended thresholds and pass it to https://innovatrics.github.io/dot-ios-sdk-api-docs/dot-document/latest/documentation/dotdocument/basedocumentautocaptureviewcontroller/configuration-swift.class[`BaseDocumentAutoCaptureViewController.Configuration`] by setting the https://innovatrics.github.io/dot-ios-sdk-api-docs/dot-document/latest/documentation/dotdocument/basedocumentautocaptureviewcontroller/configuration-swift.class/qualityattributethresholds-swift.property[`qualityAttributeThresholds`]. You can also create your own instance of https://innovatrics.github.io/dot-ios-sdk-api-docs/dot-document/latest/documentation/dotdocument/documentautocapturequalityattributethresholds-swift.class[`DocumentAutoCaptureQualityAttributeThresholds`] from scratch or based on pre-defined builders according to your needs.
Possible ways how to create https://innovatrics.github.io/dot-ios-sdk-api-docs/dot-document/latest/documentation/dotdocument/documentautocapturequalityattributethresholds-swift.class[`DocumentAutoCaptureQualityAttributeThresholds`]:
// The standard preset
let standard = DocumentAutoCaptureQualityAttributeThresholds.Presets.standard.build()
// Modified thresholds based on the standard preset
let modified = try DocumentAutoCaptureQualityAttributeThresholds.Presets.standard
.minConfidence(minConfidence)
.minSharpness(nil)
.build()
// Custom thresholds
let custom = try DocumentAutoCaptureQualityAttributeThresholds.Builder()
.minConfidence(minConfidence)
.minSharpness(minSharpness)
.build()
Available presets (pre-defined builders with thresholds) in https://innovatrics.github.io/dot-ios-sdk-api-docs/dot-document/latest/documentation/dotdocument/documentautocapturequalityattributethresholds-swift.class/presets[`DocumentAutoCaptureQualityAttributeThresholds.Presets`]:
- https://innovatrics.github.io/dot-ios-sdk-api-docs/dot-document/latest/documentation/dotdocument/documentautocapturequalityattributethresholds-swift.class/presets/standard[`standard`] - The resulting image suitable for evaluation on Digital Identity Service. See the https://innovatrics.github.io/dot-ios-sdk-api-docs/dot-document/latest/documentation/dotdocument/documentautocapturequalityattributethresholds-swift.class/presets/standard[thresholds].
Customization of UI Components
Localization
String resources can be overridden in your application and alternative strings for supported languages can be provided following these two steps:
-
Add your own
Localizable.stringsfile to your project using standard iOS localization mechanism. To change a specific text override corresponding key in thisLocalizable.stringsfile. -
Set the localization bundle to the bundle of your application (preferably during the application launch in your
AppDelegate).
Use this setup if you want to use standard iOS localization mechanism, which means your iOS application uses system defined locale.
import DotDocument
Localization.bundle = .main
Custom Localization
You can override standard iOS localization mechanism by providing your own translation dictionary and setting the Localization.useLocalizationDictionary flag to true. Use this setup if you do not want to use standard iOS localization mechanism, which means your iOS application ignores system defined locale and uses its own custom locale.
import DotDocument
guard let localizableUrl = Bundle.main.url(forResource: "Localizable", withExtension: "strings", subdirectory: nil, localization: "de"),
let dictionary = NSDictionary(contentsOf: localizableUrl) as? [String: String]
else { return }
Localization.useLocalizationDictionary = true
Localization.localizationDictionary = dictionary
.Localizable.strings
"dot_document.document_auto_capture.instruction.brightness_too_high" = "Less light needed";
"dot_document.document_auto_capture.instruction.brightness_too_high_escalated" = "Move document to darker area";
"dot_document.document_auto_capture.instruction.brightness_too_low" = "More light needed";
"dot_document.document_auto_capture.instruction.brightness_too_low_escalated" = "Move document to brighter area";
"dot_document.document_auto_capture.instruction.document_out_of_bounds" = "Center document";
"dot_document.document_auto_capture.instruction.document_does_not_fit_placeholder" = "Center document";
"dot_document.document_auto_capture.instruction.document_not_detected" = "Scan document";
"dot_document.document_auto_capture.instruction.size_too_small" = "Move closer";
"dot_document.document_auto_capture.instruction.size_too_small_escalated" = "Move document closer";
"dot_document.document_auto_capture.instruction.hotspots_score_too_high" = "Avoid reflections";
"dot_document.document_auto_capture.instruction.mrz_not_present" = "Scan valid machine readable document";
"dot_document.document_auto_capture.instruction.mrz_not_valid" = "Scan valid machine readable document";
"dot_document.document_auto_capture.instruction.barcode_not_present" = "Scan document with barcode";
"dot_document.document_auto_capture.instruction.barcode_outside_of_document" = "Scan document with barcode";
"dot_document.document_auto_capture.instruction.sharpness_too_low" = "More light needed";
"dot_document.document_auto_capture.instruction.sharpness_too_low_escalated" = "Move document to brighter area";
"dot_document.document_auto_capture.instruction.candidate_selection" = "Hold still...";
Common Classes
ImageSize
Class which represents a size of an image. To create an instance:
let imageSize = ImageSize(width: 100, height: 100)
Image
Class which represents an image.
To create an instance from CGImage:
let bgraRawImage = ImageFactory.createBgraRawImage(cgImage: cgImage)
To create an instance from CIImage:
let bgraRawImage = ImageFactory.createBgraRawImage(ciImage: ciImage, ciContext: ciContext)
To create CGImage from Image:
let cgImage = CGImageFactory.create(image: image)
To create CIImage from Image:
let ciImage = CIImageFactory.create(image: image)
DetectionPosition
Class which represents a document card corners. To create an instance:
let detectionPosition = DetectionPosition(topLeft: topLeft, topRight: topRight, bottomRight: bottomRight, bottomLeft: bottomLeft)
Security guidelines
The effectiveness of our video injection prevention feature can be strengthened if the application that implements it includes security recommendations from Apple: https://developer.apple.com/documentation/devicecheck/establishing-your-app-s-integrity[App integrity]. Which ensure its authenticity that it was downloaded only from the App Store and the transmission of its sensitive data cannot be modified.
OWASP Mobile Application Security
We also strongly recommend following the OWASP Mobile Application Security guidelines. The https://mas.owasp.org/[OWASP Mobile Application Security (MAS)] flagship project provides a security standard for mobile apps (https://mas.owasp.org/MASVS/[OWASP MASVS]) and a comprehensive testing guide (https://mas.owasp.org/MASTG/[OWASP MASTG]) that covers the processes, techniques, and tools used during a mobile app security test, as well as an exhaustive set of test cases that enables testers to deliver consistent and complete results.
<<<
Appendix
Changelog
9.2.3 - 2026-04-17
Fixed
- Invalid import in
DotCoremodule.
9.2.2 - 2026-04-16
Fixed
- Requirements section in the integration manual.
9.2.1 - 2026-03-20
Changed
- Minimal required version of Xcode to Xcode 26.2.
9.2.0 - 2026-02-26
Added
- Validation of PDF417 barcodes.
- Class
Barcode. - Class
BarcodeNotPresentValidator. - Class
BarcodeOutsideOfDocumentValidator. - Class
DotDocumentLibraryConfiguration.Modules. - Property
DocumentAutoCaptureFrameParameters.barcode - Property
DotDocumentLibraryConfiguration.modules. - Enum
BarcodeValidation. - Property
BaseDocumentAutoCaptureViewController.Configuration.barcodeValidation. - Localization key
dot_document.document_auto_capture.instruction.barcode_not_present. - Localization key
dot_document.document_auto_capture.instruction.barcode_outside_of_document.
9.1.1 - 2026-02-19
Fixed
- Synchronization issue when initializing and deinitializing DOT SDK.
9.1.0 - 2026-02-12
- Technical release. No changes.
9.0.2 - 2026-01-22
- Technical release. No changes.
9.0.1 - 2026-01-12
- Technical release. No changes.
9.0.0 - 2025-12-16
Added
- Class
DotSdk.Configuration. - Class
Libraries. - Class
DotDocumentLibraryConfiguration. - Class
CameraConfiguration. - Class
AutoCaptureConfiguration. - Class
CommonConfiguration. - Class
Image. - Enum
ImageFormat. - Class
BaseDocumentAutoCaptureViewController. - Class
BaseDocumentAutoCaptureViewController.Configuration. - Class
DocumentAutoCapturePreview. - Class
DocumentAutoCaptureUiState. - Class
DocumentAutoCaptureUiState.Initializing. - Class
DocumentAutoCaptureUiState.Idle. - Class
DocumentAutoCaptureUiState.Running. - Class
DocumentQuality. - Class
DocumentImageQuality. - Class
Placeholder. - Class
Placeholder.Hidden. - Class
Placeholder.Visible. - Method
DocumentAutoCaptureViewControllerDelegate.documentAutoCaptureViewController(_:uiStateUpdated:). - Property
DocumentDetector.Document.quality. - Property
DocumentAutoCaptureViewController.Configuration.baseConfiguration. - Property
DocumentAutoCaptureViewController.Configuration.placeholder. - Property
DocumentAutoCaptureController.Configuration.common. - Property
DocumentAutoCaptureController.Configuration.autoCapture.
Changed
- Minimal required iOS version to iOS 13.0.
- Minimal required version of Xcode to Xcode 16.1.
- Protocol
DocumentAutoCaptureDetectionValidatortoDocumentAutoCaptureFrameParametersValidator. - Classes
BrightnessTooHighValidator,BrightnessTooLowValidator,DocumentDoesNotFitPlaceholderValidator,DocumentNotDetectedValidator,DocumentOutOfBoundsValidator,HotspotsScoreTooHighValidator,MrzNotPresentValidator,MrzNotValidValidator,SharpnessTooLowValidator,SizeTooSmallValidatornow conform toDocumentAutoCaptureFrameParametersValidator. - Class
DocumentAutoCaptureViewControllerinherits fromBaseDocumentAutoCaptureViewController. - Class
DocumentAutoCaptureViewController.Configuration.QualityAttributeThresholdstoDocumentAutoCaptureQualityAttributeThresholds. - Enum
DocumentAutoCaptureController.PhasetoDocumentAutoCapturePhase. - Method
ImagePerspectiveWarper.warp(bgraRawImage:detectionPosition:targetImageSize:)toImagePerspectiveWarper.warp(! [DocumentAutoCaptureDetectionValidator](detectionPosition:targetImageSize:). - Return type of
ImagePerspectiveWarper.warp(...)fromDotCore.BgraRawImagetoDotCore.Image. - Method
MrzReader.read(bgraRawImage:document:travelDocumentType:)toMrzReader.read(image:document:travelDocumentType:). - Method
MrzTextRecognizer.recognize(bgraRawImage:document:travelDocumentType)toMrzTextRecognizer.recognize(image:document:travelDocumentType). - Method
DocumentDetector.detect(bgraRawImage:limit:)toDocumentDetector.detect(image:limit:). - Method
DocumentAutoCaptureViewController.stopAsync(onStopped:)tostop(). - Property
DocumentAutoCaptureController.Sample.bgraRawImagetoDocumentAutoCaptureController.Sample.image. - Property
DocumentAutoCaptureDetection.bgraRawImagetoDocumentAutoCaptureDetection.image. - Property
DocumentAutoCaptureResult.bgraRawImagetoDocumentAutoCaptureResult.image. - Property
DocumentAutoCaptureController.Configuration.detectionNormalizedRectangletoDocumentAutoCaptureController.Configuration.detectionArea. - Property
DocumentAutoCaptureController.Configuration.validatorselement type from)to[DocumentAutoCaptureFrameParametersValidator]. - Callback
DocumentAutoCaptureViewControllerDelegate.documentAutoCaptureViewController(*:captured:)todocumentAutoCaptureViewController(*:finished:). - Delegate
DocumentAutoCaptureViewControllerDelegatemethods parameter type fromDocumentAutoCaptureViewControllertoBaseDocumentAutoCaptureViewController. - Enum case
MrzValidation.validateIfPresenttoMrzValidation.requireValidityIfPresent. - Enum case
MrzValidation.validateAlwaystoMrzValidation.requirePresenceAndValidity. - Moved property
DocumentAutoCaptureViewController.Configuration.isTorchEnabledtoCameraConfiguration.isTorchEnabled. - Moved property
DocumentAutoCaptureViewController.Configuration.isVideoCaptureEnabledtoCameraConfiguration.isVideoCaptureEnabled. - Moved property
DocumentAutoCaptureViewController.Configuration.cameraFacingtoCameraConfiguration.facing. - Moved property
DocumentAutoCaptureViewController.Configuration.cameraPreviewScaleTypetoCameraConfiguration.previewScaleType. - Moved property
DocumentAutoCaptureViewController.Configuration.isCameraPreviewVisibletoCameraConfiguration.isPreviewVisible. - Moved property
DocumentAutoCaptureViewController.Configuration.qualityAttributeThresholdstoBaseDocumentAutoCaptureViewController.Configuration.qualityAttributeThresholds. - Moved property
DocumentAutoCaptureViewController.Configuration.validationModetoBaseDocumentAutoCaptureViewController.Configuration.validationMode. - Moved property
DocumentAutoCaptureViewController.Configuration.mrzValidationtoBaseDocumentAutoCaptureViewController.Configuration.mrzValidation. - Moved property
DocumentAutoCaptureViewController.Configuration.minValidFramesInRowToStartCandidateSelectiontoAutoCaptureConfiguration.minValidFramesInRowToStartCandidateSelection. - Moved property
DocumentAutoCaptureController.Configuration.minValidFramesInRowToStartCandidateSelectiontoAutoCaptureConfiguration.minValidFramesInRowToStartCandidateSelection. - Moved property
DocumentAutoCaptureViewController.Configuration.candidateSelectionDurationMillistoAutoCaptureConfiguration.candidateSelectionDurationMillis. - Moved property
DocumentAutoCaptureController.Configuration.candidateSelectionDurationMillistoAutoCaptureConfiguration.candidateSelectionDurationMillis. - Moved property
DocumentAutoCaptureViewController.Configuration.sessionTokentoCommonConfiguration.sessionToken. - Moved property
DocumentAutoCaptureController.Configuration.sessionTokentoCommonConfiguration.sessionToken. - Method
CGImageFactory.create(bgraRawImage:)toCGImageFactory.create(![0](). - Method
CIImageFactory.create(bgraRawImage:ciContext:)toCIImageFactory.create(image:).
Removed
- Class
DotSdkConfiguration. UseDotSdk.Configurationinstead. - Class
DotDocumentLibrary. UseDotDocumentLibraryConfigurationinstead. - Class
BgraRawImageFactory. UseImageFactoryinstead. - Class
BgraRawImage. UseImageinstead. - Class
ImageParameters. UseDocumentImageQualityinstead. - Class
ImageParametersAnalyzer. - Method
DocumentAutoCaptureController.process(bgraRawImage: timestampMillis:). UseDocumentAutoCaptureController.process(sample: Sample)instead. - Method
DocumentAutoCaptureViewControllerDelegate.documentAutoCaptureViewController(_:processed:). - Property
DocumentDetector.Document.imageParameters. UseDocumentDetector.Document.quality.imageQualityinstead. - Enum
DocumentAutoCaptureViewController.Configuration.Error. - Property
DocumentAutoCaptureViewController.Configuration.placeholderType. UseDocumentAutoCaptureViewController.Configuration.placeholderinstead. - Enum case
DocumentAutoCaptureController.Configuration.Error.invalidMinValidFramesInRowToStartCandidateSelection. - Enum case
DocumentAutoCaptureController.Configuration.Error.invalidCandidateSelectionDurationMillis.
8.17.0 - 2025-12-05
Fixed
- Rear camera initial preview orientation issue on iOS17+.
8.16.0 - 2025-10-16
- Technical release. No changes.
8.15.2 - 2025-09-24
Fixed
- Camera preview orientation issue on iPhone 17 models.
8.15.1 - 2025-09-09
Fixed
- Analytics reporting was not working properly.
8.15.0 - 2025-08-25
Added
- Transaction counting is disabled by default, it can be enabled in your license.
- Property
DotSdkConfiguration.transactionCountingToken. If transaction counting is enabled in your license, you must provide a valid transaction counting token. - Analytics reporting is enabled by default, it can be disabled in your license.
Changed
- Update SAM to 1.50.5 - minor improvements.
8.14.1 - 2025-07-30
- Technical release. No changes.
8.14.0 - 2025-07-07
Changed
- Update SAM to 1.49.3 - minor improvements.
8.13.0 - 2025-06-19
Added
- Property
DocumentAutoCaptureViewController.Configuration.minValidFramesInRowToStartCandidateSelection. - Property
DocumentAutoCaptureViewController.Configuration.candidateSelectionDurationMillis. - Verification of
DocumentAutoCaptureController.Configuration.minValidFramesInRowToStartCandidateSelectionvalue. - Verification of
DocumentAutoCaptureController.Configuration.candidateSelectionDurationMillisvalue.
Changed
DocumentAutoCaptureViewController.Configuration.init()now throws.- Default value of
DocumentAutoCaptureController.Configuration.candidateSelectionDurationMillisto2_000.
8.12.1 - 2025-06-10
- Technical release. No changes.
8.12.0 - 2025-06-02
Fixed
- In some edge cases MRZ was parsed incorrectly.
8.11.0 - 2025-05-06
Added
- Property
DocumentAutoCaptureViewController.Configuration.isCameraPreviewVisible.
8.10.0 - 2025-04-03
- Technical release. No changes.
8.9.0 - 2025-04-01
Changed
- Update SAM to 1.44.6 - minor improvements.
Fixed
- Document sharpness evaluation was not working properly.
8.8.0 - 2025-03-26
Added
- Video Capture feature in UI components.
- Property
DocumentAutoCaptureViewController.Configuration.isVideoCaptureEnabled. - After some delay, escalated instructions are used instead of regular instructions.
- Localization key
dot_document.document_auto_capture.instruction.brightness_too_low_escalated. - Localization key
dot_document.document_auto_capture.instruction.brightness_too_high_escalated. - Localization key
dot_document.document_auto_capture.instruction.sharpness_too_low_escalated. - Localization key
dot_document.document_auto_capture.instruction.size_too_small_escalated.
8.7.1 - 2025-03-21
- Technical release. No changes.
8.7.0 - 2025-02-06
- Technical release. No changes.
8.6.1 - 2025-01-15
Fixed
- In some edge cases MRZ was parsed incorrectly.
8.6.0 - 2025-01-10
Changed
- Introduced Package access level which prevents internal types from leaking into public API.
8.5.0 - 2024-10-24
Added
- Property
DocumentAutoCaptureFrameParameters.detectionAreaImageSize.
8.4.1 - 2024-10-10
Fixed
- DOT SDK initialization.
8.4.0 - 2024-09-11
- Technical release. No changes.
8.3.2 - 2024-08-16
- Technical release. No changes.
8.3.1 - 2024-08-15
Fixed
- In some edge cases MRZ was parsed incorrectly.
8.3.0 - 2024-08-08
- Technical release. No changes.
8.2.1 - 2024-07-31
- Technical release. No changes.
8.2.0 - 2024-07-30
Added
- Nested enumerator
Errorto all public components. It groups all possible errors that might be thrown by a component. - Class
MrzReader.ReadingError.
Fixed
- Camera session crashed in some rare cases.
Changed
- Method signature of
init(...)toinit(...) throwsfor all validator implementations ofDocumentAutoCaptureDetectionValidator. - Method signature of
MrzReader.Result(..., error: Error?)toMrzReader.Result(..., error: ReadingError?).
8.1.0 - 2024-07-09
Changed
- Document detection is improved (UI Document Auto Capture, Document Auto Capture Controller, Document Detector).
- Sharpness calculation is improved (UI Document Auto Capture, Document Auto Capture Controller, Image Parameters Analyzer).
8.0.0 - 2024-06-27
Added
- Class
MrzCheckDigit.
Changed
- Minimal required iOS version to iOS 12.0.
- Minimal required version of Xcode to Xcode 15.1.
- Method
.create()for all UI components to.init(). - Renamed property
DocumentAutoCaptureViewController.Style.overlayColorto.placeholderOverlayColor. - Moved all MRZ parsing types to shared module
DotDocumentCommons. - Renamed class
MrzElementWithChecksumtoMrzElementWithCheckDigit. - Renamed class
MrzDateElementWithChecksumtoMrzDateElementWithCheckDigit. - Property
MrzElementWithChecksum.hasValidChecksumto.checkDigit. - Property
MrzDateElementWithChecksum.hasValidChecksumtoMrzDateElementWithChecksum.checkDigit. - Property
.hasValidChecksumto.compositeCheckDigitfor the following classes:Td1MachineReadableZone,Td2MachineReadableZone,Td3MachineReadableZone. - Property
MrzNameElement.primaryElementand.secondaryElementto.primaryIdentifierand.secondaryIdentifier. - Method signature
DocumentDetector.detect(). - Class
DocumentDetector.ResulttoDocumentDetector.Document. - Property
DocumentDetector.Result.cornerstoDocumentDetector.Document.position. - Renamed class
CornerstoDetectionPosition. - Property
DocumentAutoCaptureDetection.documentDetectorResulttoDocumentAutoCaptureDetection.document. - Property
DocumentAutoCaptureDetection.imageParameterstoDocumentAutoCaptureDetection.document.imageParameters. - Property
DocumentAutoCaptureResult.documentDetectorResulttoDocumentAutoCaptureResult.document. - Property
DocumentAutoCaptureResult.imageParameterstoDocumentAutoCaptureResult.document.imageParameters. - Property
DocumentAutoCaptureFrameParameters.documentDetectorResulttoDocumentAutoCaptureFrameParameters.document. - Property
DocumentAutoCaptureFrameParameters.imageParameterstoDocumentAutoCaptureFrameParameters.document.imageParameters. - Method signature
ImagePerspectiveWarper.warp(). - Method signature
MrzReader.read(). - Moved
DocumentAutoCaptureConfigurationtoDocumentAutoCaptureViewController.Configuration,DocumentAutoCaptureStyletoDocumentAutoCaptureViewController.Style,DocumentAutoCaptureControllerConfigurationtoDocumentAutoCaptureController.Configuration. - Updated localization keys.
Removed
- Callback
DocumentAutoCaptureViewControllerDelegate.documentAutoCaptureViewControllerCandidateSelectionStarted(_:). - Property
DocumentAutoCaptureController.Configuration.imageParametersNormalizedRectangle. This property has no use anymore since the image parameters are calculated from the detection area.
7.5.3 - 2024-06-24
Added
- Security guidelines section to the integration manual.
7.5.2 - 2024-04-30
Changed
- Changed minimal required version of Xcode to Xcode 14.2.0.
7.5.1 - 2024-04-15
Fixed
- Added
PrivacyInfo.xcprivacyand signature toDotProtocolBuffersdependency.
7.5.0 - 2024-04-03
Added
- Callback
onStoppedas an argument to methodDocumentAutoCaptureViewController.stopAsync().
Removed
- Method
DocumentAutoCaptureViewControllerDelegate.documentAutoCaptureViewControllerStopped(). UseDocumentAutoCaptureViewController.stopAsync()method argumentonStoppedinstead.
7.4.2 - 2024-03-21
Fixed
- Stability issue.
7.4.1 - 2024-03-19
- Technical release. No changes.
7.4.0 - 2024-03-19
Added
- Enum
PlaceholderType. - Property
DocumentAutoCaptureConfiguration.placeholderType.
7.3.0 - 2024-02-23
Fixed
- Fixed licensing issue. Newly generated licenses will only work from this and subsequent releases.
7.2.1 - 2024-01-11
- Technical release. No changes.
7.2.0 - 2023-12-28
Changed
- Camera preview and image analysis resolution selection strategy in UI components for
CameraPreviewScaleType.fill.
7.1.1 - 2023-12-21
Fixed
- In some cases UI components created invalid
.contentin its result class.
7.1.0 - 2023-12-14
Added
- Property
DocumentAutoCaptureDetection.imageParameters. - Property
DocumentAutoCaptureResult.imageParameters.
7.0.2 - 2023-12-04
Fixed
- DOT SDK initialization (license parsing).
7.0.1 - 2023-12-01
- Technical release. No changes.
7.0.0 - 2023-11-02
Added
- Class
DotSdk. - Class
DotSdkConfiguration. - Protocol
DotLibrary. - License file is required. To obtain one, please contact
support@innovatrics.com.
Changed
- Class
DotDocumentLibraryreworked. - Machine Readable Zone reading accuracy is improved.
Fixed
- MRZ parsing issue.
6.5.1 - 2023-10-19
- Technical release. No changes.
6.5.0 - 2023-10-04
Added
- Property
DocumentAutoCaptureConfiguration.mrzValidation. - Enum
MrzValidation. - Class
MrzNotPresentValidator. - Class
MrzRecognitionResult. - Property
MrzReader.Result.rawLines. - Property
DocumentAutoCaptureFrameParameters.mrzRecognitionResult. Moved.machineReadableZoneto.mrzRecognitionResult. - Localization key
dot.document_auto_capture.instruction.mrz_not_present.
Changed
- Performance of document detection is significantly improved.
- Accuracy of document detection is improved.
Removed
- Property
DocumentAutoCaptureControllerConfiguration.isMrzReadingEnabled. The propertyvalidatorsis used to determine whether the MRZ should be read. - Property
DocumentAutoCaptureConfiguration.isMrzReadingEnabled. Use.mrzValidationinstead.
6.4.0 - 2023-09-19
Changed
- Signature of
DocumentAutoCaptureController.process()method.
6.3.0 - 2023-08-18
- Technical release. No changes.
6.2.0 - 2023-07-26
Added
- Property
.sessionTokentoDocumentAutoCaptureControllerConfigurationandDocumentAutoCaptureConfiguration.
6.1.1 - 2023-07-19
Fixed
- Added missing dependency DotProtobuf in CocoaPods and Swift Package Manager.
6.1.0 - 2023-07-07
Added
- Property
DocumentAutoCaptureConfiguration.isTorchEnabled.
6.0.0 - 2023-06-14
Added
DocumentAutoCaptureConfiguration.QualityAttributeThresholds.BuilderDocumentAutoCaptureConfiguration.QualityAttributeThresholdPresetsDocumentAutoCaptureResult.content
Changed
- create
DocumentAutoCaptureConfiguration.QualityAttributeThresholdsusing.Builder.
5.5.0 - 2023-04-26
- Technical release. No changes.
5.4.0 - 2023-03-24
- Technical release. No changes.
5.3.0 - 2023-03-23
Added
- Enum
DocumentAutoCaptureController.Phase. - Property
DocumentAutoCaptureController.ProcessingResult.phase.
Changed
- Method
DocumentAutoCaptureViewController.start()(re)starts the process any time during the lifecycle of the component.
Removed
- Property
DocumentAutoCaptureController.ProcessingResult.events. Use propertyDocumentAutoCaptureController.ProcessingResult.phaseinstead. - Enum
DocumentAutoCaptureController.Event. - Method
DocumentAutoCaptureController.restart(). Create new instance ofDocumentAutoCaptureControllerinstead. - Method
DocumentAutoCaptureViewController.restart(). UseDocumentAutoCaptureViewController.start()instead.
5.2.0 - 2023-03-06
- Technical release. No changes.
5.1.1 - 2023-02-21
Added
- support for Swift Package Manager.
5.1.0 - 2023-02-08
Added
- shared dependency
DotCore. - shared dependency
DotCamera.
Changed
- types moved to
DotCore:BgraRawImage,BgraRawImageFactory,CGImageFactory,CIImageFactory,ImageSize,RectangleDouble,WrappedDouble,PointDouble,IntervalFloat,IntervalDouble,Corners. - types moved to
DotCamera:CameraFacing,CameraPreset,CameraPreviewScaleType.
5.0.0 - 2023-01-27
Changed
- New SDK versioning: All libraries (DOT Document, DOT Face, DOT Face Lite and DOT NFC) are released simultaneously with a single version name. Libraries with the same version name work correctly at build time and at run time.
DocumentAutoCaptureViewControllerDelegate.documentAutoCaptureViewController(:detected:)to.documentAutoCaptureViewController(:processed:)- removed delegate pattern from
DocumentAutoCaptureController DocumentAutoCaptureController.process(bgraRawImage: BgraRawImage)to.process(bgraRawImage: BgraRawImage, timestampMillis: Int) throws -> ProcessingResultDocumentAutoCaptureResult.bgraRawImagenow contains full camera image, instead of cropped image- renamed
BrightnessHighValidatortoBrightnessTooHighValidator - renamed
BrightnessLowValidatortoBrightnessTooLowValidator - renamed
DocumentDoesNotFitPlaceholderValidator.defaultPenaltyThresholdto.defaultMaxPenaltyThreshold - renamed
DocumentDoesNotFitPlaceholderValidator.penaltyThresholdto.maxPenaltyThreshold - renamed
DocumentNotDetectedValidator.defaultConfidenceThresholdto.defaultMinConfidenceThreshold - renamed
DocumentNotDetectedValidator.confidenceThresholdto.minConfidenceThreshold - renamed
DocumentOutOfBoundsValidator.defaultMarginToImageSideRatioThresholdto.defaultMinCornerDistanceToImageShorterSideRatioThreshold - renamed
DocumentOutOfBoundsValidator.marginToImageSideRatioThresholdto.minCornerDistanceToImageShorterSideRatioThreshold - renamed
HotspotsScoreHighValidatortoHotspotsScoreTooHighValidator - renamed
SharpnessLowValidatortoSharpnessTooLowValidator - renamed
SizeSmallValidatortoSizeTooSmallValidator - renamed
SizeTooSmallValidator.defaultShortestEdgeToImageSideRatioThresholdto.defaultMinEdgeLengthToImageShorterSideRatioThreshold - renamed
SizeTooSmallValidator.shortestEdgeToImageSideRatioThresholdto.minEdgeLengthToImageShorterSideRatioThreshold - localization key
dot.document_auto_capture.instruction.document_not_presenttodot.document_auto_capture.instruction.document_not_detected - localization key
dot.document_auto_capture.instruction.document_centeringtodot.document_auto_capture.instruction.document_out_of_bounds - localization key
dot.document_auto_capture.instruction.document_too_fartodot.document_auto_capture.instruction.size_too_small - localization key
dot.document_auto_capture.instruction.hotspots_presenttodot.document_auto_capture.instruction.hotspots_score_too_high
Added
DocumentAutoCaptureViewController.stopAsync()DocumentAutoCaptureViewControllerDelegate.documentAutoCaptureViewControllerStopped(:)DocumentAutoCaptureController.ProcessingResultDocumentAutoCaptureController.EventDocumentAutoCaptureDetection.bgraRawImage,.travelDocumentType,.machineReadableZone- localization key
dot.document_auto_capture.instruction.document_does_not_fit_placeholder
Removed
DocumentAutoCaptureControllerDelegateDocumentAutoCaptureController.delegateDocumentAutoCaptureController.requestCapture()- deprecated
DocumentAutoCaptureConfiguration.init() - deprecated
DocumentAutoCaptureConfiguration.cameraPreset,.confidenceThreshold,.confidenceLowThreshold,.sizeSmallThreshold,sharpnessLowThreshold,.brightnessLowThreshold,.brightnessHighThreshold,.hotspotsScoreHighThreshold
Fixed
- @objc prefix pattern to
DOTD*
3.7.1 - 2022-12-02
Changed
- objc class name renamed from
DOTCornerstoDOTDCorners - objc class name renamed from
DOTFLIntervalDoubletoDOTDIntervalDouble - objc class name renamed from
DOTFLQualityAttributeThresholdstoDOTDQualityAttributeThresholds
3.7.0 - 2022-10-28
Fixed
- wrong parsing of date in MRZ
- verification of validator dependencies
Added
DocumentAutoCaptureDetectionValidator.dependencyIdentifiers
Changed
- minimal required version to Xcode 14+
DocumentAutoCaptureControllerConfiguration.init()throws- deprecated
DocumentAutoCaptureConfiguration.init - deprecated
DocumentAutoCaptureConfiguration.confidenceLowThreshold,.sizeSmallThreshold,sharpnessLowThreshold,.brightnessLowThreshold,.brightnessHighThreshold,.hotspotsScoreHighThreshold
Added
DocumentAutoCaptureConfiguration.qualityAttributeThresholdsDocumentAutoCaptureConfiguration.initwith.qualityAttributeThresholdsparameter
3.6.0 - 2022-08-19
Added
MachineReadableZone.lines
3.5.1 - 2022-08-16
Fixed
- crash when camera device is not available
- camera session lifecycle
- camera permission issue
3.5.0 - 2022-07-11
Added
DotDocumentLibrary.versionName
Fixed
- TD1, TD2: Parsing long document number and optional data together.
3.4.1 - 2022-06-01
Fixed
- camera permission issue
Changed
- deprecated
DocumentAutoCaptureConfiguration.cameraPreset - default
DocumentAutoCaptureConfiguration.cameraPresetto.high
3.4.0 - 2022-05-20
Added
DocumentAutoCaptureStyle.backgroundColor
Changed
- design of Document Auto Capture UI component
3.3.4 - 2022-01-31
Added
CameraPreviewScaleType.fillto support full screen camera preview
3.3.3 - 2022-01-24
Fixed
- MRZ parsing
3.3.2 - 2022-01-13
Fixed
DocumentAutoCaptureViewControllerinternal state handling
3.3.1 - 2022-01-12
Fixed
- detection layer visibility
3.3.0 - 2022-01-11
Added
BgraRawImageFactory.create(ciImage: CIImage, ciContext: CIContext)CIImageFactory.create(bgraRawImage: BgraRawImage, ciContext: CIContext)DocumentAutoCaptureConfiguration.sizeSmallThreshold,.isDetectionLayerVisibleand.validationModeDocumentAutoCaptureStyle.detectionLayerColorand.overlayColorDocumentOutOfBoundsValidatorValidationMode
Changed
- document detection accuracy improved
DocumentNotDetectedValidator.defaultConfidenceThresholdto 0.9SharpnessLowValidator.defaultThresholdto 0.65DocumentDoesNotFitPlaceholderValidator.defaultPenaltyThresholdto 0.035- renamed
DocumentSmallValidatortoSizeSmallValidator - renamed
DocumentAutoCaptureConfiguration.confidenceThresholdto.confidenceLowThreshold - renamed
DocumentAutoCaptureStyle.instructionCapturingTextColorto.instructionCandidateSelectionTextColor - renamed
DocumentAutoCaptureStyle.instructionCapturingBackgroundColorto.instructionCandidateSelectionBackgroundColor - renamed
DocumentAutoCaptureStyle.placeholderCapturingColorto.placeholderCandidateSelectionColor - updated design of Document Auto Capture UI component
Removed
DocumentLargeValidator- localization key
dot.document_auto_capture.instruction.document_too_close
3.2.0 - 2021-11-29
Changed
- improved
DocumentDoesNotFitPlaceholderValidator DocumentDoesNotFitPlaceholderValidator.detectedToPlaceholderCornersDistanceThresholdto.penaltyThreshold
3.1.0 - 2021-11-04
Added
DocumentAutoCaptureViewControllerDelegate.documentAutoCaptureViewController(_:detected:)DocumentAutoCaptureViewControllerDelegate.documentAutoCaptureViewControllerCandidateSelectionStarted(_:)
Changed
DocumentNotDetectedValidator.defaultConfidenceThresholdto 0.6
Fixed
- hidden instructions after calling
DocumentAutoCaptureViewController.restart()
3.0.1 - 2021-09-30
Added
DocumentAutoCaptureControllerConfiguration.minValidFramesInRowToStartCandidateSelection
3.0.0 - 2021-09-27
Added
- Machine Readable Zone Reader component
MrzNotValidValidatorDocumentAutoCaptureFrameParameters.travelDocumentTypeand.machineReadableZoneDocumentAutoCaptureConfiguration.isMrzReadingEnabled,.cameraFacing,.cameraPreviewScaleType,.cameraPresetBgraRawImage,BgraRawImageFactory,CGImageFactoryImageSizeCameraPreset,CameraFacing,CameraPreviewScaleTypeCornersDocumentAutoCaptureControllerConfigurationDocumentAutoCaptureDetectionDocumentAutoCaptureResultImagePerspectiveWarperPointDouble,RectangleDouble,WrappedDouble
Changed
- minimal required iOS version to iOS 11.0
- improved performance of document detection algorithm
DocumentAutoCaptureFrameParametersValidatortoDocumentAutocaptureDetectionValidatorDocumentAutocaptureDetectionValidator.validate()DocumentAutoCaptureController.detect()to.process(bgraRawImage: BgraRawImage)DetectionResulttoDocumentDetector.Result- renamed
DocumentCapturePlaceholderViewControllertoDocumentAutoCaptureViewControllerand all related API - renamed
DotDocumentLocalizationtoLocalization - changed localization keys
Removed
DocumentCaptureFreeViewControllerDocumentAutoCaptureConfiguration.documentSourceCameraDocumentSource,ImageDocumentSource,VideoDocumentSourceImage,ImageBatchDocumentAutoCaptureHintDocumentAutoCaptureFrameParametersEvaluator
2.3.0 - 2021-05-14
Added
DocumentAutoCaptureViewControllerConfigurationto enable additional configuration of UI componentsDocumentAutoCaptureViewControllerConfigurationpropertydocumentSourceDocumentAutoCaptureViewControllerConfigurationpropertyconfidenceThresholdDocumentAutoCaptureViewControllerConfigurationpropertysharpnessLowThresholdDocumentAutoCaptureViewControllerConfigurationpropertybrightnessLowThresholdDocumentAutoCaptureViewControllerConfigurationpropertybrightnessHighThresholdDocumentAutoCaptureViewControllerConfigurationpropertyhotspotsScoreHighThresholdDocumentDoesNotFitPlaceholderValidator
Changed
DocumentCapturePlaceholderViewController.create()DocumentCaptureFreeViewController.create()- removed
BorderMarginValidator - removed
DocumentCenteredValidator - removed
DocumentRotationValidator - removed
SharpnessHighValidator - removed
DocumentAutoCaptureHint.sharpnessHigh,.widthToHeightLow,.widthToHeightHigh,.documentNotCentered BrightnessHighValidator.maxBrightnessto.thresholdBrightnessLowValidator.minBrightnessto.thresholdDocumentLargeValidator.maxSizeto.documentWidthToImageWidthRatioThresholdDocumentSmallValidator.minSizeto.documentWidthToImageWidthRatioThresholdDocumentNotDetectedValidator.minConfidenceto.confidenceThresholdSharpnessLowValidator.minSharpnessto.threshold- localization keys
2.2.2 - 2021-05-03
Fixed
- allow multiline hint label
2.2.1 - 2021-03-31
Fixed
- performance issue in document autocapture process
Changed
- renamed
SingleImageBatchtoSimpleImageBatch PlaceholderImageBatch.inittoinit(image: Image, detectionFrame: CGRect, imageParametersFrame: CGRect)
2.2.0 - 2021-03-17
Added
DotDocumentLocalization.localizationDictionaryand.useLocalizationDictionaryto enable overriding of standard iOS localization mechanism
Changed
- renamed
Localizationclass toDotDocumentLocalization
2.1.0 - 2021-01-27
Changed
- add
DocumentCaptureViewController.start()to start capture process explicitly - capture process of
DocumentCaptureViewControllerwill no longer start implicitly
2.0.0 - 2021-01-13
Added
Localizationclass, to support localization in more complex projectsHotspotsScoreHighValidatorImageParametersAnalyzerImageParameters- protocol
ImageBatch SingleImageBatchPlaceholderImageBatchDocumentAutoCaptureFrameParametersDocumentAutoCaptureFrameParametersEvaluatorDocumentAutoCaptureType.simpleandDocumentAutoCaptureType.secondaryImageParametersDocumentSourceDelegate.sourceNotAuthorized()to allow handling of camera permissionDocumentCaptureViewControllerDelegate.documentSourceNotAuthorized()to allow handling of camera permission
Changed
- renamed framework and module to
DotDocument - changed localization keys
- protocol
DetectionValidatorProtocolrenamed toDocumentAutoCaptureFrameParametersValidator DocumentCaptureControllerrenamed toDocumentAutoCaptureControllerDocumentCaptureControllerDelegaterenamed toDocumentAutoCaptureControllerDelegate- removed
DocumentAutoCaptureController.detectionValidatoradded.evaluatorof typeDocumentAutoCaptureFrameParametersEvaluatorinstead DocumentAutoCaptureControllernow detects fromImageBatchinstead ofImage, to allow more complex auto capture workflows- removed
DocumentCaptureViewController.requestHighResolutionImage(), added.highResolutionCaptureinstead - removed
DocumentCaptureViewController.startDocumentCapture(),.stopDocumentCapture(), added.restart()instead - removed
DocumentCaptureController.startDetection(),.stopDetection()addedDocumentAutoCaptureController.restart()instead DocumentAutoCaptureFrameParametersValidatornow requiresDocumentAutoCaptureFrameParametersinstead ofDetectionResultDocumentAutoCaptureControllerDelegateandDocumentCaptureViewControllerDelegatenow providesDocumentAutoCaptureFrameParametersinstead ofDetectionResultImageParameters.brightness,.sharpness,.hotspotsScoreandDetectionResult.confidenceis now normalized to)- confidence, brightness, sharpness, hotspotsScore validators take normalized input values
- removed
SequenceValidatoruseDocumentAutoCaptureFrameParametersEvaluatorinstead - removed
SteadyValidator, hold still phase is always present in auto capture process and is handled byDocumentAutoCaptureController
1.2.2 - 2020-12-17
Added
- support for iOS Simulator arm64 architecture
1.2.1 - 2020-11-04
Fixed
- for
CameraDocumentSourceoverrideNSObject.init()withconvenience CameraDocumentSource.init()and withCameraDocumentSourcePreset.fullHDas default parameter.
1.2.0 - 2020-11-04
Added
CameraDocumentSourcePresetenum
Changed
CameraDocumentSource.init()hasCameraDocumentSourcePresetparameter.
1.1.5 - 2020-10-23
Fixed
- crop high resolution image from
DocumentCapturePlaceholderViewController - clear preview layer when
CameraDocumentSource.stopSession()is called
Changed
CameraDocumentSource.orientationtype toAVCaptureVideoOrientation
Added
documentCaptureDidLayoutSubviewstoDocumentCaptureViewControllerDelegate
1.1.4 - 2020-10-02
Fixed
- orientation of high resolution image returned from
DocumentCaptureViewController
1.1.3 - 2020-09-17
Changed
- updated SAM to 2.0.0
1.1.2 - 2020-09-16
Fixed
- SAM architecture selection when building for release
1.1.1 - 2020-08-28
Fixed
- camera orientation wrong initial value when presenting
DocumentCaptureViewController
1.1.0 - 2020-08-25
Changed
- detect document from cropped image
DocumentCaptureControllerhasstartDetection(),stopDetection()DocumentSourceProtocolhasstartSession(),stopSession()DocumentCaptureViewControllerhasstartDocumentCapture(),stopDocumentCapture()
1.0.2 - 2020-08-04
Changed
- use Operations in
DocumentCaptureController
1.0.1 - 2020-08-04
Changed
- removed type constraint from
AnnotationLayerProtocol
1.0.0 - 2020-08-03
Fixed
- fixed memory access issue when converting images to Image
Changed
CameraDocumentSourcelearned orientation support- rename
DocumentCaptureSimpleViewControllertoDocumentCapturePlaceholderViewController - reworked validation process in
DocumentCapturePlaceholderViewController DocumentCaptureViewControllerDelegateis now shared between view controllers- removed
DocumentDoesNotFitPlaceholderValidator DocumentSmallValidatorandDocumentLargeValidatornow calculate using area instead of widthDocumentCaptureController.detectionWidthis now publicImageconversion to and fromvImage_Bufferis now public- added
Imagetransformation support - added transformation support to Camera and Video document source
Added
- Added
DocumentCaptureViewControllerStyle - Added
DocumentCaptureFreeViewController - Landscape support in UI components
DocumentRotationValidatorDocumentCenterValidator- Logging support
0.2.0 - 2020-07-17
Changed
- minimal supported iOS version to 10.0
0.1.1 - 2020-07-16
Changed
- renamed module to DOTDocument
0.1.0 - 2020-07-13
- First release