Release Notes

Xamarin End of Life Announcement

Anyline has been a longstanding provider of the Mobile SDK for Xamarin, catering to developers' needs for several years. As of autumn 2022, we have seamlessly transitioned our support to encompass the SDK for .NET (MAUI), recognized as the official successor to Xamarin.

In alignment with Microsoft’s recommendation to migrate from Xamarin to .NET, and considering Microsoft’s cessation of support for Xamarin by May 2024, Anyline will discontinue the release of any additional updates, including new features or bug fixes, for Anyline Mobile SDK for Xamarin.

Please find the Anyline Mobile SDK for .NET here.

This page documents notable changes for each release.

[51.1.0] - 2023-10-13

Build Information

  • Anyline

    • Android SDK: 51.1.0

    • iOS SDK: 51.1.0

  • Xamarin

    • Android: 13.2.0

    • iOS: 14.4.0

  • Xcode Version: 14.2

  • NuGet Version: 6.3.1


Changed

  • [Tire] Improved support for wide space TINs

  • [Tire] tireAgeInYearsRoundedDown` type from string to int

  • [Commercial Tire ID] Improved accuracy

  • Improved network connection handling in low bandwidth environments

  • Remap "DCT" (customerGivenNames) keyword to firstName and middleName fields in AAMVA PDF417 result

  • Improved support for damaged CODE-128 barcodes

Fixed

  • [Meter] Bug that resulted in MULTI_FIELD_DIGITAL_METER` scan mode returning empty positions and values

[50.0.0] - 2023-08-31

Build Information

  • Anyline

    • Android SDK: 50.0.3

    • iOS SDK: 50.0.4

  • Microsoft Visual Studio For Mac: 17.3.7

  • Xamarin

    • Android: 13.0

    • iOS: 14.6.0

  • Xcode Version: 14.2

  • NuGet Version: 6.2.2


Please take note of the breaking changes listed below.

All platforms

Fixed

  • Fixed issues on certain devices with scanning in general

  • Odometer monitoring issue

  • Fixed bug preventing validationRegex to work for European License Plate Scanner

Android

Changed

  • [ID] Changed plugin config property scanOption in "universalIdField" to string type enum

  • [Vehicle Registration Certificate] Changed plugin config property scanOption in "vehicleRegistrationCertificateField" to string type enum

  • [Japanese Landing Permission] Changed plugin config property scanOption in "japaneseLandingPermissionConfigFieldOption" to string type enum

  • Improved HTTP/SSL connection handling

Fixed

  • Fixed crashes on Samsung A13 and potentially other phones in Universal Serial Number, Container, and other scanners.

iOS

Changed

  • ALScanPluginConfig is removed: instead directly access pluginConfig from within ALScanViewPluginConfig rather than through its scanPluginConfig

  • The plugin config properties named scanOption, found in ALUniversalIDField, ALVehicleRegistrationCertificateField, and ALJapaneseLandingPermissionConfigFieldOption are now initialized based on more-intuitive string values (i.e. "mandatory", "optional", "disabled", "default" rather than 0, 1, 2, and 3)

[49.0.0] - 2023-07-10

Build Information

  • Anyline

    • Android SDK: 49.0.0

    • iOS SDK: 49.0.0

  • Microsoft Visual Studio For Mac: 17.3.7

  • Xamarin

    • Android: 13.0

    • iOS: 14.6.0

  • Xcode Version: 14.2

  • NuGet Version: 6.2.2


Added

  • [ID] plugin config parameter to enable face detection

  • [MRZ] plugin config parameter to enable face detection

  • [Odometer] New Odometer scanner

  • [Meter] Validation regex interface

[47.1.0] - 2023-06-16

Build Information

  • Anyline

    • Android SDK: 47.1.0

    • iOS SDK: 47.0.1

  • Microsoft Visual Studio For Mac: 17.3.7

  • Xamarin

    • Android: 13.0

    • iOS: 14.6.0

  • Xcode Version: 14.2

  • NuGet Version: 6.2.2


Added

  • OCR custom assets can be added to a subdirectory inside of assets now

Fixed

  • [Android] Reducing SDK size not working

  • [Barcode] Crash if no barcodes found

  • [License Plate] fix for brightness controlled auto-flash mode

Deprecated

  • The feedback styles contour_line and contour_point of scanFeedbackConfig.style have been deprecated and fall back to contour_rect

[46.1.0] - 2023-04-27

Build Information

  • Anyline

    • Android SDK: 46.1.0

    • iOS SDK: 46.1.0

  • Microsoft Visual Studio For Mac: 17.3.7

  • Xamarin

    • Android: 13.0

    • iOS: 14.6.0

  • Xcode Version: 14.2

  • NuGet Version: 6.2.2


All platforms

Added

  • [Tire] Added new Tire Make scanner supporting 49 manufacturers

  • [Universal ID] Added new templates for Latin script:

    • BE_IDC_O_10002_F

    • PL_IDC_O_05001_F

    • BW_DVL_O_01001_F_v2

    • MZ_DVL_O_R500_F

  • [Meter] Added functionality to define a maximum number of decimal digits for the AUTO_ANALOG_DIGITAL_METER scan mode

Changed

  • [Universal ID] Modified templates for Latin script:

    • DE_IDC_O_02004_F

    • BW_DVL_O_01001_F

    • DE_DVL_O_02006-02003-02002-02001_F (errors reading names in German driving licenses)

  • [Tire] Improved accuracy and smaller SDK size for Universal TIN

  • [OCR] ocrConfig now uses models instead of model and can set an array of models instead of one model specifically

