Release Notes for iOS SDK - 10.x
10.4.3002 (03/07/2025)
Changes
- Updated
BarcodeScannercomponent. Multi-frame cross verification is enabled by default to prevent misreading. - Fixed a bug where the
scanRegionmight not effect when configured before the creation ofCameraView.
10.4.3001 (02/11/2025)
New
- Updated
BarcodeScannercomponent to support multiple barcodes scanning.- Added a new property
scanningModeto the classBarcodeScannerConfigfor users to switch between the single barcode scanning mode and multiple barcodes scanning mode. - Added a new enumeration class
DSScanningModeto specify the scanning mode.
- Added a new property
- Added a new property
isCameraToggleButtonVisibleto the classBarcodeScannerConfig. Users can use this property to show or hide the camera toggle button.
10.4.3000 (01/23/2025)
Fixed
- Fixed a camera adaptation bug when using the iPad device.
10.4.2003 (12/26/2024)
New
- Added a new component
BarcodeScanner. Users can quickly set up a barcode scanning app with the built-in UI ofBarcodeScanner. The following classes are added to use theBarcodeScannercomponent:DSBarcodeScannerViewController: The main class ofBarcodeScanner. It is an activity class that implements barcode decoding features.DSBarcodeScannerConfig: The class that provides barcode scanning configurations.DSBarcodeScanResult: The result class.DSResultStatus: An enumeration class that describes the result status.
10.4.2002 (12/16/2024)
Fixed
- Fixed a bug where the app might be blocked by the method
initLicense.
10.4.2001 (11/13/2024)
Fixed
- Internal changes to prevent crash bugs in barcode decoding.
10.4.2000 (10/11/2024)
Highlights
- Improved the read rate and the speed of the following barcode formats:
- EAN13
- DotCode
- Added support for decoding add-on codes (also known as Extension Codes) for UPC-A, UPC-E, EAN-8 and EAN-13 codes.
Improved
- Improved the read rate and the speed of the following barcode formats:
- EAN13
- DotCode
- Updated the error handling logic of
capturing&startCapturingmethods. The methods will be able to clearly report where the error occurred if the capturing fails due to a licensing issue. - Updated the error message of
initLicensemethod. The method will return more detailed messages when failed to initialize the license. Warnings will be available if license initialization is successful but a part of the license key is invalid.
New
- Added internal logics for usage count.
- Added support for decoding add-on barcodes.
- Added new properties to the
DSQRCodeDetailsclassdataMaskPatterncodewords
- Added internal logics for usage count.
- Added a new callback method
onRawTextLinesReceivedto the classDSIntermediateResultReceiver. - Added new error codes
- -10076: The license is initialized successfully but detected invalid content in your key.
- -30063: [Barcode Reader] No license found.
- -40103: [Label Recognizer] No license found.
- -50058: [Document Normalizer] No license found.
- -90012: [Code Parser] No license found.
- Added a new enumeration member
IntermediateResultUnitTypeRawTextLinesto the enumerationDSIntermediateResultUnitType. - Add a new charge way,
TimeSliceCount. - Changed the maximum length of the
deviceFriendlyNameto 255. - Added to-the-latest overlapping feature. You can use
enableLatestOverlappingmethod ofDSMultiFrameResultCrossFilterclass to enable this feature.
Fixed
- Fixed a bug where the
CharacterModelis not correctly loaded under macOS operation system. - Small fixes and tweaks.
- Fixed a crash bug caused by the usage of RegEx.
- Small fixes and tweaks.
- Fixed a bug where
DSCaptureVisionRouter.startCapturingwould erroneously halt the fetching process when its status was running, leading to an unnecessary stop and restart of the fetching operation. - Fixed a bug where
DSDirectoryFetcherwould prematurely read an image before verifying if the buffer was full, resulting in potential loss of the image that did not make it into the buffer upon callingstopFetching. - Fixed a bug that might cause
GS1DatabarExpandedStackedbarcode unread.
Changed
- Updated the Enumeration number of
BarcodeFormatAllto 0xFFFFFFFEFFFFFFFF. - Updated the internal logic of licensing error message reporting.
- Changed the template loading mode. The library will read all template files under the Templates folder where the DLL file is located.
10.2.1101 (07/24/2024)
- Updated signature of license module to prevent rejection of App Store.
10.2.1100 (05/15/2024)
Fixed
- Fixed a bug where
DSOneDCodeDetailsmight be nil.
10.2.10 (04/16/2024)
Improved
- Security update for
DynamsoftBarcodeReaderlibrary and other corresponding libraries. - Supported multiple instances of the class
CaptureVisionRouter. - Improved the usage count logic of the concurrent license mode.
- Improved the experience of local cache usage when failing to connect the license server. The renewal of the local cache is optimized as well.
- Improved the barcode decoding performance:
- Improved the accuracy when decoding OneD & PDF417 barcodes.
- Improved the readability of dense DataMatrix codes.
New
- Updated the template system
- Added
StringLengthRangeforTextDetectionMode. - Added Argument
BarcodeFormatforDPMCodeReadingModes. Currently, you can specify “BF_DATAMATRIX” or “BF_QR_CODE” for the parameter. - Added
ReferenceTaskNameArrayunderLocation.ReferenceObjectFilterto filter the reference objects generated by the task name. - Added the support of the
OutputTaskSettingdefinition. The following subparameters are available inOutputTaskSettingobject:OutputConditionTaskResultArrayTargetROIDefNameTaskSettingNameArrayBackwardReferenceOutputReferenceTaskNameArrayReferenceResultTypeArrayOperator
Offsetparameter is optimized.- Added
ReferenceObjectTypeto specify whether the reference object is an atomic object or the whole image. - Added
ReferenceXAxis&ReferenceYAxisto define the X & Y axis. - Modified
FirstPoint,SecondPoint,ThirdPoint&FourthPoint. You can specify whether the X or Y coordinate of the point is measured by percentage. - Deprecated
ReferenceObjectSizeType.
- Added
- Added
- The following classes are migrated from
DynamsoftCorelibrary toDynamsoftCaptureVisionRouterlibrary. - Added a new call back method
onShortLinesUnitReceivedto theDSIntermediateResultReceiverclass. - Added methods
pauseCapturingandresumeCapturing. Two new enumeration members,CS_PAUSEDandCS_RESUMED, are added toDSCapturedStateas well. - Added a new method
getDecodedBarcodesResultto theCapturedResultclass to get all the result items with the typeCRIT_BARCODE. - Added new methods to the
DSCandidateBarcodeZonesUnitclass to add, remove or set the candidate barcode zones.DSCandidateBarcodeZoneclass is added to store the information of a single candidate barcode zone. - Added new methods to the
DSLocalizedBarcodesUnitclass to add, remove or set the localized barcode elements. - Added a new method
setImageDatato theDSScaledUpBarcodeImageUnitclass. - Added new methods to the
DSDeformationResistedBarcodeImageUnitclass to add, remove or set the deformation-resisted barcode.DeformationResistedBarcodeclass is added to store the deformation-resisted barcode information. - Added a new method SetLocation to
DSComplementedBarcodeImageUnitclass. - Added new methods to the
DSDecodedBarcodesUnitclass to set or remove the decoded barcode elements. - Added the following methods to the
DSDecodedBarcodesResultclass:retainrelease.
- Added new constructors to the following classes.
- Added the following methods to the
DSDecodeBarcodeElementclass to modify the basic information of the barcode:setFormatsetTextsetBytessetConfidence
- Added a new method
setPossibleFormatsto theDSLocalizedBarcodeElement. - Added the following methods to the
DSObservationParametersclass to specify theinput onlyresult unit.setResultUnitTypesOnlyForInputgetResultUnitTypesOnlyForInput
- Added the following methods to the
DSRegionObjectElementclass to support the intermediate result modification.setLocationcloneretainrelease
- Added a new method
replaceto theDSIntermediateResultUnitclass to support the replacement of intermediate result units. - Added
setImageDatamethods to the following classes: - Added new methods to the
DSPredetectedRegionsUnitclass to add, remove or set the predetected regions. - Added new methods to the
DSLineSegmentsUnitclass to add, remove or set the line segments. - Added new methods to the
DSTextZonesUnitclass to add, remove or set the text zones. Added a new class CTextZone to store the information of a single text zone. - Added a new method
setContoursto theDSContourUnitclass. - Added new methods to the
DSTextureDetectionResultUnitclass to set the X & Y spacing. - Added a new intermediate result unit,
DSShortLinesUnit, to output the detected short lines. The corresponding enumeration memberIRUT_SHORT_LINESis added to theEnumIntermediateResultUnitType. - Added the following methods to the
DSCapturedResultItemclassgetTargetROIDefNamegetTaskNameretainrelease
- Added the following new error codes
DSErrorImageSizeNotMatchDSErrorImagePixelFormatNotMatchDSErrorSectionLevelResultIrreplaceableDSErrorAxisDefinitionIncorrectDSErrorTextLineGroupLayoutConflictDSErrorTextLineGroupRegexConflictDSErrorResultTypeMismatchIrreplaceableDSErrorLicenseCacheUsed
- Added the following methods to the
DSCapturedResultclass.- A new override constructor.
retainrelease
- Added a new supported image pixel format, binary 8 inverted. The corresponding enumeration member is added to the
DSEnumImagePixelFormat. - Added return value for the
retainmethod of theDSIntermediateResultUnitclass. The method will return the pointer of the currentDSIntermediateResultUnit.
Breaking Changes
- Changed the logic of the
stopCapturingmethod.DSCaptureResultReceiverwill not receive results afterstopCapturingis triggered withwaitForRemainingTasksfalse.- Support stop capturing after the
pauseCapturingmethod is triggered.
- Changed the logic of the
capturedResultItemTypessetting ofDSSimplifiedCaptureVisionSettings:- If the result item types don’t match the specified template, the method
updateSettingswill return the error codeEC_PARAMETER_VALUE_INVALIDwith the message “The captured result item types do not match the task configurations in the template”. - Based on the
capturedResultItemTypessetting, the irrelevant tasks will be removed from the template. - The
capturedResultItemTypesshould include at least one of theCRIT_BARCODE,CRIT_TEXT_LINE,CRIT_DETECTED_QUAD,CRIT_NORMALIZED_IMAGE. Otherwise, the methodupdateSettingswill return the error codeEC_PARAMETER_VALUE_INVALIDwith the message “The captured result item types should contain at least one task result type”.
- If the result item types don’t match the specified template, the method
- Refactored the
DSContourclass. Please view API reference -Contourclass for more information.
Fixed
- Fixed a crash bug that might happen when triggering the
setNextImageToReturnmethod of theDSImageSourceAdapterclass. - Fixed a bug where error messages are not output when parsing the parameter templates.
- Fixed a misreading bug of the PDF417 barcodes on the South Carolina driver’s license.
- Internal changes to prevent crash bugs in barcode decoding.
- Fixed a bug where the capture might be blocked due to the network latency.
- Fixed the bugs of usage count.
- Count twice for a single PDF417 barcode when a code parser task is implemented on the result.
- The barcode decoding result might not be uploaded timely.
- Patchcode might be counted even if there is no Patchcode license item.
10.0.21 (12/12/2023)
- Updated the internal package dependencies rules.
10.0.20 (10/26/2023)
DynamsoftBarcodeReader SDK has been revamped to integrate with DynamsoftCaptureVision (DCV) architecture, which is newly established to aggregate the features of functional products powered by Dynamsoft. The features are designed to be pluggable, customizable and interactable. In addition, the functional products share the computation so that their processing speed is much higher than working individually.
DynamsoftCaptureVisionarchitecture consists of:ImageSourceAdapter(ISA), the standard input interface for you to convert image data from different sources into the standard input image data. In addition,ISAincorporates an image buffer management system that allows instant access to the buffered image data.CaptureVisionRouter (CVR), an engine for you to update templates, retrieve images fromISA, coordinate corresponding functional products and dispatch the results to the receivers.- Functional products that perform image processing, content understanding and semantic processing. The functional products are pluggable and passively called by CVR when they are required.
- Result receiver interfaces. You can implement
CapturedResultReceiver (CRR)to receive theCapturedResultsthat output when the processing on an image is finalized. You can also implementIntermediateResultReceiver (IRR)to get timely results from different stages of the workflow.
- The parameter template system has been comprehensively upgraded.
- Multiple algorithm task settings are available. You can define barcode decoding, label recognizing, document scanning and semantic processing tasks in one template file.
- Extended the feature of the ROI system. By configuring the
target ROIparameters, you can not only specify anROIon the original image but also define the dependencies of the algorithm tasks. This feature enables you to customize the workflow when processing complex scenarios. - The image processing parameters are separated from the task parameters so that the template settings become more clear and concise.
- The
intermediate resultsystem has been improved.- Achieved the
intermediate resultsharing between different functional products. The results that have the same image source and processing parameters are directly reused, which speeds up the image processing workflow. You don’t need to add any additional code to enable theintermediate resultsharing. The library can recognize all the reusable results automatically based on the template file you uploaded. - The readability and interactivity of the
intermediate resultsare enhanced.IntermediateResultReceiverallows you to receive up to 27 different types ofIntermediate results. You can clearly read which stage of the algorithm each result is output from. In addition,IntermediateResultManagerallows you to intervene in the workflows by modifying theintermediate results.
- Achieved the
The APIs of Dynamsoft Barcode Reader are comprehensively updated. Please follow the view upgrade instructions to update your code.