PrivacyInfo.xcprivacy
.When migrating from older version to this version, you need to:
Change the download link of module AAILiveness
and AAINetwork
to the following value:
pod 'AAINetwork', :http => 'https://prod-guardian-cv.oss-ap-southeast-5.aliyuncs.com/sdk/iOS-libraries/AAINetwork/AAINetwork-V1.0.2.tar.bz2', type: :tbz
pod 'AAILiveness', :http => 'https://prod-guardian-cv.oss-ap-southeast-5.aliyuncs.com/sdk/iOS-liveness-detection/2.1.1/iOS-Liveness-SDK-V2.1.1.tar.bz2', type: :tbz
Then run pod install
.
prepareTimeoutInterval
from 10s to 50s.Support return the audit image sequence list.
Each action will generate 2 or 3 audit images, the number of audit images is not fixed because it depends on the user's action. If you enable this feature, the SDK will automatically upload the audit image sequence list to the server after liveness detection complete.
How to use
First enable the audit image data list feature before present the SDK page.
// Initialize the SDK
...
// Enable the audit image data list feature.
AAIAdditionalConfig *additionalConfig = [AAILivenessSDK additionalConfig];
additionalConfig.enableCollectAuditImages = YES;
// The following properties are optional, you can set them according to your needs.
// (Optional) The audit image width, default is 600. Available values in range [50, 1000].
additionalConfig.auditImageWidth = 300;
// (Optional) The quality of audit image. The higher the quality, the larger the image size, and the longer the upload time.
// Default is 30. Available values in range [30, 100].
additionalConfig.auditImageQuality = 30;
Then obtain the audit image data list after liveness detection complete. There are two ways to obtain the audit image data list:
One way is to get it from the AAILivenessResult
object.
NSArray<AAILivenessImageData *> *auditImageDataSequenceList = [livenessResult auditImageDataList];
Another way is to parse the auditImageUrl
fileld in the liveness-detection openapi response, which is a download link for a zip file. See liveness-detection openapi for more detail.
When migrating from 2.0.11 to this version, you need to:
Change the download link of module AAILiveness
and AAINetwork
to the following value:
pod 'AAILiveness', :http => 'https://prod-guardian-cv.oss-ap-southeast-5.aliyuncs.com/sdk/iOS-liveness-detection/2.1.0/iOS-Liveness-SDK-V2.1.0.tar.bz2' , type: :tbz
Then run pod install
.
Support BPS market (AAILivenessMarketBPS
).
Upgrade AAINetwork
to v1.0.2.
When migrating from 2.0.x to this version, you need to:
Change the download link of module AAILiveness
and AAINetwork
to the following value:
pod 'AAILiveness', :http => 'https://prod-guardian-cv.oss-ap-southeast-5.aliyuncs.com/sdk/iOS-liveness-detection/2.0.8/iOS-Liveness-SDK-V2.0.8.tar.bz2' , type: :tbz
pod 'AAINetwork', :http => 'https://prod-guardian-cv.oss-ap-southeast-5.aliyuncs.com/sdk/iOS-libraries/AAINetwork/AAINetwork-V1.0.2.tar.bz2', type: :tbz
Then run pod install
.
Billing optimization.
When migrating from 2.0.x to this version, you need to:
Change the download link of module AAILiveness
to the following value:
pod 'AAILiveness', :http => 'https://prod-guardian-cv.oss-ap-southeast-5.aliyuncs.com/sdk/iOS-liveness-detection/2.0.8/iOS-Liveness-SDK-V2.0.8.tar.bz2' , type: :tbz
Then run pod install
.
Added AAILivenessFailedResult
as a helper class to facilitate handling errorInfo
. The usage of this class is as follows:
vc.detectionFailedBlk = ^(AAILivenessViewController * _Nonnull rawVC, NSDictionary * _Nonnull errorInfo) {
AAILivenessFailedResult *result = [AAILivenessFailedResult resultWithErrorInfo:errorInfo];
NSLog(@"Detection failed: %@, message: %@, transactionId: %@", result.errorCode, result.errorMsg, result.transactionId);
// Close SDK page ...
};
Added property recordUserGiveUp
to the AAILivenessViewController
to facilitate recording the user's give up behavior.
/// Whether to mark the action of tapping back button as "user_give_up". The default is NO. If you set YES, the `detectionFailedBlk`
/// will be called(if you implement it) when the user taps the top left back button while liveneness detection is running.
vc.recordUserGiveUp = YES;
Improve stability.
When migrating from 2.0.6 to this version, you need to:
Change the download link of module AAILiveness
to the following value:
pod 'AAILiveness', :http => 'https://prod-guardian-cv.oss-ap-southeast-5.aliyuncs.com/sdk/iOS-liveness-detection/2.0.7/iOS-Liveness-SDK-V2.0.7.tar.bz2' , type: :tbz
Then run pod install
.
Deprecate the initialization methods initWithAccessKey:secretKey:market:
and initWithAccessKey:secretKey:market:isGlobalService:
, please use initWithMarket:
or initWithMarket:isGlobalService:
instead.
When migrating from 2.0.5 to this version, you need to:
Change the download link of module AAILiveness
to the following value:
pod 'AAILiveness', :http => 'https://prod-guardian-cv.oss-ap-southeast-5.aliyuncs.com/sdk/iOS-liveness-detection/2.0.6/iOS-Liveness-SDK-V2.0.6.tar.bz2' , type: :tbz
Then run pod install
.
Support obtaining full face image by calling the API on the server side.
When migrating from 2.0.4 to this version, you need to:
Change the download link of module AAILiveness
to the following value:
pod 'AAILiveness', :http => 'https://prod-guardian-cv.oss-ap-southeast-5.aliyuncs.com/sdk/iOS-liveness-detection/2.0.5/iOS-Liveness-SDK-V2.0.5.tar.bz2' , type: :tbz
Then run pod install
.
Added:
AAILivenessResult.fullFaceImg
).showAnimationImg
and playAudio
for class AAILivenessViewController
.Fixed:
Other minor updates:
createVolumeView
of AAILivenessUtil.m
to be compatible with SwiftUI.When migrating from 2.0.3 to this version, you need to:
Change the download link of module AAILiveness
to the following value:
pod 'AAILiveness', :http => 'https://prod-guardian-cv.oss-ap-southeast-5.aliyuncs.com/sdk/iOS-liveness-detection/2.0.4/iOS-Liveness-SDK-V2.0.4.tar.bz2' , type: :tbz
Then run pod install
.
Fix EXC_BAD_ACCESS_KERN_INVALID_ADDRESS bug that may occur in M1 chip devices.
Other minor updates.
When migrating from 2.0.2 to this version, you need to:
Change the download link of module AAILiveness
to the following value:
pod 'AAILiveness', :http => 'https://prod-guardian-cv.oss-ap-southeast-5.aliyuncs.com/sdk/iOS-liveness-detection/2.0.3/iOS-Liveness-SDK-V2.0.3.tar.bz2' , type: :tbz
Then run pod install
.
Fix the bug that onDetectionRemainingTime:
may not be called sometimes.
When migrating from 2.0.1 to this version, you need to:
Change the download link of module AAILiveness
to the following value:
pod 'AAILiveness', :http => 'https://prod-guardian-cv.oss-ap-southeast-5.aliyuncs.com/sdk/iOS-liveness-detection/2.0.2/iOS-Liveness-SDK-V2.0.2.tar.bz2' , type: :tbz
Then run pod install
.
Breaking changes:
configAvatarPreviewPath
of AAILivenessWrapView
is unavailable, please use configAvatarPreviewPathV2
instead.AAIDetectionType
,AAIDetectionResult
,AAIActionStatus
,AAILivenessMarket
declarations for Swift.Other updates:
Disabled phone vertical detection by default. If you want to enable it, do the following setting:
vc.detectPhonePortraitDirection = YES;
// Show the AAILivenessViewController
...
The number of default actions has been changed from 3 to 2(blink and posYaw).
The color of the round border in the avatar preview area has changed to a clear color. If you want to keep this color consistent with the old version of the SDK, just set the color manually:
AAIAdditionalConfig *additionalConfig = [AAILivenessSDK additionalConfig];
additionalConfig.roundBorderColor = [UIColor colorWithRed:0.36 green:0.768 blue:0.078 alpha:1.0];
// Other SDK configurations
...
// Show the AAILivenessViewController
...
Added:
Added the ellipse dashed line during the liveness detection.
Support to set the detection level.
AAIAdditionalConfig *additionalConfig = [AAILivenessSDK additionalConfig];
// Set the color of the ellipse dashed line that appears during the liveness detection. Default is white color.
additionalConfig.ellipseLineColor = [UIColor greenColor];
// Set the difficulty level of liveness detection. Default is AAIDetectionLevelNormal.
// Available levels are AAIDetectionLevelEasy, AAIDetectionLevelNormal, AAIDetectionLevelHard
// The harder it is, the stricter the verification is.
additionalConfig.detectionLevel = AAIDetectionLevelNormal;
// Other SDK configurations
...
// Show the AAILivenessViewController
...
When migrating from older SDK(v1.x.x) to this version, you need to refer the document to reintegrate the SDK.
Fix EXC_BAD_ACCESS_KERN_INVALID_ADDRESS bug that may occur in M1 chip devices.
When migrating from 1.3.4 to this version, you need to:
Fix bugs.
When migrating from 1.3.3 to this version, you need to:
Fix the global service bug.
Compressed images of AAIImgs.bundle
.
Updated the demo project.
When migrating from 1.3.2 to this version, you need to:
Updated AAILivenessViewController
and AAILivenessUtil
.
When migrating from 1.3.1 to this version, you need to:
Optimizing closed eye detection.
Fix EXC_BAD_ACCESS bug that could occur in some cases.
Updated AAILivenessViewController
.
When migrating from 1.3.0 to this version, you need to:
Optimizing the capture of face image.
Support closed eye detection.
Add localized string "pls_open_eye".
When migrating from 1.2.9 to this version, you need to:
Add market "AAILivenessMarketPhilippines2".
Add property language
and prepareTimeoutInterval
for AAILivenessViewController
.
Add property language
and remove networkChanged:
method for AAILivenessResultViewController
.
Add methods playAudio:lprojName:
and localStrForKey:lprojName:
for AAILivenessUtil.
Add AAITimerWrapper
class(in AAILivenessUtil.h
and AAILivenessUtil.m
).
Add localized string key fail_reason_prepare_timeout
.
When migrating from 1.2.8 to this version, you need to:
AAILiveness
folder, AAILivenessSDK.xcframework
folder, Resource
folder).Upgrade network module.
Add property actionTimeoutInterval
for AAILivenessViewController.
When migrating from 1.2.7 to this version, you need to:
libz.tdb
.AAILivenessViewController.h
and AAILivenessViewController.m
.initWithMarket:isGlobalService:
and pass YES to the isGlobalService
parameter.Refactored AAILivenessViewController, now you can use the public interfaces of AAILivenessViewController to customize logic without modifing its source code.
Support full-screen preview (See how to implement this effect in the demo project).
When migrating from 1.2.1 to this version, you need to do:
img
of AAILivenessResult
may be nil when the onDetectionComplete:
method is called.Support face occlusion detection(only in the preparation phase, not in the action detection phase), this feature is off by default, you can turn it on if needed.
[AAILivenessSDK configDetectOcclusion:YES];
Support Pakistan, Nigeria, Colombia.
Updated Malaysia(ms) audio files.
Added the AAIModel.bundle
resource and called the [AAILivenessSDK configModelBundlePath:]
method in viewDidLoad
method of AAILivenessViewController.m
.
Modified the NSDictionary
parameter in the onDetectionComplete
method to AAILivenessResult
.
_pre_hold_phone_v_key
and property _preResult
, add property _pre_key
and related logic in AAILivenessViewController.m
.configActionTimeoutSeconds
method to support customizing action detection time interval._pre_hold_phone_v_key
property and related logic in AAILivenessViewController.m
.framework
with xcframework
.Add configAvatarPreviewWidth
and configAvatarPreviewMarginTop
properties to support customizing the width and the margin-top of the avatar preview area.
Usage:
wrapView.configAvatarPreviewWidth = ^CGFloat(CGRect wrapViewFrame) {
return 300;
};
wrapView.configAvatarPreviewMarginTop = ^CGFloat(CGRect wrapViewFrame) {
return 64;
};
configAvatarPreviewPath
property to the AAILivenessWrapView.h
to support customizing the shape of the avatar preview area.configResultPictureSize
method to support custom result image size in AAILivenessSDK.h
.uploadImgCostMillSeconds
field in detection result resultInfo
._Nullable
for startAuthWithCompletionBlk
parameter in AAILivenessWrapView.h
._preResult = result;
for onFrameDetected:status:forDetectionType
in AAILivenessViewController.m
.graduallySetBrightness
method in AAILivenessUtil.m
.onDetectionFailed:forDetectionType:
method might be called mutiple times.