Removed

  • [Tire] Removed DOT_STRICT scan mode from Tire Identification Number (DOT) technical capability

Android

Fixed

  • Composite scanning receiving more than one result for the same ScanPlugin id.

  • Adjust placement of UI Feedback elements for smaller screen devices

  • When calling ScanView.init() to apply a new view config to a running ScanViewPlugin (simple or composite), the ScanViewPlugin may continue to receive and process image frames, leading to unexpected results.

iOS

Fixed

  • Fix config issue in feedback view (non-animated_rect) where scanFeedbackConfig.strokeWidth is being ignored when set to 0

[44.1.0] - 2023-02-17

Build Information

  • Anyline

    • Android SDK: 44.1.0

    • iOS SDK: 44.1.0

  • Microsoft Visual Studio For Mac: 17.3.7

  • Xamarin

    • Android: 13.0

    • iOS: 14.6.0

  • Xcode Version: 14.2

  • NuGet Version: 6.2.2


Breaking Changes

Barcode results encoded in base64 are now automatically decoded and returned in the value() method. The isBase64() check function has been removed and a new method getBase64value() was added to return base64 encoded results.

Added

  • New composite processing mode: parallelFirstScan which works like parallel but stops after the first result.

  • [Barcode] Added base64value to barcode object in the barcode result

  • [Tire] Added productionDate, tireAgeInYearsRoundedDown, resultPrettified to TIN result

  • [Tire] Added option to disable production date validation for TIN

  • [ID] Added the following layouts for american ID cards

    • US-CO_DVL_0_R421_F

    • US-NV_DVL_O_R421_F

    • US-NV_IDC_O_R421_F

    • US-OK_DVL_O_R421_F

Changed

  • [Barcode] The coordinates in the barcode result are now relative to the full image instead of the scanned region

  • [Tire] Improved the accuracy for TIN/DOT recognition & detection

  • [Tire] Validation regex is now configurable from pluginConfig

  • [ID] Improved the performance for ID scanning

  • [ID] Improved the accuracy of Turkish IDs

Fixed

  • [ID] Fixed a bug where the MRZ scanner would not recognize 'H' on mexican ID’s

  • Wrong position of the CameraView and Cutout when ScanView did not fill the whole device screen.

  • When cancelOnResult was set to true for a plugin of type ID, the ScanViewPlugin.resultReceived could be called more than once due to FaceDetection process.

  • [iOS] Empty date result on ID / MRZ scans when device settings is using 12 hour clock

  • [iOS] Random crash related to AVCaptureSession when initializing ALScanView

  • [iOS] Issue using custom flash button images

Removed

  • [Barcode] Removed isBase64 from barcode object in the barcode result

  • [ID] Removed layoutDefinition, drivingLicenseString & idFrontString from ID result

[43.0.0] - 2023-02-17

Build Information

  • Anyline

    • Android SDK: 43.0.0

    • iOS SDK: 43.0.0

  • Microsoft Visual Studio For Mac: 17.3.7

  • Xamarin

    • Android: 13.0

    • iOS: 14.6.0

  • Xcode Version: 14.2

  • NuGet Version: 6.2.2


Breaking Changes

This release introduces fundamental changes & improvements to how the Anyline SDK works. To upgrade from a prior SDK version to version 51.1.0, check out the migration guide.

Document Scanner Support Dropped

As of Anyline v43, the Document Scanner plugin has been removed and the feature will no longer be supported.

Android

Added

  • Added PluginResult for describing result data

    • Added a type of plugin result for each scanning capability

  • [Tire] Added tire size specification fields to the result

  • [Barcode] Added AAMVA parsing for PDF417 codes on driving licenses

  • [ID] Restructured ID results in a way that every field can contain date- & multi-language information

Changed

  • Changed the SDK architecture from one using inheritance & generics to a composition-based approach

    • Instead of distinctive subclasses such as MeterScanViewPlugin, IDScanViewPlugin, etc. the SDK offers an ScanViewPlugin class regardless of the scanning use case

  • Changed the structure of how scanning use-cases are constructed through JSON

  • Introduced configuration types for every scanning use-case with a corresponding result type

Deprecated

  • Because of the fundamental nature of changes, there are no deprecations to list for this version.

iOS

Added

  • Added ALPluginConfig for describing configuration data

    • Added a type of configuration for each scanning capability

  • Added ALPluginResult for describing result data

    • Added a type of plugin result for each scanning capability

  • [Tire] Added tire size specification fields to the result

  • [Barcode] Added AAMVA parsing for PDF417 codes on driving licenses

  • [ID] Restructured ID results in a way that every field can contain date- & multi-language information

Changed

  • Changed the SDK architecture from one using inheritance & generics to a composition-based approach

    • Instead of distinctive subclasses such as ALMeterScanViewPlugin, ALIDScanViewPlugin, etc. the SDK offers an ALScanViewPlugin class regardless of the scanning use case

  • Changed the structure of how scanning use-cases are constructed through JSON

  • Introduced configuration types for every scanning use-case with a corresponding result type

Improved

  • Added ScanViewFactory class targetting the most common use cases

  • Cleaned up public interface: also, added memberwise initializers to XXXConfig classes

  • Made additional improvements to stability

Deprecated

  • Because of the fundamental nature of changes, there are no deprecations to list for this version.

Known Issues and Limitations

  • startScanDelay does not work at the moment.