Release Notes for iOS SDK - 9.x
9.6.40 (03/21/2024)
Improved
- Updated the security of the
DynamsoftBarcodeReader
library and other corresponding dependent libraries. - Improved the multi-thread processing logic of concurrent instance licenses.
- Improved the barcode decoding performance:
- Improved the accuracy when decoding OneD & PDF417 barcodes.
- Improved the readability of dense DataMatrix codes.
Changed
- Added a new error code
EnumErrorCode_LICENSE_CACHE_USED
, which is returned when failing to connect to the license server but a valid license cache is available. Error codesEnumErrorCode_FAILED_TO_REACH_DLS
andEnumErrorCode_LICENSE_SYNC_FAILED
are no longer returned in this scenario.
Fixed
- Fixed crash bugs in the barcode decoding algorithm.
- Fixed a bug where the location of the barcode result(s) might be incorrect.
9.6.21 (03/27/2023)
Fixed
- Fixed a bug that might cause thread blocking on the simulator.
9.6.20 (03/16/2023)
Fixed
- Fixed a bug where license authorization may fail when the main license server is not available.
- Other small fixes and tweaks.
9.6.10 (01/10/2023)
Fixed
- Fixed a bug that some OneD barcodes without start & stop characters are not decoded when parameter
RequireStartStopChars
is set to 0. - Fixed a crash bug by adding protection in algorithm.
Improved
- Improved the performance of Direct Part Marking (DPM) barcode decoding.
- Improved the performance of GS1 Databar barcode decoding.
9.6.0 (12/13/2022)
Version Highlights
- Image orientation handling is supported by a new feature. With the new feature, you can:
- Get a TranformationMatrix along with the barcode location result.
- Implement coordinates transformation on the barcode location result with the TransformationMatrix.
- DotCode decoding is improved by optimizing the localization of DotCodes that are close to one another.
- EAN8 barcode decoding is improved by honing the accuracy of localization algorithms.
- QR code localizing is improved by reducing the mis-assemble rate of the finder patterns when using the localization mode LM_CONNECTED_BLOCK or LM_SCAN_DIRECTLY, which are designed for speed. The mis-assembling only occurs when there exist dense QR codes on the same image.
- Mirrored rectangular DataMatrix barcode is supported by implementing
MirrorMode
when localizing the barcodes.
- Deformed barcode decoding is improved by extending the supported modes and mode arguments of
DeformationResistingModes
.
Changelog
New
- Added a new method
setLogConfig
so that users can set whether to save the log to a file and where the log file will be saved. EnumerationEnumLogMode
is added so that users can set whether to save the log information. - Enabled decoding methods
decodeFileWithName
,decodeFileinMemory
anddecodeBase64
to read EXIF data of the given image so that the library can obtain the orientation information when processing image file. - Enabled decoding method
decodeImage
to read orientation information fromUIImage
. - Override method
decodeBuffer
. You can input aniImageData
object as the barcode decoding parameter. The library can obtain the orientation information from theiImageData
object. - Added a new property
transformationMatrix
to classiLocalizationResult
so that the library can output a transformation matrix for users to transform the coordinates of the barcode result. - Added a new property
duplicateForgetTime
to filter out all duplicate barcode results for a period of time when processing video streaming. - Added new properties
hasLeftRowIndicator
andhasRightRowIndicator
to classiPDF417Details
to return whether the left or right row indicator of the PDF417 barcode is detected. - Added a new member
BF2_ALL
to enumerationBarcodeFormatIds_2
. - Extended the features of
DeformationResistingModes
:- Extended the valid mode arguments of
DRM_BROAD_WARP
,DRM_LOCAL_REFERENCE
andDRM_DEWRINKLE
with two new arguments:GrayscaleEnhancementMode
andBinarizationMode
. - Support mode
DRM_AUTO
.
- Extended the valid mode arguments of
Improved
- Improved the accuracy when processing multiple QR codes.
- Improved the processing speed by excluding incorrectly located barcode zones before decoding.
- Improved the creation, destruction, and acquisition logic of concurrent instances.
- Improved the scan count of duplicate barcodes when the Charge Way is per scan.
- Improved the accuracy of EAN8 localization result(s).
- Improved the localization of mirrored DataMatrix barcode by implementing
MirrorMode
.
Changed
- Method
toUIImage
in classiImageData
will rotate the image physically according theorientation
property.
Fixed
- Fixed a bug that DotCodes might not be decoded when they are densely arranged.
- Fixed a crash bug when trying to output a template which includes customized value for parameterd
BarcodeTextRegEexPattern
.
Removed
- Removed
dispose
from classBarcodeReader
.
9.4.0 (11/04/2022)
Version Highlights
- DotCode decoding has been improved by optimizing the localization and decoding algorithm.
- Stacked, skewed or perspective distorted OneD barcode decoding has been improved.
Changelog
New
- Added an argument
IsOneDStacked
toLM_SCAN_DIRECTLY
to process stacked OneD barcodes. - Added a parameter
PatchCodeSearchingMargins
to specify the searching area of PatchCode. - Added the supported data format of
FormatSpecification.PartitionModes
to enhance the readability of the parameters. Users can use a list of enumeration names to specify thePartitionModes
.
Improved
- Improved the localization mode
LM_LINES
to better support skewed and perspective OneD barcodes. - Enhanced tamper resistance of the license keys so that any change to the license string makes it invalid.
Fixed
- Fixed a memory leak issue by upgrading SDK compile tool from Xcode 9 to Xcode 13.
Deprecated
- Deprecated the attribute
barcodeFormatString_2
ofTextResult
,ExtendedResult
andLocalizationResult
. All the barcode format strings will be returned by the attributebarcodeFormatString
.
9.2.13 (09/05/2022)
- Fixed a bug that NSError might not be returned when errors occured in the decode methods.
9.2.12 (08/02/2022)
- Made a minor change to
iRegionDefinition
class to ensure the library can be used together withDynamsoftCameraEnhancer
in Xamarin.Forms.
9.2.11 (07/11/2022)
Fixed
- Fixed a bug that could cause App Store rejection when Build Options - Enable BitCode is set to Yes for an app.
9.2.10 (06/28/2022)
Version Highlights
- Barcode boundary-seeking algorithm is refactored to improve stability.
- Pharmacode decoding is optimized to improve accuracy.
- The function of device-alias is added to allow users to give each device a readable name. For end-users and administrators, this makes it more friendly to distinguish between devices about license usage statistics.
Changelog
New
- Added a new method
setDeviceFriendlyName
to set a human-readable name that identifies the device. - Added a new method
decodeFileInMemory
to decode from the images that are stored in memory. - Added a new interface
ImageSource
. It acts as an adapter that transfers image data from external resources to the format that can be recognized by the Barcode Reader. The following APIs are available for users to reduce the code complexity when working withImageSource
:setImageSource
: SetImageSource
as the source of image data.startScanning
: Start obaining image from theImageSource
continuously.stopScanning
: Stop obtaining image from theImageSource
.TextResultListener
: The protocol that includes a callback method for users to receive decoded barcode results when decoding from theImageSource
.
- Added a new method
minImageReadingInterval
to set the minimum interval between consecutive barcode decoding processes.
9.0.2 (05/26/2022)
New
- Added the following property/Method to iImageData class:
toUIImage
: The method that can convert the iImageData to an UIImage.orientation
: The property that indicates the orientation of the image.
Changed
- Changed
getVersion
from a dynamic method to a static method. The format of the return value is changed as well.
Fixed
- Fixed a bug that might cause memory leak.
9.0.1 (04/20/2022)
Fixed
- Fixed a bug that might offset the position of highlight overlays on the decoded barcodes when used together with
DynamsoftCameraEnhancer
.
9.0.0 (03/22/2022)
Highlights
- Simplified the license activation steps. Different license activation APIs are integrated into
initLicense
method. - Added support for Pharmacode.
- Added support for Code 11, a 1D format.
- Deformation resisting modes
DRM_BROAD_WARP
,DRM_LOCAL_REFERENCE
andDRM_DEWRINKLE
are optimized and detached fromDRM_GENERAL
. Users can specify a more effective deformation resisting mode when processing QRCode and DataMatrix codes. - Optimized the confidence scoring system for PDF417 codes.
Changelog
New
- Added
EnumBarcodeFormatCODE11
under enumerationEnumBarcodeFormat
to specify newly supported barcode format, Code 11. The enumeration value ofEnumBarcodeFormatONED
andEnumBarcodeFormatALL
are updated as well. - Added
EnumBarcodeFormat2PHARMACODEONETRACK
,EnumBarcodeFormat2PHARMACODETWOTRACK
andEnumBarcodeFormat2PHARMACODE
under enumerationEnumBarcodeFormat_2
to specify newly supported barcode format, Pharmacode. - Added a new error code
DBRERR_PHARMACODE_LICENSE_INVALID
which will be returned when the license of Pharmacode is invalid. - Added
EnumDeformationResistingModeBroadWarp
,EnumDeformationResistingModeLocalReference
andEnumDeformationResistingModeDewrinkle
under enumerationEnumDeformationResistingMode
to apply new deformation resisting modes. - Added a parameter
FormatSpecification.VerifyCheckDigit
. - Added new argument
ConfidenceThreshold
to theLocalizationModes
mode arguments. - Added static method
DynamsoftBarcodeReader.initLicense
to replace legacy license activation APIs. - Added protocol
DBRLicenseVerificationListener
to get license verification callback when usingDynamsoftBarcodeReader.initLicense
. - Added protocol
DBRTextResultListener
. - Added protocol
DBRIntermediateResultListener
. - Added the following image decoding methods. The parameter
templateName
is not required in the new methods.DynamsoftBarcodeReader.decodeBuffer
DynamsoftBarcodeReader.decodeImage
DynamsoftBarcodeReader.decodeFileWithName
DynamsoftBarcodeReader.decodeBase64
DynamsoftBarcodeReader.decodeIntermediateResult
Fixed
- Fixed a bug that might cause a crash when using multiple threads for barcode decoding.
Deprecated
- The following license activation APIs are deprecated:
- Interface
iDMDLSConnectionParameters
- Protocol
DBRServerLicenseVerificationDelegate
- Protocol
DMDLSLicenseVerificationDelegate
- Enumeration
EnumDMChargeWay
- Enumeration
EnumDMLicenseModule
- Enumeration
EnumDMUUIDGenerationMethod
- Enumeration
EnumProduct
- Method
DynamsoftBarcodeReader.initLicenseFromServer
- Method
DynamsoftBarcodeReader.initLicenseFromDLS
- Method
DynamsoftBarcodeReader.outputLicenseToString
- Interface
- The image decoding methods with parameter templateName are deprecated
DynamsoftBarcodeReader.decodeIntermediateResult
DynamsoftBarcodeReader.decodeImage
DynamsoftBarcodeReader.decodeFileWithName
DynamsoftBarcodeReader.decodeBase64
DynamsoftBarcodeReader.decodeBuffer
DBRTextResultDelegate
is deprecated.DBRIntermediateResultListener
is deprecated.
Breaking Changes
- Configurations of the preset templates are changed.
- Changed the configurations of
EnumPresetTemplate.default
toEnumPresetTemplate.videoSingleBarcode
. - Added template
EnumPresetTemplate.imageDefault
to store the legacy configurations ofEnumPresetTemplate.default
.
- Changed the configurations of
- Updated Swift APIs
- The following method names are changed:
DynamsoftBarcodeReader.updateRuntimeSettings
(with parameteriPublicRuntimeSettings
)DynamsoftBarcodeReader.decodeIntermediateResult
DynamsoftBarcodeReader.decodeImage
DynamsoftBarcodeReader.decodeFileWithName
DynamsoftBarcodeReader.initRuntimeSettingsWithFile
DynamsoftBarcodeReader.initRuntimeSettingsWithString
DynamsoftBarcodeReader.appendTplFileToRuntimeSettings
DynamsoftBarcodeReader.appendTplStringToRuntimeSettings
DynamsoftBarcodeReader.outputSettingsToString
DynamsoftBarcodeReader.outputSettingsToFile
- Enumeration members of
EnumTerminatePhase
- The following methods will signal errors by throw exceptions
DynamsoftBarcodeReader.decodeIntermediateResult
DynamsoftBarcodeReader.decodeImage
DynamsoftBarcodeReader.decodeFileWithName
DynamsoftBarcodeReader.decodeBase64
DynamsoftBarcodeReader.decodeBuffer
DynamsoftBarcodeReader.getIntermediateResult
DynamsoftBarcodeReader.createIntermediateResult
DynamsoftBarcodeReader.outputLicenseToString
DynamsoftBarcodeReader.outputSettingsToString
DynamsoftBarcodeReader.allParameterTemplateNames
DynamsoftBarcodeReader.getModeArgument
DynamsoftBarcodeReader.getRuntimeSettings
- The following methods will return an BOOL value
DynamsoftBarcodeReader.updateRuntimeSettings
DynamsoftBarcodeReader.setModeArgument
DynamsoftBarcodeReader.resetRuntimeSettings
DynamsoftBarcodeReader.initRuntimeSettingsWithFile
DynamsoftBarcodeReader.initRuntimeSettingsWithString
DynamsoftBarcodeReader.appendTplFileToRuntimeSettings
DynamsoftBarcodeReader.appendTplStringToRuntimeSettings
DynamsoftBarcodeReader.outputSettingsToFile
- The following method names are changed:
- Removed the following legacy video barcode decoding APIs
- Interface
iDCESettingParameters
- Interface
iFrameDecodingParameters
- Enumeration
EnumClarityCalculationMethod
- Enumeration
EnumClarityFilterMode
- Protocol
DBRErrorDelegate
- Method
DynamsoftBarcodeReader.setCameraEnhancerParam
- Method
DynamsoftBarcodeReader.startFrameDecoding
- Method
DynamsoftBarcodeReader.startFrameDecodingEx
- Method
DynamsoftBarcodeReader.appendFrame
- Method
DynamsoftBarcodeReader.setDBRErrorDelegate
- Method
DynamsoftBarcodeReader.stopFrameDecoding
- Method
DynamsoftBarcodeReader.getFrameDecodingParameters
- Method
DynamsoftBarcodeReader.getLenghtOfFrameQueue
- Interface
- Removed the following legacy license activation APIs
- Interface
iDMLTSConnectionParameters
- Protocol
DMLTSLicenseVerificationDelegate
- Method
DynamsoftBarcodeReader.initLicenseFromLTS
- Property
DynamsoftBarcodeReader.license
- Interface