diff --git a/star_lock/aliyun_face_plugin/.gitignore b/star_lock/aliyun_face_plugin/.gitignore
new file mode 100644
index 00000000..96486fd9
--- /dev/null
+++ b/star_lock/aliyun_face_plugin/.gitignore
@@ -0,0 +1,30 @@
+# Miscellaneous
+*.class
+*.log
+*.pyc
+*.swp
+.DS_Store
+.atom/
+.buildlog/
+.history
+.svn/
+migrate_working_dir/
+
+# IntelliJ related
+*.iml
+*.ipr
+*.iws
+.idea/
+
+# The .vscode folder contains launch configuration and tasks you configure in
+# VS Code which you may wish to be included in version control, so this line
+# is commented out by default.
+#.vscode/
+
+# Flutter/Dart/Pub related
+# Libraries should not include pubspec.lock, per https://dart.dev/guides/libraries/private-files#pubspeclock.
+/pubspec.lock
+**/doc/api/
+.dart_tool/
+.packages
+build/
diff --git a/star_lock/aliyun_face_plugin/.metadata b/star_lock/aliyun_face_plugin/.metadata
new file mode 100644
index 00000000..29c9cb0b
--- /dev/null
+++ b/star_lock/aliyun_face_plugin/.metadata
@@ -0,0 +1,33 @@
+# This file tracks properties of this Flutter project.
+# Used by Flutter tool to assess capabilities and perform upgrades etc.
+#
+# This file should be version controlled.
+
+version:
+ revision: 6928314d505d2bb4777be05e45d7808a5aa91d2a
+ channel: stable
+
+project_type: plugin
+
+# Tracks metadata for the flutter migrate command
+migration:
+ platforms:
+ - platform: root
+ create_revision: 6928314d505d2bb4777be05e45d7808a5aa91d2a
+ base_revision: 6928314d505d2bb4777be05e45d7808a5aa91d2a
+ - platform: android
+ create_revision: 6928314d505d2bb4777be05e45d7808a5aa91d2a
+ base_revision: 6928314d505d2bb4777be05e45d7808a5aa91d2a
+ - platform: ios
+ create_revision: 6928314d505d2bb4777be05e45d7808a5aa91d2a
+ base_revision: 6928314d505d2bb4777be05e45d7808a5aa91d2a
+
+ # User provided section
+
+ # List of Local paths (relative to this file) that should be
+ # ignored by the migrate tool.
+ #
+ # Files that are not part of the templates will be ignored by default.
+ unmanaged_files:
+ - 'lib/main.dart'
+ - 'ios/Runner.xcodeproj/project.pbxproj'
diff --git a/star_lock/aliyun_face_plugin/CHANGELOG.md b/star_lock/aliyun_face_plugin/CHANGELOG.md
new file mode 100644
index 00000000..45df9524
--- /dev/null
+++ b/star_lock/aliyun_face_plugin/CHANGELOG.md
@@ -0,0 +1,7 @@
+## 2.1.2 - 20230401
+
+* 初始版本。
+
+## 2.3.5 - 20231011
+
+* 修复 iOS SDK xcode 15 的兼容问题。
diff --git a/star_lock/aliyun_face_plugin/LICENSE b/star_lock/aliyun_face_plugin/LICENSE
new file mode 100644
index 00000000..b3c35b8b
--- /dev/null
+++ b/star_lock/aliyun_face_plugin/LICENSE
@@ -0,0 +1,26 @@
+Copyright (c) 2022-present, Aliyun, Inc. All rights reserved.
+
+Most source code in aliyun_face_plugin are MIT licensed.
+
+A copy of the MIT License is included in this file.
+
+Terms of the MIT License
+========================
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
\ No newline at end of file
diff --git a/star_lock/aliyun_face_plugin/README.md b/star_lock/aliyun_face_plugin/README.md
new file mode 100644
index 00000000..1d01d217
--- /dev/null
+++ b/star_lock/aliyun_face_plugin/README.md
@@ -0,0 +1,7 @@
+# 阿里云金融级实人认证 flutter 插件
+
+## Getting Started
+
+该工程是阿里云金融级实人认证的 flutter 插件,在她的帮助下,您的业务 App(Android / iOS) 可以更方便的使用阿里云的刷脸认证服务。
+
+具体使用方式,请参考[线上接入文档](https://yuque.antfin-inc.com/wlkqsw/cblvmq/gih2d0)。
diff --git a/star_lock/aliyun_face_plugin/analysis_options.yaml b/star_lock/aliyun_face_plugin/analysis_options.yaml
new file mode 100644
index 00000000..a5744c1c
--- /dev/null
+++ b/star_lock/aliyun_face_plugin/analysis_options.yaml
@@ -0,0 +1,4 @@
+include: package:flutter_lints/flutter.yaml
+
+# Additional information about this file can be found at
+# https://dart.dev/guides/language/analysis-options
diff --git a/star_lock/aliyun_face_plugin/android/.gitignore b/star_lock/aliyun_face_plugin/android/.gitignore
new file mode 100644
index 00000000..161bdcda
--- /dev/null
+++ b/star_lock/aliyun_face_plugin/android/.gitignore
@@ -0,0 +1,9 @@
+*.iml
+.gradle
+/local.properties
+/.idea/workspace.xml
+/.idea/libraries
+.DS_Store
+/build
+/captures
+.cxx
diff --git a/star_lock/aliyun_face_plugin/android/build.gradle b/star_lock/aliyun_face_plugin/android/build.gradle
new file mode 100644
index 00000000..f81611b6
--- /dev/null
+++ b/star_lock/aliyun_face_plugin/android/build.gradle
@@ -0,0 +1,58 @@
+group 'com.aliyun.face.aliyun_face_plugin'
+version '1.0'
+
+buildscript {
+ repositories {
+ google()
+ mavenCentral()
+ }
+
+ dependencies {
+ classpath 'com.android.tools.build:gradle:7.1.0'
+ }
+}
+
+rootProject.allprojects {
+ repositories {
+ google()
+ mavenCentral()
+
+ flatDir {
+ dirs 'libs'
+ }
+ }
+}
+
+apply plugin: 'com.android.library'
+
+android {
+ compileSdkVersion 31
+
+ compileOptions {
+ sourceCompatibility JavaVersion.VERSION_1_8
+ targetCompatibility JavaVersion.VERSION_1_8
+ }
+
+ defaultConfig {
+ minSdkVersion 18
+ }
+}
+
+dependencies {
+ implementation fileTree(dir: 'libs', include: ['*.jar'])
+
+ // 实人认证SDK
+ implementation(name: 'aliyun-face-v2.1.2-20221027112723', ext: 'aar')
+ implementation(name: 'aliyun-facelanguage-v2.1.2-20221027112723', ext: 'aar')
+ implementation(name: 'aliyun-ocr-v2.1.2-20221027112723', ext: 'aar')
+ implementation(name: 'aliyun-photinus-v2.1.2-20221027112723', ext: 'aar')
+ implementation(name: 'aliyun-wishverify-v2.1.2-20221027112723', ext: 'aar')
+ implementation(name: 'Android-AliyunFaceGuard-10033', ext: 'aar')
+ implementation(name: 'APSecuritySDK-DeepSec-7.0.1.20220813.jiagu', ext: 'aar')
+
+ // 实人认证三方依赖库
+ implementation 'com.squareup.okhttp3:okhttp:3.11.0'
+ implementation 'com.squareup.okio:okio:1.14.0'
+ implementation 'com.alibaba:fastjson:1.2.83_noneautotype'
+ implementation 'com.aliyun.dpa:oss-android-sdk:2.9.11'
+}
\ No newline at end of file
diff --git a/star_lock/aliyun_face_plugin/android/libs/APSecuritySDK-DeepSec-7.0.1.20220813.jiagu.aar b/star_lock/aliyun_face_plugin/android/libs/APSecuritySDK-DeepSec-7.0.1.20220813.jiagu.aar
new file mode 100644
index 00000000..a642f6d3
Binary files /dev/null and b/star_lock/aliyun_face_plugin/android/libs/APSecuritySDK-DeepSec-7.0.1.20220813.jiagu.aar differ
diff --git a/star_lock/aliyun_face_plugin/android/libs/Android-AliyunFaceGuard-10033.aar b/star_lock/aliyun_face_plugin/android/libs/Android-AliyunFaceGuard-10033.aar
new file mode 100644
index 00000000..159c07d6
Binary files /dev/null and b/star_lock/aliyun_face_plugin/android/libs/Android-AliyunFaceGuard-10033.aar differ
diff --git a/star_lock/aliyun_face_plugin/android/libs/aliyun-face-v2.1.2-20221027112723.aar b/star_lock/aliyun_face_plugin/android/libs/aliyun-face-v2.1.2-20221027112723.aar
new file mode 100644
index 00000000..5a3640b7
Binary files /dev/null and b/star_lock/aliyun_face_plugin/android/libs/aliyun-face-v2.1.2-20221027112723.aar differ
diff --git a/star_lock/aliyun_face_plugin/android/libs/aliyun-facelanguage-v2.1.2-20221027112723.aar b/star_lock/aliyun_face_plugin/android/libs/aliyun-facelanguage-v2.1.2-20221027112723.aar
new file mode 100644
index 00000000..9e56c91a
Binary files /dev/null and b/star_lock/aliyun_face_plugin/android/libs/aliyun-facelanguage-v2.1.2-20221027112723.aar differ
diff --git a/star_lock/aliyun_face_plugin/android/libs/aliyun-ocr-v2.1.2-20221027112723.aar b/star_lock/aliyun_face_plugin/android/libs/aliyun-ocr-v2.1.2-20221027112723.aar
new file mode 100644
index 00000000..8326ff9c
Binary files /dev/null and b/star_lock/aliyun_face_plugin/android/libs/aliyun-ocr-v2.1.2-20221027112723.aar differ
diff --git a/star_lock/aliyun_face_plugin/android/libs/aliyun-photinus-v2.1.2-20221027112723.aar b/star_lock/aliyun_face_plugin/android/libs/aliyun-photinus-v2.1.2-20221027112723.aar
new file mode 100644
index 00000000..94392b13
Binary files /dev/null and b/star_lock/aliyun_face_plugin/android/libs/aliyun-photinus-v2.1.2-20221027112723.aar differ
diff --git a/star_lock/aliyun_face_plugin/android/libs/aliyun-wishverify-v2.1.2-20221027112723.aar b/star_lock/aliyun_face_plugin/android/libs/aliyun-wishverify-v2.1.2-20221027112723.aar
new file mode 100644
index 00000000..1be89ff0
Binary files /dev/null and b/star_lock/aliyun_face_plugin/android/libs/aliyun-wishverify-v2.1.2-20221027112723.aar differ
diff --git a/star_lock/aliyun_face_plugin/android/settings.gradle b/star_lock/aliyun_face_plugin/android/settings.gradle
new file mode 100644
index 00000000..16454d6e
--- /dev/null
+++ b/star_lock/aliyun_face_plugin/android/settings.gradle
@@ -0,0 +1,2 @@
+rootProject.name = 'aliyun_face_plugin'
+include ':aliyunface'
\ No newline at end of file
diff --git a/star_lock/aliyun_face_plugin/android/src/main/AndroidManifest.xml b/star_lock/aliyun_face_plugin/android/src/main/AndroidManifest.xml
new file mode 100644
index 00000000..7f564a98
--- /dev/null
+++ b/star_lock/aliyun_face_plugin/android/src/main/AndroidManifest.xml
@@ -0,0 +1,3 @@
+
+
diff --git a/star_lock/aliyun_face_plugin/android/src/main/java/com/aliyun/face/aliyun_face_plugin/AliyunFacePlugin.java b/star_lock/aliyun_face_plugin/android/src/main/java/com/aliyun/face/aliyun_face_plugin/AliyunFacePlugin.java
new file mode 100644
index 00000000..1b628486
--- /dev/null
+++ b/star_lock/aliyun_face_plugin/android/src/main/java/com/aliyun/face/aliyun_face_plugin/AliyunFacePlugin.java
@@ -0,0 +1,79 @@
+package com.aliyun.face.aliyun_face_plugin;
+
+import androidx.annotation.NonNull;
+import java.util.Map;
+import android.content.Context;
+
+import io.flutter.embedding.engine.plugins.FlutterPlugin;
+import io.flutter.plugin.common.MethodCall;
+import io.flutter.plugin.common.MethodChannel;
+import io.flutter.plugin.common.MethodChannel.MethodCallHandler;
+import io.flutter.plugin.common.MethodChannel.Result;
+import io.flutter.Log;
+
+import com.alipay.face.api.ZIMCallback;
+import com.alipay.face.api.ZIMFacade;
+import com.alipay.face.api.ZIMFacadeBuilder;
+import com.alipay.face.api.ZIMResponse;
+
+/** AliyunFacePlugin */
+public class AliyunFacePlugin implements FlutterPlugin, MethodCallHandler {
+ /// The MethodChannel that will the communication between Flutter and native Android
+ ///
+ /// This local reference serves to register the plugin with the Flutter Engine and unregister it
+ /// when the Flutter Engine is detached from the Activity
+ private MethodChannel channel;
+ private Context mContext;
+ private static String TAG = "AliyunFace";
+
+ @Override
+ public void onAttachedToEngine(@NonNull FlutterPluginBinding flutterPluginBinding) {
+ channel = new MethodChannel(flutterPluginBinding.getBinaryMessenger(), "aliyun_face_plugin");
+ channel.setMethodCallHandler(this);
+ mContext = flutterPluginBinding.getApplicationContext();
+ }
+
+ @Override
+ public void onMethodCall(@NonNull MethodCall call, @NonNull Result result) {
+ if (call.method.equals("getPlatformVersion")) {
+ result.success("android " + android.os.Build.VERSION.RELEASE);
+ } else if (call.method.equals("init")) {
+ Log.d(TAG, "enter init.");
+ ZIMFacade.install(mContext);
+ } else if (call.method.equals("getMetaInfos")) {
+ Log.d(TAG, "enter getMetaInfos.");
+ String metaInfo = ZIMFacade.getMetaInfos(mContext);
+ result.success(metaInfo);
+ } else if (call.method.equals("verify")) {
+ Log.d(TAG, "enter verify.");
+ Map params = call.arguments();
+ String certifyId = params.get("certifyId");
+ if (certifyId == null || certifyId.isEmpty()) {
+ Log.e(TAG, "certifyId is null");
+ return;
+ }
+
+ ZIMFacade zimFacade = ZIMFacadeBuilder.create(mContext);
+ zimFacade.verify(certifyId, false, new ZIMCallback() {
+ @Override
+ public boolean response(ZIMResponse response) {
+ if (null != response && 1000 == response.code) {
+ Log.d(TAG, "face verify success.");
+ } else {
+ Log.e(TAG, "face verify error.");
+ }
+
+ result.success(response.code + "," + response.reason);
+ return true;
+ }
+ });
+ } else {
+ result.notImplemented();
+ }
+ }
+
+ @Override
+ public void onDetachedFromEngine(@NonNull FlutterPluginBinding binding) {
+ channel.setMethodCallHandler(null);
+ }
+}
diff --git a/star_lock/aliyun_face_plugin/ios/.gitignore b/star_lock/aliyun_face_plugin/ios/.gitignore
new file mode 100644
index 00000000..0c885071
--- /dev/null
+++ b/star_lock/aliyun_face_plugin/ios/.gitignore
@@ -0,0 +1,38 @@
+.idea/
+.vagrant/
+.sconsign.dblite
+.svn/
+
+.DS_Store
+*.swp
+profile
+
+DerivedData/
+build/
+GeneratedPluginRegistrant.h
+GeneratedPluginRegistrant.m
+
+.generated/
+
+*.pbxuser
+*.mode1v3
+*.mode2v3
+*.perspectivev3
+
+!default.pbxuser
+!default.mode1v3
+!default.mode2v3
+!default.perspectivev3
+
+xcuserdata
+
+*.moved-aside
+
+*.pyc
+*sync/
+Icon?
+.tags*
+
+/Flutter/Generated.xcconfig
+/Flutter/ephemeral/
+/Flutter/flutter_export_environment.sh
\ No newline at end of file
diff --git a/star_lock/aliyun_face_plugin/ios/Assets/.gitkeep b/star_lock/aliyun_face_plugin/ios/Assets/.gitkeep
new file mode 100644
index 00000000..e69de29b
diff --git a/star_lock/aliyun_face_plugin/ios/Classes/AliyunFacePlugin.h b/star_lock/aliyun_face_plugin/ios/Classes/AliyunFacePlugin.h
new file mode 100644
index 00000000..c03ab7fe
--- /dev/null
+++ b/star_lock/aliyun_face_plugin/ios/Classes/AliyunFacePlugin.h
@@ -0,0 +1,4 @@
+#import
+
+@interface AliyunFacePlugin : NSObject
+@end
diff --git a/star_lock/aliyun_face_plugin/ios/Classes/AliyunFacePlugin.m b/star_lock/aliyun_face_plugin/ios/Classes/AliyunFacePlugin.m
new file mode 100644
index 00000000..674b572d
--- /dev/null
+++ b/star_lock/aliyun_face_plugin/ios/Classes/AliyunFacePlugin.m
@@ -0,0 +1,112 @@
+#import "AliyunFacePlugin.h"
+#import
+
+@implementation AliyunFacePlugin
++ (void)registerWithRegistrar:(NSObject*)registrar {
+ FlutterMethodChannel* channel = [FlutterMethodChannel
+ methodChannelWithName:@"aliyun_face_plugin"
+ binaryMessenger:[registrar messenger]];
+ AliyunFacePlugin* instance = [[AliyunFacePlugin alloc] init];
+ [registrar addMethodCallDelegate:instance channel:channel];
+}
+
+- (void)handleMethodCall:(FlutterMethodCall*)call result:(FlutterResult)result {
+ static Boolean bInit = false;
+
+ if ([@"getPlatformVersion" isEqualToString:call.method]) {
+ NSLog(@"enter getPlatformVersion");
+ result([@"" stringByAppendingString:[[UIDevice currentDevice] systemVersion]]);
+ return;
+ }
+
+ if ([@"init" isEqualToString:call.method]) {
+ NSLog(@"enter init");
+
+ if (!bInit) {
+ bInit = true;
+ [AliyunFaceAuthFacade initSDK];
+ }
+
+ return;
+ }
+
+ if ([@"getMetaInfos" isEqualToString:call.method]) {
+ NSLog(@"enter getMetaInfos");
+
+ if (!bInit) {
+ bInit = true;
+ [AliyunFaceAuthFacade initSDK];
+ }
+
+ NSDictionary *metaInfo = [AliyunFaceAuthFacade getMetaInfo];
+ NSString *info = [self convertToJsonData: metaInfo];
+ result([@"" stringByAppendingString:info]);
+ return;
+ }
+
+ if ([@"verify" isEqualToString:call.method]) {
+ NSLog(@"enter verify");
+
+ if (!bInit) {
+ bInit = true;
+ [AliyunFaceAuthFacade initSDK];
+ }
+
+ id arguments = call.arguments;
+ NSString *certifyId = [arguments objectForKey:@"certifyId"];
+ if (certifyId == nil || [certifyId length] == 0) {
+ NSLog(@"certifyId is nil.");
+ return;
+ }
+ NSLog(@"certifyId: %@.", certifyId);
+
+ NSMutableDictionary *extParams = [NSMutableDictionary new];
+ UIViewController *vc = [self viewControllerWithWindow:nil];
+ [extParams setValue:vc forKey:@"currentCtr"]; // 必须要的参数
+
+ [AliyunFaceAuthFacade verifyWith:certifyId
+ extParams:extParams
+ onCompletion:^(ZIMResponse *response) {
+ result([NSString stringWithFormat:@"%lu,%@", response.code, response.reason]);
+ }];
+
+ return;
+ }
+
+ result(FlutterMethodNotImplemented);
+}
+
+#pragma mark - 辅助方法
+
+- (NSString *)convertToJsonData:(NSDictionary *) dict {
+ NSError *error;
+ NSData *jsonData = [NSJSONSerialization dataWithJSONObject:dict
+ options:NSJSONWritingSortedKeys
+ error:&error];
+ NSString *jsonString;
+ if (!jsonData) {
+ NSLog(@"Error: %@", error);
+ } else {
+ jsonString = [[NSString alloc]initWithData:jsonData encoding:NSUTF8StringEncoding];
+ }
+ return jsonString;
+}
+
+- (UIViewController *) viewControllerWithWindow:(UIWindow *)window {
+ UIWindow *windowToUse = window;
+ if(windowToUse == nil) {
+ for (UIWindow *windowF in [UIApplication sharedApplication].windows) {
+ if (windowF.isKeyWindow) {
+ windowToUse = windowF;
+ break;
+ }
+ }
+ }
+ UIViewController *topViewController = windowToUse.rootViewController;
+ while (topViewController.presentingViewController) {
+ topViewController = topViewController.presentingViewController;
+ }
+ return topViewController;
+}
+
+@end
diff --git a/star_lock/aliyun_face_plugin/ios/Products/APBToygerFacade.framework/APBToygerFacade b/star_lock/aliyun_face_plugin/ios/Products/APBToygerFacade.framework/APBToygerFacade
new file mode 100644
index 00000000..3e3a2fe3
Binary files /dev/null and b/star_lock/aliyun_face_plugin/ios/Products/APBToygerFacade.framework/APBToygerFacade differ
diff --git a/star_lock/aliyun_face_plugin/ios/Products/APBToygerFacade.framework/APBToygerFacade.bundle/en.strings b/star_lock/aliyun_face_plugin/ios/Products/APBToygerFacade.framework/APBToygerFacade.bundle/en.strings
new file mode 100644
index 00000000..ece6b18a
--- /dev/null
+++ b/star_lock/aliyun_face_plugin/ios/Products/APBToygerFacade.framework/APBToygerFacade.bundle/en.strings
@@ -0,0 +1,69 @@
+/*
+ en.strings
+ APBToygerFacade
+
+ Created by shouyi.www on 2017/6/1.
+ Copyright © 2017年 DTF. All rights reserved.
+*/
+
+"APBToygerFacade:取消"="Cancel";
+"APBToygerFacade:再试一次"="Try Again";
+"APBToygerFacade:退出"="Quit";
+"APBToygerFacade:确定"="OK";
+"APBToygerFacade:继续"="Continue";
+"APBToygerFacade:我知道了"="Got it";
+"APBToygerFacade:其他登录方式"="Another login method";
+"APBToygerFacade:刷脸失败"="Face scan failed";
+"APBToygerFacade:当前设备不支持刷脸"="Face scan not supported on your device";
+"APBToygerFacade:当前系统不支持刷脸"="Face scan not supported on your device system";
+"APBToygerFacade:无法启动相机"="No camera permission";
+"APBToygerFacade:请到\“设置-隐私-相机\”开启权限"="Please allow to access your camera in \"Settings\"-\"Privacy\"-\"Camera\"";
+"APBToygerFacade:立即开启"="OK";
+"APBToygerFacade:刷脸仅在iOS7及以上系统可用"="Face scan is only available on iOS8 or above";
+"APBToygerFacade:系统错误"="System error";
+"APBToygerFacade:确定退出吗?"="Are you sure to quit face scan?";
+"APBToygerFacade:露个脸就能通过"="You can succeed by simply showing your face";
+"APBToygerFacade:操作超时"="Time out";
+"APBToygerFacade:正对手机,更容易成功"="Face straight at the phone and ensure you have enough light";
+"APBToygerFacade:提示:正对手机,更容易成功"="Face straight at the phone and ensure you have enough light";
+"APBToygerFacade:本次操作失败"="Sorry, face scan failed";
+"APBToygerFacade:网络不给力"="Network connection failed";
+"APBToygerFacade:登录中断"="Login interrupted";
+"APBToygerFacade:验证中断"="Face scan interrupted";
+
+
+"APBToygerFacade:刷脸验证"="Face Scan";
+"APBToygerFacade:请把脸放入框内保持不动"="Put your face into the frame";
+"APBToygerFacade:靠近一点"="Move closer";
+"APBToygerFacade:没有检测到脸"="No face";
+"APBToygerFacade:再清晰一点"="Face not clear";
+"APBToygerFacade:脸部亮一点"="More light";
+"APBToygerFacade:请正对手机"="No face";
+"APBToygerFacade:把脸移入圈内"="No face";
+"APBToygerFacade:离远一点"="Move farther";
+"APBToygerFacade:请保持不动"="Stay still";
+"APBToygerFacade:请注视屏幕"="Open your eyes";
+"APBToygerFacade:眨眨眼"="Blink";
+"APBToygerFacade:蚂蚁佐罗提供技术支持"="";
+
+"APBToygerFacade:选择其他验证方式"="Use a different verification method";
+"APBToygerFacade:拿起手机眨眨眼"="Blink";
+"APBToygerFacade:拿起手机向左摇头"="Turn Head Left";
+"APBToygerFacade:拿起手机向右摇头"="Turn Head Right";
+"APBToygerFacade:向左摇头"="Turn Head Left";
+"APBToygerFacade:向右摇头"="Turn Head Right";
+
+
+"APBToygerFacade:正在处理"="Processing";
+"APBToygerFacade:首次使用,请开通刷脸"="For the first time use, please enable Face Scan";
+"APBToygerFacade:立即开通"="Enable";
+"APBToygerFacade:下次再说"="Later";
+
+"APBToygerFacade:请把手机正对面部"="Face straight at the phone";
+"APBToygerFacade:即将开始人脸检测"="Get ready for face recognition";
+
+"APBToygerFacade:没有认出你"="Face scan failed";
+"APBToygerFacade:未能识别人脸"="Face not detected";
+"APBToygerFacade:人脸检测中"="Face Scan";
+"APBToygerFacade:刷脸失败次数过多,请稍后再试"="Too many failed attempts, please try again later";
+"APBToygerFacade:请保持单人操作"=" ";
diff --git a/star_lock/aliyun_face_plugin/ios/Products/APBToygerFacade.framework/APBToygerFacade.bundle/id.strings b/star_lock/aliyun_face_plugin/ios/Products/APBToygerFacade.framework/APBToygerFacade.bundle/id.strings
new file mode 100644
index 00000000..2d456dbd
--- /dev/null
+++ b/star_lock/aliyun_face_plugin/ios/Products/APBToygerFacade.framework/APBToygerFacade.bundle/id.strings
@@ -0,0 +1,60 @@
+"APBToygerFacade:取消"="Batalkan";
+"APBToygerFacade:再试一次"="Harap coba lagi";
+"APBToygerFacade:退出"="Keluar";
+"APBToygerFacade:确定"="OK";
+"APBToygerFacade:继续"="Lanjutkan";
+"APBToygerFacade:我知道了"="OK";
+"APBToygerFacade:其他登录方式"="Ubah Metode Logon";
+"APBToygerFacade:刷脸失败"="Pengenalan wajah gagal";
+"APBToygerFacade:当前设备不支持刷脸"="Perangkat Anda tidak mendukung pengenalan wajah";
+"APBToygerFacade:当前系统不支持刷脸"="Sistem saat ini tidak mendukung pengenalan wajah";
+"APBToygerFacade:无法启动相机"="Tidak Memiliki Izin Akses Kamera";
+"APBToygerFacade:请到\“设置-隐私-相机\”开启权限"="Buka Pengaturan > Privasi > Kamera dan izinkan akses";
+"APBToygerFacade:立即开启"="OK";
+"APBToygerFacade:刷脸仅在iOS7及以上系统可用"="Hanya iOS 7 dan setelahnya yang mendukung pengenalan wajah";
+"APBToygerFacade:系统错误"="Terjadi Kesalahan Sistem";
+"APBToygerFacade:确定退出吗?"="Apakah Anda yakin ingin keluar?";
+"APBToygerFacade:露个脸就能通过"="Anda hanya perlu memperlihatkan wajah Anda";
+"APBToygerFacade:操作超时"="Waktu operasi habis";
+"APBToygerFacade:正对手机,更容易成功"="Arahkan wajah lurus menghadap ponsel untuk membuat wajah Anda lebih mudah dipindai";
+"APBToygerFacade:本次操作失败"="Operasi gagal";
+"APBToygerFacade:网络不给力"="Kondisi jaringan tidak memenuhi persyaratan";
+"APBToygerFacade:登录中断"="Logon Terganggu";
+"APBToygerFacade:验证中断"="Verifikasi terputus";
+
+
+"APBToygerFacade:刷脸验证"="Verifikasi dengan Pengenalan Wajah";
+"APBToygerFacade:请把脸放入框内保持不动"="Posisikan wajah Anda di dalam bingkai dan jangan bergerak";
+"APBToygerFacade:靠近一点"="Harap dekatkan wajah";
+"APBToygerFacade:没有检测到脸"="Tidak ada wajah terdeteksi";
+"APBToygerFacade:再清晰一点"="Perjelas wajah Anda";
+"APBToygerFacade:脸部亮一点"="Terangi wajah Anda";
+"APBToygerFacade:请正对手机"="Arahkan wajah lurus menghadap ponsel";
+"APBToygerFacade:请露出正脸"="Tunjukkan bagian depan wajah Anda";
+"APBToygerFacade:把脸移入圈内"="Posisikan wajah pada lingkaran";
+"APBToygerFacade:离远一点"="Harap jauhkan wajah";
+"APBToygerFacade:请保持不动"="Tetap tenang";
+"APBToygerFacade:请注视屏幕"="Lihat layar";
+"APBToygerFacade:眨眨眼"="Harap kedipkan mata";
+"APBToygerFacade:蚂蚁佐罗提供技术支持"="";
+
+"APBToygerFacade:选择其他验证方式"="Ubah Metode Verifikasi";
+"APBToygerFacade:拿起手机眨眨眼"="Harap kedipkan mata";
+"APBToygerFacade:拿起手机向左摇头"="Harap menoleh ke kiri";
+"APBToygerFacade:拿起手机向右摇头"="Harap menoleh ke kanan";
+"APBToygerFacade:向左摇头"="Harap menoleh ke kiri";
+"APBToygerFacade:向右摇头"="Harap menoleh ke kanan";
+
+"APBToygerFacade:正在处理"="Memproses";
+"APBToygerFacade:首次使用,请开通刷脸"="Aktifkan pengenalan wajah untuk melanjutkan";
+"APBToygerFacade:立即开通"="Aktifkan";
+"APBToygerFacade:下次再说"="Lain Kali";
+
+"APBToygerFacade:请把手机正对面部"="Arahkan wajah lurus menghadap ponsel";
+"APBToygerFacade:即将开始人脸检测"="Memulai pengenalan wajah";
+
+"APBToygerFacade:没有认出你"="Pengenalan wajah gagal";
+"APBToygerFacade:未能识别人脸"="Tidak ada wajah terdeteksi";
+"APBToygerFacade:人脸检测中"="Pengenalan wajah dalam proses";
+"APBToygerFacade:刷脸失败次数过多,请稍后再试"="Pengenalan wajah terlalu sering dilakukan. Harap coba lagi nanti";
+"APBToygerFacade:请保持单人操作"=" ";
diff --git a/star_lock/aliyun_face_plugin/ios/Products/APBToygerFacade.framework/APBToygerFacade.bundle/ja.strings b/star_lock/aliyun_face_plugin/ios/Products/APBToygerFacade.framework/APBToygerFacade.bundle/ja.strings
new file mode 100644
index 00000000..973603b6
--- /dev/null
+++ b/star_lock/aliyun_face_plugin/ios/Products/APBToygerFacade.framework/APBToygerFacade.bundle/ja.strings
@@ -0,0 +1,60 @@
+"APBToygerFacade:取消"="キャンセル";
+"APBToygerFacade:再试一次"="もう一度お試しください";
+"APBToygerFacade:退出"="終了";
+"APBToygerFacade:确定"="OK";
+"APBToygerFacade:继续"="続行";
+"APBToygerFacade:我知道了"="OK";
+"APBToygerFacade:其他登录方式"="ログイン方法を切り替え";
+"APBToygerFacade:刷脸失败"="顔を認識できませんでした";
+"APBToygerFacade:当前设备不支持刷脸"="お使いのデバイスは顔認識をサポートしていません";
+"APBToygerFacade:当前系统不支持刷脸"="顔認識をサポートしていないシステムです";
+"APBToygerFacade:无法启动相机"="カメラにアクセスできません";
+"APBToygerFacade:请到\“设置-隐私-相机\”开启权限"="[設定] > [プライバシー] > [カメラ] に移動し、アクセスを許可してください";
+"APBToygerFacade:立即开启"="OK";
+"APBToygerFacade:刷脸仅在iOS7及以上系统可用"="顔認識は iOS 7 以降でサポートされています";
+"APBToygerFacade:系统错误"="システムエラー";
+"APBToygerFacade:确定退出吗?"="終了してもよろしいですか";
+"APBToygerFacade:露个脸就能通过"="顔を見せるだけです";
+"APBToygerFacade:操作超时"="操作がタイムアウトしました";
+"APBToygerFacade:正对手机,更容易成功"="顔をスキャンしやすいように、電話の方を向いてください";
+"APBToygerFacade:本次操作失败"="操作に失敗しました";
+"APBToygerFacade:网络不给力"="ネットワークの状態が要件を満たしていません";
+"APBToygerFacade:登录中断"="ログインが中断されました";
+"APBToygerFacade:验证中断"="検証が中断されました";
+
+
+"APBToygerFacade:刷脸验证"="顔認識による検証";
+"APBToygerFacade:请把脸放入框内保持不动"="フレームの内側に顔が入るようにして、動かないでください";
+"APBToygerFacade:靠近一点"="近づいてください";
+"APBToygerFacade:没有检测到脸"="顔が検出されません";
+"APBToygerFacade:再清晰一点"="顔をはっきりさせてください";
+"APBToygerFacade:脸部亮一点"="顔を明るくしてください";
+"APBToygerFacade:请正对手机"="電話の方を向いてください";
+"APBToygerFacade:请露出正脸"="顔の正面を見せてください";
+"APBToygerFacade:把脸移入圈内"="顔を円の中に入れてください";
+"APBToygerFacade:离远一点"="離れてください";
+"APBToygerFacade:请保持不动"="動かないでください";
+"APBToygerFacade:请注视屏幕"="画面を見てください";
+"APBToygerFacade:眨眨眼"="まばたきしてください";
+"APBToygerFacade:蚂蚁佐罗提供技术支持"="";
+
+"APBToygerFacade:选择其他验证方式"="検証方法を変更";
+"APBToygerFacade:拿起手机眨眨眼"="まばたきしてください";
+"APBToygerFacade:拿起手机向左摇头"="頭を左に";
+"APBToygerFacade:拿起手机向右摇头"="頭を右に";
+"APBToygerFacade:向左摇头"="頭を左に";
+"APBToygerFacade:向右摇头"="頭を右に";
+
+"APBToygerFacade:正在处理"="処理中";
+"APBToygerFacade:首次使用,请开通刷脸"="顔認識を有効化して続行します";
+"APBToygerFacade:立即开通"="有効化";
+"APBToygerFacade:下次再说"="後で";
+
+"APBToygerFacade:请把手机正对面部"="電話の方を向いてください";
+"APBToygerFacade:即将开始人脸检测"="顔認識を開始";
+
+"APBToygerFacade:没有认出你"="顔を認識できませんでした";
+"APBToygerFacade:未能识别人脸"="顔が検出されません";
+"APBToygerFacade:人脸检测中"="顔を認識中です";
+"APBToygerFacade:刷脸失败次数过多,请稍后再试"="顔認識が頻繁に実行されています。後でもう一度やり直してください";
+"APBToygerFacade:请保持单人操作"=" ";
diff --git a/star_lock/aliyun_face_plugin/ios/Products/APBToygerFacade.framework/APBToygerFacade.bundle/ko.strings b/star_lock/aliyun_face_plugin/ios/Products/APBToygerFacade.framework/APBToygerFacade.bundle/ko.strings
new file mode 100644
index 00000000..5bac9991
--- /dev/null
+++ b/star_lock/aliyun_face_plugin/ios/Products/APBToygerFacade.framework/APBToygerFacade.bundle/ko.strings
@@ -0,0 +1,61 @@
+"APBToygerFacade:取消"="취소";
+"APBToygerFacade:再试一次"="다시 시도하세요";
+"APBToygerFacade:退出"="종료";
+"APBToygerFacade:确定"="확인";
+"APBToygerFacade:继续"="계속";
+"APBToygerFacade:我知道了"="확인";
+"APBToygerFacade:其他登录方式"="로그온 방법 전환";
+"APBToygerFacade:刷脸失败"="안면 인식에 실패했습니다";
+"APBToygerFacade:当前设备不支持刷脸"="귀하의 디바이스는 안면 인식을 지원하지 않습니다";
+"APBToygerFacade:当前系统不支持刷脸"="현재 시스템은 안면 인식을 지원하지 않습니다";
+"APBToygerFacade:无法启动相机"="카메라 권한이 없습니다";
+"APBToygerFacade:请到\“设置-隐私-相机\”开启权限"="설정 > 개인 > 카메라에서 접근 권한을 부여하십시오";
+"APBToygerFacade:立即开启"="OK";
+"APBToygerFacade:刷脸仅在iOS7及以上系统可用"="iOS 7 및 그 이상의 버전에서만 안면 인식이 지원됩니다";
+"APBToygerFacade:系统错误"="시스템 오류";
+"APBToygerFacade:确定退出吗?"="정말로 종료하시겠습니까?";
+"APBToygerFacade:露个脸就能通过"="얼굴만 보여주시면 됩니다";
+"APBToygerFacade:操作超时"="작업 시간이 초과되었습니다";
+"APBToygerFacade:正对手机,更容易成功"="얼굴을 더 쉽게 스캔할 수 있도록 휴대전화를 정면으로 바라보세요";
+"APBToygerFacade:本次操作失败"="작동에 실패했습니다";
+"APBToygerFacade:网络不给力"="네트워크 상태가 요구 사항을 충족하지 않습니다";
+"APBToygerFacade:登录中断"="로그온이 중단되었습니다";
+"APBToygerFacade:验证中断"="확인이 중단되었습니다";
+
+
+"APBToygerFacade:刷脸验证"="안면 인식을 통한 인증";
+"APBToygerFacade:请把脸放入框内保持不动"="얼굴이 프레임 안으로 들어오도록 위치한 다음 움직이지 말고 가만히 계십시오";
+"APBToygerFacade:靠近一点"="더 가까이 움직이세요";
+"APBToygerFacade:没有检测到脸"="감지된 얼굴이 없습니다";
+"APBToygerFacade:再清晰一点"="얼굴을 좀더 선명하게 만드세요";
+"APBToygerFacade:脸部亮一点"="얼굴을 밝게 만드세요";
+"APBToygerFacade:请正对手机"="휴대전화를 정면으로 바라보세요";
+"APBToygerFacade:请露出正脸"="얼굴의 정면을 보여주세요";
+"APBToygerFacade:把脸移入圈内"="얼굴이 원 안에 들어오도록 움직이세요";
+"APBToygerFacade:离远一点"="더 멀리 움직이세요";
+"APBToygerFacade:请保持不动"="가만히 계십시오";
+"APBToygerFacade:请注视屏幕"="화면을 바라보세요";
+"APBToygerFacade:眨眨眼"="눈을 깜빡이세요";
+"APBToygerFacade:蚂蚁佐罗提供技术支持"="";
+
+"APBToygerFacade:选择其他验证方式"="인증 방법을 변경합니다";
+"APBToygerFacade:拿起手机眨眨眼"="눈을 깜빡이세요";
+"APBToygerFacade:拿起手机向左摇头"="좌측으로 고개를 돌립니다";
+"APBToygerFacade:拿起手机向右摇头"="우측으로 고개를 돌립니다";
+"APBToygerFacade:向左摇头"="좌측으로 고개를 돌립니다";
+"APBToygerFacade:向右摇头"="우측으로 고개를 돌립니다";
+
+"APBToygerFacade:正在处理"="처리 중";
+"APBToygerFacade:首次使用,请开通刷脸"="안면 인식을 활성화하여 계속 진행합니다";
+"APBToygerFacade:立即开通"="활성화하기";
+"APBToygerFacade:下次再说"="나중에 하기";
+
+"APBToygerFacade:请把手机正对面部"="휴대전화를 정면으로 바라보세요";
+"APBToygerFacade:即将开始人脸检测"="안면 인식 시작";
+
+"APBToygerFacade:没有认出你"="안면 인식에 실패했습니다";
+"APBToygerFacade:未能识别人脸"="감지된 얼굴이 없습니다";
+"APBToygerFacade:人脸检测中"="얼굴 인식 중";
+"APBToygerFacade:刷脸失败次数过多,请稍后再试"="안면 인식이 연속으로 실행되었습니다. 나중에 다시 시도하세요";
+"APBToygerFacade:请保持单人操作"=" ";
+
diff --git a/star_lock/aliyun_face_plugin/ios/Products/APBToygerFacade.framework/APBToygerFacade.bundle/zh-HK.strings b/star_lock/aliyun_face_plugin/ios/Products/APBToygerFacade.framework/APBToygerFacade.bundle/zh-HK.strings
new file mode 100644
index 00000000..dc01922d
--- /dev/null
+++ b/star_lock/aliyun_face_plugin/ios/Products/APBToygerFacade.framework/APBToygerFacade.bundle/zh-HK.strings
@@ -0,0 +1,69 @@
+/*
+ zh-HK.strings
+ APBToygerFacade
+
+ Created by shouyi.www on 2017/6/1.
+ Copyright © 2017年 DTF. All rights reserved.
+*/
+
+
+"APBToygerFacade:取消"="取消";
+"APBToygerFacade:再试一次"="再試一次";
+"APBToygerFacade:退出"="退出";
+"APBToygerFacade:确定"="確定";
+"APBToygerFacade:继续"="继续";
+"APBToygerFacade:我知道了"="我知道了";
+"APBToygerFacade:其他登录方式"="其他登录方式";
+"APBToygerFacade:刷脸失败"="刷臉失敗";
+"APBToygerFacade:当前设备不支持刷脸"="目前系統不支援刷臉";
+"APBToygerFacade:当前系统不支持刷脸"="目前設備不支援刷臉";
+"APBToygerFacade:无法启动相机"="無法啟動相機";
+"APBToygerFacade:请到\“设置-隐私-相机\”开启权限"="請到“設置-隱私-相機”開啓權限";
+"APBToygerFacade:立即开启"="開通權限";
+"APBToygerFacade:刷脸仅在iOS7及以上系统可用"="刷脸仅在iOS7及以上系统可用";
+"APBToygerFacade:系统错误"="系統錯誤";
+"APBToygerFacade:确定退出吗?"="確定退出嗎?";
+"APBToygerFacade:露个脸就能通过"="露個臉就能通過";
+"APBToygerFacade:操作超时"="操作超時";
+"APBToygerFacade:正对手机,更容易成功"="對準手機,更容易成功";
+"APBToygerFacade:本次操作失败"="本次操作失敗";
+"APBToygerFacade:网络不给力"="網絡異常,請稍後再試";
+"APBToygerFacade:登录中断"="登入中斷";
+"APBToygerFacade:验证中断"="驗證中斷";
+
+
+"APBToygerFacade:刷脸验证"="刷臉驗證";
+"APBToygerFacade:请把脸放入框内保持不动"="請把臉移入圈內保持不動";
+"APBToygerFacade:靠近一点"="靠近一點";
+"APBToygerFacade:没有检测到脸"="沒有檢測到臉";
+"APBToygerFacade:再清晰一点"="再清晰一點";
+"APBToygerFacade:脸部亮一点"="光線再亮點";
+"APBToygerFacade:请正对手机"="請正視手機";
+"APBToygerFacade:请露出正脸"="請露出正臉";
+"APBToygerFacade:把脸移入圈内"="把臉移入框內";
+"APBToygerFacade:离远一点"="離遠一點";
+"APBToygerFacade:请保持不动"="請保持不動";
+"APBToygerFacade:请注视屏幕"="請注視屏幕";
+"APBToygerFacade:眨眨眼"="眨眨眼";
+"APBToygerFacade:蚂蚁佐罗提供技术支持"="";
+
+"APBToygerFacade:选择其他验证方式"="選擇其他驗證方式";
+"APBToygerFacade:拿起手机眨眨眼"="拿起手機,眨眨眼";
+"APBToygerFacade:拿起手机向左摇头"="拿著手機,向左搖頭";
+"APBToygerFacade:拿起手机向右摇头"="拿著手機,向右搖頭";
+"APBToygerFacade:向左摇头"="向左搖頭";
+"APBToygerFacade:向右摇头"="向右搖頭";
+
+"APBToygerFacade:正在处理"="正在處理";
+"APBToygerFacade:首次使用,请开通刷脸"="首次使用,請開通刷臉";
+"APBToygerFacade:立即开通"="立即開通";
+"APBToygerFacade:下次再说"="下次再說";
+
+"APBToygerFacade:请把手机正对面部"="請把手機正對面部";
+"APBToygerFacade:即将开始人脸检测"="即將開始人臉檢測";
+
+"APBToygerFacade:没有认出你"="沒有認出你";
+"APBToygerFacade:未能识别人脸"="未能識別人臉";
+"APBToygerFacade:人脸检测中"="人臉檢測中";
+"APBToygerFacade:刷脸失败次数过多,请稍后再试"="刷臉失敗次數過多,請稍後再試";
+"APBToygerFacade:请保持单人操作"="請保持單人操作";
diff --git a/star_lock/aliyun_face_plugin/ios/Products/APBToygerFacade.framework/APBToygerFacade.bundle/zh-Hans.strings b/star_lock/aliyun_face_plugin/ios/Products/APBToygerFacade.framework/APBToygerFacade.bundle/zh-Hans.strings
new file mode 100644
index 00000000..b7a867de
--- /dev/null
+++ b/star_lock/aliyun_face_plugin/ios/Products/APBToygerFacade.framework/APBToygerFacade.bundle/zh-Hans.strings
@@ -0,0 +1,69 @@
+/*
+ zh-Hans.strings
+ APBToygerFacade
+
+ Created by shouyi.www on 2017/6/1.
+ Copyright © 2017年 DTF. All rights reserved.
+*/
+
+
+"APBToygerFacade:取消"="取消";
+"APBToygerFacade:再试一次"="再试一次";
+"APBToygerFacade:退出"="退出";
+"APBToygerFacade:确定"="确定";
+"APBToygerFacade:继续"="继续";
+"APBToygerFacade:我知道了"="我知道了";
+"APBToygerFacade:其他登录方式"="其他登录方式";
+"APBToygerFacade:刷脸失败"="刷脸失败";
+"APBToygerFacade:当前设备不支持刷脸"="当前设备不支持刷脸";
+"APBToygerFacade:当前系统不支持刷脸"="当前系统不支持刷脸";
+"APBToygerFacade:无法启动相机"="无法启动相机";
+"APBToygerFacade:请到\“设置-隐私-相机\”开启权限"="请到“设置-隐私-相机”开启权限";
+"APBToygerFacade:立即开启"="立即开启";
+"APBToygerFacade:刷脸仅在iOS8及以上版本可用"="刷脸仅在iOS8及以上版本可用";
+"APBToygerFacade:系统错误"="系统错误";
+"APBToygerFacade:确定退出吗?"="确定退出吗?";
+"APBToygerFacade:露个脸就能通过"="露个脸就能通过";
+"APBToygerFacade:操作超时"="操作超时";
+"APBToygerFacade:正对手机,更容易成功"="正对手机,更容易成功";
+"APBToygerFacade:本次操作失败"="本次操作失败";
+"APBToygerFacade:网络不给力"="网络不给力";
+"APBToygerFacade:登录中断"="登录中断";
+"APBToygerFacade:验证中断"="验证中断";
+
+
+"APBToygerFacade:刷脸验证"="刷脸验证";
+"APBToygerFacade:请把脸放入框内保持不动"="请把脸移入圈内保持不动";
+"APBToygerFacade:靠近一点"="靠近一点";
+"APBToygerFacade:没有检测到脸"="没有检测到脸";
+"APBToygerFacade:再清晰一点"="再清晰一点";
+"APBToygerFacade:脸部亮一点"="脸部亮一点";
+"APBToygerFacade:请正对手机"="请正对手机";
+"APBToygerFacade:请露出正脸"="请露出正脸";
+"APBToygerFacade:把脸移入圈内"="把脸移入圈内";
+"APBToygerFacade:离远一点"="离远一点";
+"APBToygerFacade:请保持不动"="请保持不动";
+"APBToygerFacade:请注视屏幕"="请注视屏幕";
+"APBToygerFacade:眨眨眼"="眨眨眼";
+"APBToygerFacade:蚂蚁佐罗提供技术支持"="";
+
+"APBToygerFacade:选择其他验证方式"="选择其他验证方式";
+"APBToygerFacade:拿起手机眨眨眼"="拿起手机,眨眨眼";
+"APBToygerFacade:拿起手机向左摇头"="拿起手机,向左摇头";
+"APBToygerFacade:拿起手机向右摇头"="拿起手机,向右摇头";
+"APBToygerFacade:向左摇头"="向左摇头";
+"APBToygerFacade:向右摇头"="向右摇头";
+
+"APBToygerFacade:正在处理"="正在处理";
+"APBToygerFacade:首次使用,请开通刷脸"="首次使用,请开通刷脸";
+"APBToygerFacade:立即开通"="立即开通";
+"APBToygerFacade:下次再说"="下次再说";
+
+"APBToygerFacade:请把手机正对面部"="请把手机正对面部";
+"APBToygerFacade:即将开始人脸检测"="即将开始人脸检测";
+
+"APBToygerFacade:没有认出你"="没有认出你";
+"APBToygerFacade:未能识别人脸"="未能识别人脸";
+"APBToygerFacade:人脸检测中"="人脸检测中";
+"APBToygerFacade:刷脸失败次数过多,请稍后再试"="刷脸失败次数过多,请稍后再试";
+"APBToygerFacade:请保持单人操作"="请保持单人操作";
diff --git a/star_lock/aliyun_face_plugin/ios/Products/APBToygerFacade.framework/APBToygerFacade.bundle/zh-Hant.strings b/star_lock/aliyun_face_plugin/ios/Products/APBToygerFacade.framework/APBToygerFacade.bundle/zh-Hant.strings
new file mode 100644
index 00000000..9625dfc3
--- /dev/null
+++ b/star_lock/aliyun_face_plugin/ios/Products/APBToygerFacade.framework/APBToygerFacade.bundle/zh-Hant.strings
@@ -0,0 +1,69 @@
+/*
+ zh-Hant.strings
+ APBToygerFacade
+
+ Created by shouyi.www on 2017/6/1.
+ Copyright © 2017年 DTF. All rights reserved.
+*/
+
+
+"APBToygerFacade:取消"="取消";
+"APBToygerFacade:再试一次"="再試一次";
+"APBToygerFacade:退出"="退出";
+"APBToygerFacade:确定"="確定";
+"APBToygerFacade:继续"="繼續";
+"APBToygerFacade:我知道了"="我知道了";
+"APBToygerFacade:其他登录方式"="其他登入方式";
+"APBToygerFacade:刷脸失败"="刷臉失敗";
+"APBToygerFacade:当前设备不支持刷脸"="目前設備不支援刷臉服務";
+"APBToygerFacade:当前系统不支持刷脸"="当前系统不支持刷脸";
+"APBToygerFacade:无法启动相机"="無法啟動相機";
+"APBToygerFacade:请到\“设置-隐私-相机\”开启权限"="請到“設置-隱私-相機”開啓權限";
+"APBToygerFacade:立即开启"="開通權限";
+"APBToygerFacade:刷脸仅在iOS8及以上系统可用"="刷脸仅在iOS8及以上系统可用";
+"APBToygerFacade:系统错误"="系統錯誤";
+"APBToygerFacade:确定退出吗?"="確定退出嗎?";
+"APBToygerFacade:露个脸就能通过"="露個臉就能通過";
+"APBToygerFacade:操作超时"="操作超時";
+"APBToygerFacade:正对手机,更容易成功"="對準手機,更容易成功";
+"APBToygerFacade:本次操作失败"="本次操作失敗";
+"APBToygerFacade:网络不给力"="網絡異常,請稍後再試";
+"APBToygerFacade:登录中断"="登入中斷";
+"APBToygerFacade:验证中断"="驗證中斷";
+
+
+"APBToygerFacade:刷脸验证"="刷臉驗證";
+"APBToygerFacade:请把脸放入框内保持不动"="請把臉移入圈內保持不動";
+"APBToygerFacade:靠近一点"="靠近一點";
+"APBToygerFacade:没有检测到脸"="沒有檢測到臉";
+"APBToygerFacade:再清晰一点"="再清晰一點";
+"APBToygerFacade:脸部亮一点"="光線再亮點";
+"APBToygerFacade:请正对手机"="請正視手機";
+"APBToygerFacade:请露出正脸"="請露出正臉";
+"APBToygerFacade:把脸移入圈内"="把臉移入框內";
+"APBToygerFacade:离远一点"="離遠一點";
+"APBToygerFacade:请保持不动"="請保持不動";
+"APBToygerFacade:请注视屏幕"="請注視屏幕";
+"APBToygerFacade:眨眨眼"="眨眨眼";
+"APBToygerFacade:蚂蚁佐罗提供技术支持"="";
+
+"APBToygerFacade:选择其他验证方式"="選擇其他驗證方式";
+"APBToygerFacade:拿起手机眨眨眼"="拿起手機,眨眨眼";
+"APBToygerFacade:拿起手机向左摇头"="拿起手機,向左搖頭";
+"APBToygerFacade:拿起手机向右摇头"="拿起手機,向右搖頭";
+"APBToygerFacade:向左摇头"="向左搖頭";
+"APBToygerFacade:向右摇头"="向右搖頭";
+
+"APBToygerFacade:正在处理"="正在處理";
+"APBToygerFacade:首次使用,请开通刷脸"="首次使用,請開通刷臉";
+"APBToygerFacade:立即开通"="立即開通";
+"APBToygerFacade:下次再说"="下次再說";
+
+"APBToygerFacade:请把手机正对面部"="請把手機正對面部";
+"APBToygerFacade:即将开始人脸检测"="即將開始人臉檢測";
+
+"APBToygerFacade:没有认出你"="沒有認出你";
+"APBToygerFacade:未能识别人脸"="未能識別人臉";
+"APBToygerFacade:人脸检测中"="人臉檢測中";
+"APBToygerFacade:刷脸失败次数过多,请稍后再试"="刷臉失敗次數過多,請稍後再試";
+"APBToygerFacade:请保持单人操作"="請保持單人操作";
diff --git a/star_lock/aliyun_face_plugin/ios/Products/APBToygerFacade.framework/APBToygerFacadeSuitable.bundle/voiceUrl_angle.mp3 b/star_lock/aliyun_face_plugin/ios/Products/APBToygerFacade.framework/APBToygerFacadeSuitable.bundle/voiceUrl_angle.mp3
new file mode 100644
index 00000000..ebc2b334
Binary files /dev/null and b/star_lock/aliyun_face_plugin/ios/Products/APBToygerFacade.framework/APBToygerFacadeSuitable.bundle/voiceUrl_angle.mp3 differ
diff --git a/star_lock/aliyun_face_plugin/ios/Products/APBToygerFacade.framework/APBToygerFacadeSuitable.bundle/voiceUrl_away.mp3 b/star_lock/aliyun_face_plugin/ios/Products/APBToygerFacade.framework/APBToygerFacadeSuitable.bundle/voiceUrl_away.mp3
new file mode 100644
index 00000000..11bd77cc
Binary files /dev/null and b/star_lock/aliyun_face_plugin/ios/Products/APBToygerFacade.framework/APBToygerFacadeSuitable.bundle/voiceUrl_away.mp3 differ
diff --git a/star_lock/aliyun_face_plugin/ios/Products/APBToygerFacade.framework/APBToygerFacadeSuitable.bundle/voiceUrl_blink.mp3 b/star_lock/aliyun_face_plugin/ios/Products/APBToygerFacade.framework/APBToygerFacadeSuitable.bundle/voiceUrl_blink.mp3
new file mode 100644
index 00000000..9808283c
Binary files /dev/null and b/star_lock/aliyun_face_plugin/ios/Products/APBToygerFacade.framework/APBToygerFacadeSuitable.bundle/voiceUrl_blink.mp3 differ
diff --git a/star_lock/aliyun_face_plugin/ios/Products/APBToygerFacade.framework/APBToygerFacadeSuitable.bundle/voiceUrl_closer.mp3 b/star_lock/aliyun_face_plugin/ios/Products/APBToygerFacade.framework/APBToygerFacadeSuitable.bundle/voiceUrl_closer.mp3
new file mode 100644
index 00000000..afd607ef
Binary files /dev/null and b/star_lock/aliyun_face_plugin/ios/Products/APBToygerFacade.framework/APBToygerFacadeSuitable.bundle/voiceUrl_closer.mp3 differ
diff --git a/star_lock/aliyun_face_plugin/ios/Products/APBToygerFacade.framework/APBToygerFacadeSuitable.bundle/voiceUrl_integrity.mp3 b/star_lock/aliyun_face_plugin/ios/Products/APBToygerFacade.framework/APBToygerFacadeSuitable.bundle/voiceUrl_integrity.mp3
new file mode 100644
index 00000000..791e911c
Binary files /dev/null and b/star_lock/aliyun_face_plugin/ios/Products/APBToygerFacade.framework/APBToygerFacadeSuitable.bundle/voiceUrl_integrity.mp3 differ
diff --git a/star_lock/aliyun_face_plugin/ios/Products/APBToygerFacade.framework/APBToygerFacadeSuitable.bundle/voiceUrl_left_yaw.mp3 b/star_lock/aliyun_face_plugin/ios/Products/APBToygerFacade.framework/APBToygerFacadeSuitable.bundle/voiceUrl_left_yaw.mp3
new file mode 100644
index 00000000..78964f3a
Binary files /dev/null and b/star_lock/aliyun_face_plugin/ios/Products/APBToygerFacade.framework/APBToygerFacadeSuitable.bundle/voiceUrl_left_yaw.mp3 differ
diff --git a/star_lock/aliyun_face_plugin/ios/Products/APBToygerFacade.framework/APBToygerFacadeSuitable.bundle/voiceUrl_light.mp3 b/star_lock/aliyun_face_plugin/ios/Products/APBToygerFacade.framework/APBToygerFacadeSuitable.bundle/voiceUrl_light.mp3
new file mode 100644
index 00000000..8bb39098
Binary files /dev/null and b/star_lock/aliyun_face_plugin/ios/Products/APBToygerFacade.framework/APBToygerFacadeSuitable.bundle/voiceUrl_light.mp3 differ
diff --git a/star_lock/aliyun_face_plugin/ios/Products/APBToygerFacade.framework/APBToygerFacadeSuitable.bundle/voiceUrl_right_yaw.mp3 b/star_lock/aliyun_face_plugin/ios/Products/APBToygerFacade.framework/APBToygerFacadeSuitable.bundle/voiceUrl_right_yaw.mp3
new file mode 100644
index 00000000..084fa0a9
Binary files /dev/null and b/star_lock/aliyun_face_plugin/ios/Products/APBToygerFacade.framework/APBToygerFacadeSuitable.bundle/voiceUrl_right_yaw.mp3 differ
diff --git a/star_lock/aliyun_face_plugin/ios/Products/APBToygerFacade.framework/APBToygerFacadeSuitable.bundle/voiceUrl_stay.mp3 b/star_lock/aliyun_face_plugin/ios/Products/APBToygerFacade.framework/APBToygerFacadeSuitable.bundle/voiceUrl_stay.mp3
new file mode 100644
index 00000000..152fae07
Binary files /dev/null and b/star_lock/aliyun_face_plugin/ios/Products/APBToygerFacade.framework/APBToygerFacadeSuitable.bundle/voiceUrl_stay.mp3 differ
diff --git a/star_lock/aliyun_face_plugin/ios/Products/APBToygerFacade.framework/APBToygerFacadeSuitable.bundle/voiceUrl_too_more_face.mp3 b/star_lock/aliyun_face_plugin/ios/Products/APBToygerFacade.framework/APBToygerFacadeSuitable.bundle/voiceUrl_too_more_face.mp3
new file mode 100644
index 00000000..1bfa3867
Binary files /dev/null and b/star_lock/aliyun_face_plugin/ios/Products/APBToygerFacade.framework/APBToygerFacadeSuitable.bundle/voiceUrl_too_more_face.mp3 differ
diff --git a/star_lock/aliyun_face_plugin/ios/Products/APBToygerFacade.framework/Headers/APBToygerBaseTask.h b/star_lock/aliyun_face_plugin/ios/Products/APBToygerFacade.framework/Headers/APBToygerBaseTask.h
new file mode 100644
index 00000000..1e5af0f9
--- /dev/null
+++ b/star_lock/aliyun_face_plugin/ios/Products/APBToygerFacade.framework/Headers/APBToygerBaseTask.h
@@ -0,0 +1,76 @@
+//
+// APFBaseTask.h
+// APFaceDetectBiz
+//
+// Created by 晗羽 on 8/25/16.
+// Copyright © 2016 DTF. All rights reserved.
+//
+
+#import
+#import
+#import
+#import
+#import
+#import
+#import
+#import
+#import
+//#import "APBToygerDataCenter.h"
+#import
+#import
+
+@class DTFLogMonitor,APBToygerDataCenter;
+
+typedef void (^APFAlertExtraAction)();
+
+@interface APBToygerBaseTask : NSObject
+
+//协议定义的属性
+@property(nonatomic, copy)NSString *taskName; //任务名
+@property(nonatomic, strong)APBTaskContext *context; //任务数据
+@property(nonatomic, weak)NSMutableDictionary *pipeInfo; //共享数据
+//公用属性
+@property(nonatomic, weak)UIViewController *parentViewController; //父viewController
+@property(nonatomic, weak)APBToygerViewController *currentViewController; //当前viewController
+@property(nonatomic, weak)UIView *currentView; //当前显示的界面
+@property(nonatomic, copy)commandBlock bioCommandBlock; //对框架进行操作的block
+@property(nonatomic, strong)APBToygerRemoteConfig * bisConfig; //bis下放的配置参数
+@property(nonatomic, strong)APBToygerDataCenter * dataCenter; //行为日志
+@property(nonatomic, copy)NSString *bisToken; //bisToken
+@property(nonatomic, assign)NSInteger currentRetryCnt; //当前重试次数
+@property(nonatomic, assign)BOOL soundStatus; //当前声音状态
+//@property(nonatomic, assign)BOOL isLoginMode; //当前场景是否为登录场景
+@property(nonatomic, assign)BOOL isMYBank; //是否是网商银行
+@property(nonatomic, strong)DTFLogMonitor *monitor; //埋点
+
+- (void)exitWithResult:(APBResultType)result failReason:(NSString *)failReason retCodeSub:(NSString *)retCodeSub retMessageSub:(NSString *)retMessageSub;
+
+- (void)eventQuitWithCompletionCallback:(BioAuthExecCallback)callback;
+/**
+ * 用户选择重试
+ */
+- (void)handleRetryActionWithScene:(NSString *)scene
+ buttonTitle:(NSString *)title
+ extAction:(APFAlertExtraAction)action;
+
+/**
+ * 用户选择退出
+ */
+- (void)handleExitActionWithScene:(NSString *)scene
+ buttonTitle:(NSString *)title
+ exitReason:(APBResultType)reason
+ extAction:(APFAlertExtraAction)action;
+
+/**
+ * 用户选择继续
+ */
+- (void)handleContinueActionWithScene:(NSString *)scene
+ buttonTitle:(NSString *)title
+ extaction:(APFAlertExtraAction)action;
+
+/**
+ * 消除VC的方式,加菲和樱桃不同
+ */
+- (void)dismissViewControllerAnimated: (BOOL)flag completion:(void (^ __nullable)(void))completion;
+
+@end
diff --git a/star_lock/aliyun_face_plugin/ios/Products/APBToygerFacade.framework/Headers/APBToygerCherryDetectTask.h b/star_lock/aliyun_face_plugin/ios/Products/APBToygerFacade.framework/Headers/APBToygerCherryDetectTask.h
new file mode 100644
index 00000000..8d73e422
--- /dev/null
+++ b/star_lock/aliyun_face_plugin/ios/Products/APBToygerFacade.framework/Headers/APBToygerCherryDetectTask.h
@@ -0,0 +1,23 @@
+//
+// APFCherryDetectTask.h
+// APBToygerFacade
+//
+// Created by richard on 01/02/2018.
+// Copyright © 2018 DTF. All rights reserved.
+//
+
+#import
+#import
+#import
+#import
+#import
+
+@interface APBToygerCherryDetectTask : APBToygerBaseTask
+
+@property (nonatomic, assign) BOOL photinusFlags;
+@property (nonatomic, strong) DTFCameraService *cameraService;
+@property (nonatomic, strong) id instance; //Toyger对象
+
+- (void)onButtonCancel;
+
+@end
diff --git a/star_lock/aliyun_face_plugin/ios/Products/APBToygerFacade.framework/Headers/APBToygerCherryUploadTask.h b/star_lock/aliyun_face_plugin/ios/Products/APBToygerFacade.framework/Headers/APBToygerCherryUploadTask.h
new file mode 100644
index 00000000..33eaee81
--- /dev/null
+++ b/star_lock/aliyun_face_plugin/ios/Products/APBToygerFacade.framework/Headers/APBToygerCherryUploadTask.h
@@ -0,0 +1,26 @@
+//
+// APFCherryUploadTask.h
+// APFaceDetectBiz
+//
+// Created by yukun.tyk on 28/11/2016.
+// Copyright © 2016 DTF. All rights reserved.
+//
+
+#import
+#import
+#import
+
+typedef NS_ENUM(NSInteger, APBToygerRemoteCommand)
+{
+ APBToyger_REMOTE_COMMAND_PASS = 1001, //比对通过
+ APBToyger_REMOTE_COMMAND_CONTINUE = 1002, //需要继续采集
+ APBToyger_REMOTE_COMMAND_FAIL = 2001, //比对失败
+ APBToyger_REMOTE_COMMAND_RETRY = 2002, //需要重试
+};
+
+
+@interface APBToygerCherryUploadTask : APBToygerUploadTask
+
+- (APBToygerRemoteCommand)remoteCommandFromString:(NSString *)code;
+
+@end
diff --git a/star_lock/aliyun_face_plugin/ios/Products/APBToygerFacade.framework/Headers/APBToygerFacade.h b/star_lock/aliyun_face_plugin/ios/Products/APBToygerFacade.framework/Headers/APBToygerFacade.h
new file mode 100644
index 00000000..e320fdf1
--- /dev/null
+++ b/star_lock/aliyun_face_plugin/ios/Products/APBToygerFacade.framework/Headers/APBToygerFacade.h
@@ -0,0 +1,36 @@
+//
+// APFaceFacade.h
+// APFaceDetectBiz
+//
+// Created by 晗羽 on 8/25/16.
+// Copyright © 2016 DTF. All rights reserved.
+//
+
+#import
+#import
+
+@interface APBToygerFacade : NSObject
+
++(void)setTokenid:(NSString*)info;
++(NSString*)getTokenid;
+
+@end
+
+#import
+#import
+#import
+#import
+#import
+#import
+#import
+#import
+#import
+#import
+#import
+#import
+
+//! Project version number for APBToygerFacade.
+FOUNDATION_EXPORT double APBToygerFacadeVersionNumber;
+
+//! Project version string for APBToygerFacade.
+FOUNDATION_EXPORT const unsigned char APBToygerFacadeVersionString[];
diff --git a/star_lock/aliyun_face_plugin/ios/Products/APBToygerFacade.framework/Headers/APBToygerFacadeDefine.h b/star_lock/aliyun_face_plugin/ios/Products/APBToygerFacade.framework/Headers/APBToygerFacadeDefine.h
new file mode 100644
index 00000000..53eb575f
--- /dev/null
+++ b/star_lock/aliyun_face_plugin/ios/Products/APBToygerFacade.framework/Headers/APBToygerFacadeDefine.h
@@ -0,0 +1,130 @@
+//
+// APFCherryDefine.h
+// APBToygerFacade
+//
+// Created by shouyi.www on 27/02/2017.
+// Copyright © 2017 DTF. All rights reserved.
+//
+
+#ifndef APBToygerFacadeDefine_h
+#define APBToygerFacadeDefine_h
+
+
+static float normalized_distance(float current_value, float best_value, float range) {
+ return fabsf((current_value - best_value) / range);
+}
+
+//typedef struct toyger_status_evaluator_t {
+// float pitch;
+// float yaw;
+// float width;
+//
+// float best_pitch;
+// float best_yaw;
+// float best_width;
+// float pitch_range;
+// float yaw_range;
+// float width_range;
+// float pitch_weight;
+// float yaw_weight;
+// float width_weight;
+//
+// toyger_status_evaluator_t(float pitch_ = -0.3, float pitch_range_ = 0.7, float best_pitch_ = 0, float pitch_weight_ = 1,
+// float yaw_ = -0.6, float yaw_range_ = 0.6, float best_yaw_ = 0, float yaw_weight_ = 1,
+// float width_ = 0.2, float width_range_ = 1.2, float best_width_ = 0.7, float width_weight_ = 1){
+// pitch = pitch_;
+// yaw = yaw_;
+// width = width_;
+// pitch_range = pitch_range_;
+// yaw_range = yaw_range_;
+// width_range = width_range_;
+// best_pitch = best_pitch_;
+// best_yaw = best_yaw_;
+// best_width = best_width_;
+// pitch_weight = pitch_weight_;
+// yaw_weight = yaw_weight_;
+// width_weight = width_weight_;
+// }
+//
+// void reset(){
+// pitch = -0.3;
+// yaw = -0.6;
+// width = 0.2;
+// }
+//
+// void update(float pitch_, float yaw_, float width_) {
+// pitch = pitch_;
+// yaw = yaw_;
+// width = width_;
+// }
+//
+// float evaluateProgress(float pitch_, float yaw_, float width_){
+// return
+// (normalized_distance(pitch_, best_pitch, pitch_range) * pitch_weight +
+// normalized_distance(yaw_, best_yaw, yaw_range) * yaw_weight +
+// normalized_distance(width_, best_width, width_range) * width_weight) /
+// (pitch_weight + yaw_weight + width_weight);
+// }
+//
+// float evaluate(){
+// return 1 -
+// (normalized_distance(pitch, best_pitch, pitch_range) * pitch_weight +
+// normalized_distance(yaw, best_yaw, yaw_range) * yaw_weight +
+// normalized_distance(width, best_width, width_range) * width_weight) /
+// (pitch_weight + yaw_weight + width_weight);
+// }
+//
+//}ToygerStatusEvaluator;
+
+
+typedef struct apbtoyger_tip_evaluator_t {
+ bool pose_end;
+ bool has_face;
+ bool did_blink;
+ bool pos_okay;
+ bool quality_okay;
+ bool under_exposure;
+ bool face_width_too_small;
+ bool face_width_too_big;
+ bool integrity_fail;
+ bool yaw_fail;
+ bool pitch_fail;
+ bool tremble_fail;
+ bool did_checkSeven;
+ int tip_timer_wait_cnt;
+ bool tip_show_switch;
+ int tip_message;
+
+ apbtoyger_tip_evaluator_t(){
+ reset();
+ }
+
+ void reset(){
+ has_face = false;
+ did_blink = false;
+ pos_okay = false;
+ under_exposure = false;
+ face_width_too_small = false;
+ integrity_fail = false;
+ pitch_fail = false;
+ face_width_too_big = false;
+ yaw_fail = false;
+ tremble_fail = false;
+ tip_timer_wait_cnt = 0;
+ tip_show_switch = true;
+ did_checkSeven = false;
+ quality_okay = false;
+ pose_end = false;
+ tip_message =0;
+ }
+}APBToygerTipEvaluator;
+
+
+//UI样式
+typedef enum : NSUInteger {
+ APBToygerUIStyleFPPCherry = 991, //991 FPP樱桃(废弃)
+ APBToygerUIStyleCherry, //992 zFace樱桃
+ APBToygerUIStyleGarfield, //993 加菲
+} APBToygerUIStyle;
+
+#endif
diff --git a/star_lock/aliyun_face_plugin/ios/Products/APBToygerFacade.framework/Headers/APBToygerPresentTask.h b/star_lock/aliyun_face_plugin/ios/Products/APBToygerFacade.framework/Headers/APBToygerPresentTask.h
new file mode 100644
index 00000000..39e213e8
--- /dev/null
+++ b/star_lock/aliyun_face_plugin/ios/Products/APBToygerFacade.framework/Headers/APBToygerPresentTask.h
@@ -0,0 +1,25 @@
+//
+// APFPresentTask.h
+// APFaceDetectBiz
+//
+// Created by 晗羽 on 8/26/16.
+// Copyright © 2016 DTF. All rights reserved.
+//
+
+#import
+#import
+#import
+/**
+ * @author Skye Ying, 16-08-26 13:08:04
+ *
+ * 新建VC,启动整个view
+ */
+@interface APBToygerPresentTask : APBToygerBaseTask
+
+@property(nonatomic, strong) id faceView;
+
+-(void) postCameraPresentwithCamera:(DTFCameraService *) cameraService;
+
+-(void) presentAnimated: (BOOL)flag completion:(void (^ __nullable)(void))completion;
+
+@end
diff --git a/star_lock/aliyun_face_plugin/ios/Products/APBToygerFacade.framework/Headers/APBToygerUploadTask.h b/star_lock/aliyun_face_plugin/ios/Products/APBToygerFacade.framework/Headers/APBToygerUploadTask.h
new file mode 100644
index 00000000..26819c8d
--- /dev/null
+++ b/star_lock/aliyun_face_plugin/ios/Products/APBToygerFacade.framework/Headers/APBToygerUploadTask.h
@@ -0,0 +1,27 @@
+//
+// APBToygerUploadTask.h
+// APBToygerFacade
+//
+// Created by Dan Cong on 29/1/2018.
+// Copyright © 2018 DTF. All rights reserved.
+//
+
+#import
+
+/**
+ 上传基类,用于下沉多种UI(樱桃和加菲)下通用的逻辑
+ */
+@interface APBToygerUploadTask : APBToygerBaseTask
+
+- (void)uploadImage;
+
+- (void)didFinishUploadWithSuccess:(BOOL)success
+ retCode:(NSString *)retCode
+ retMessage:(NSString *)msg
+ extInfo:(NSString *)ext;
+
+- (void)handleFailWithRetCodeSub:(NSString *)retCodeSub retMessageSub:(NSString *)retMessageSub;
+
+- (void)requestAgain;
+
+@end
diff --git a/star_lock/aliyun_face_plugin/ios/Products/APBToygerFacade.framework/Headers/APBToygerUtils.h b/star_lock/aliyun_face_plugin/ios/Products/APBToygerFacade.framework/Headers/APBToygerUtils.h
new file mode 100644
index 00000000..d9f4d75d
--- /dev/null
+++ b/star_lock/aliyun_face_plugin/ios/Products/APBToygerFacade.framework/Headers/APBToygerUtils.h
@@ -0,0 +1,59 @@
+//
+// APFUtils.h
+// APFaceDetectBiz
+//
+// Created by 晗羽 on 8/25/16.
+// Copyright © 2016 DTF. All rights reserved.
+//
+
+#import
+#import
+
+//#import "APFaceDetectBizFacade.h"
+
+//主线程同步操作
+#define SYNC_MAINTHREAD_BEGIN_APBT [APBToygerUtils APBToygerMainThread:^{
+#define SYNC_MAINTHREAD_END_APBT }];
+
+#define LOCK(locker, ...) dispatch_semaphore_wait(locker, DISPATCH_TIME_FOREVER); \
+__VA_ARGS__; \
+dispatch_semaphore_signal(locker);
+
+@class MGLivenessDetectionFrameEncodedData;
+
+@interface APBToygerUtils : NSObject
+
++ (void)APBToygerMainThread:(dispatch_block_t)block;
+
++ (NSString *)getTextContentforKey:(NSString*)keyName;
++ (NSString *)localizedTextForKey:(NSString *)key;
++ (NSBundle *)getBundle;
+
++ (int)getCodefrom:(NSString *)bisToken withLength:(int)codeLen;
+//+ (NSString *)getActionNoticeByActionType:(APFLiveActionType) actionType;
+
+//检查文件是否存在
++ (BOOL) checkFileunderPath:(NSString *) filePath;
+
+//写入文件
+//如果文件存在,不重写,返回失败。
+//如果文件不再在,写入,返回写入结果
++ (BOOL) writeFileunderPath:(NSString *) filePath;
+
+//删除文件
++ (BOOL) removeFileunderPath:(NSString *) filePath;
+
+//随机文件名
++ (NSString *)randomString:(NSInteger)len;
+
++ (NSString *)localizedStringForKey:(NSString *)key;
+
++ (UIImage *)loadImageFromBundleNamed:(NSString *)imageName;
+
++ (UIWindow *)lastWindow;
+
+@end
+
+
+
+
diff --git a/star_lock/aliyun_face_plugin/ios/Products/APBToygerFacade.framework/Headers/APBToygerViewController.h b/star_lock/aliyun_face_plugin/ios/Products/APBToygerFacade.framework/Headers/APBToygerViewController.h
new file mode 100644
index 00000000..94053c90
--- /dev/null
+++ b/star_lock/aliyun_face_plugin/ios/Products/APBToygerFacade.framework/Headers/APBToygerViewController.h
@@ -0,0 +1,28 @@
+//
+// APFViewController.h
+// APFaceDetectBiz
+//
+// Created by 晗羽 on 8/25/16.
+// Copyright © 2016 DTF. All rights reserved.
+//
+
+#import
+#import
+#import
+#import
+
+@interface APBToygerViewController : DTFBaseViewController
+
+@property(nonatomic, strong) id faceView;
+
+- (void)startFaceRecognition:(AVCaptureVideoPreviewLayer *)layer;
+
+- (void)handleFaceStateChange:(ToygerMessage)state
+ stateTips:(NSString *)tips
+ actionGuide:(NSString *)guide
+ progress:(CGFloat)progress;
+- (void)faceDectectComplete;
+- (void)setPhotinusColor:(UIColor *)color;
+- (void)showBlur:(UIImage *)image;
+
+@end
diff --git a/star_lock/aliyun_face_plugin/ios/Products/APBToygerFacade.framework/Info.plist b/star_lock/aliyun_face_plugin/ios/Products/APBToygerFacade.framework/Info.plist
new file mode 100644
index 00000000..2ea9ebb3
Binary files /dev/null and b/star_lock/aliyun_face_plugin/ios/Products/APBToygerFacade.framework/Info.plist differ
diff --git a/star_lock/aliyun_face_plugin/ios/Products/APBToygerFacade.framework/Modules/module.modulemap b/star_lock/aliyun_face_plugin/ios/Products/APBToygerFacade.framework/Modules/module.modulemap
new file mode 100644
index 00000000..f34493fa
--- /dev/null
+++ b/star_lock/aliyun_face_plugin/ios/Products/APBToygerFacade.framework/Modules/module.modulemap
@@ -0,0 +1,6 @@
+framework module APBToygerFacade {
+ umbrella header "APBToygerFacade.h"
+
+ export *
+ module * { export * }
+}
diff --git a/star_lock/aliyun_face_plugin/ios/Products/APPSecuritySDK.framework/APPSecuritySDK b/star_lock/aliyun_face_plugin/ios/Products/APPSecuritySDK.framework/APPSecuritySDK
new file mode 100644
index 00000000..24f8be22
Binary files /dev/null and b/star_lock/aliyun_face_plugin/ios/Products/APPSecuritySDK.framework/APPSecuritySDK differ
diff --git a/star_lock/aliyun_face_plugin/ios/Products/APPSecuritySDK.framework/APPSecuritySDK-Info.plist b/star_lock/aliyun_face_plugin/ios/Products/APPSecuritySDK.framework/APPSecuritySDK-Info.plist
new file mode 100644
index 00000000..01af302e
Binary files /dev/null and b/star_lock/aliyun_face_plugin/ios/Products/APPSecuritySDK.framework/APPSecuritySDK-Info.plist differ
diff --git a/star_lock/aliyun_face_plugin/ios/Products/APPSecuritySDK.framework/Headers/APDID.h b/star_lock/aliyun_face_plugin/ios/Products/APPSecuritySDK.framework/Headers/APDID.h
new file mode 100644
index 00000000..463c6392
--- /dev/null
+++ b/star_lock/aliyun_face_plugin/ios/Products/APPSecuritySDK.framework/Headers/APDID.h
@@ -0,0 +1,122 @@
+//
+// APDID.h
+// APPSecuritySDK
+//
+// Created by eric on 2021/2/7.
+// Copyright © 2021 Alipay. All rights reserved.
+//
+
+#import
+#import "ASSTokenResult.h"
+
+NS_ASSUME_NONNULL_BEGIN
+
+typedef void(^ASSSecureSdkCallback)(ASSTokenResult* result, NSString* error);
+
+typedef void(^ASSSecureSdkOpenCallback)(NSString* token, int errorCode);
+
+@interface APDID : NSObject
+
+/*
+ 异步初始化vkeyid,推荐在app启动时和收银台页面加载时调用,SDK内部会根据时间戳和设备信息进行判断是否需要进行网络请求,无线程要求
+ @param params 初始化的字典参数,包含三项内容:tid、userid、environment;
+ tid与userid选传,传入可以保证vkeyid与其正确关联,取不到传入空字符串;
+ 环境变量请与app设置中的环境相关联,字典中的value包括线上,预发,测试,日常;
+ @param callback 初始化完成后的结果回调
+
+ Asynchronously initialize vkeyid(apdid), recommend to invoke this API when app launches, and cashier view presents.
+ Inside SDK we will decide whether to launch network request or not based on timestamp and device info.
+ No thread requirement.
+ @param params: Initialized parameters, includes 3 key-value pairs: tid, userid,environment;
+ Tid and userid are optional, they can be associated with vkeyid(apdid) if passed in.
+ If the values for tid and userid are not available, pass in empty NSString(@"").
+ @param callback: Callback block when token is available
+ */
++ (void) initToken:(NSDictionary*)params callback:(ASSSecureSdkCallback)callback;
+
+/*
+ 同步获取vkeyid完整信息,包括vkeyid,token,clientkey,无网络请求;
+ 如果首次安装app,且首次网络请求未完成或失败,将会返回降级措施:vkeyid会返回客户端随机串clientkey,token将会返回空。
+
+ Synchronously get full info of vkeyid(apdid), token and clientkey, no network requests.
+ If the app is installed for the first time and first network request failed, it would return degradation result: vkeyid would be clientkey which is a client-side generated random string, token would be empty NSString @""
+ */
++ (ASSTokenResult*)getToken DEPRECATED_MSG_ATTRIBUTE("use getTokenResult instead");
+
+/*
+ 同步获取vkeyid完整信息,包括vkeyid,token,clientkey,无网络请求;
+ 如果首次安装app,且首次网络请求未完成或失败,将会返回降级措施:vkeyid会返回客户端随机串clientkey,token将会返回空。
+
+ Synchronously get full info of vkeyid(apdid), token and clientkey, no network requests.
+ If the app is installed for the first time and first network request failed, it would return degradation result: vkeyid would be clientkey which is a client-side generated random string, token would be empty NSString @""
+ */
++ (ASSTokenResult*)getTokenResult;
+
+
++ (ASSTokenResult *)getTokenResult:(NSString*)appName appKeyClient:(NSString*)appKeyClient;
+
+
+//===================lazada api====================//
+
+/*
+ 异步初始化vkeyid,推荐在app启动时和收银台页面加载时调用,SDK内部会根据时间戳和设备信息进行判断是否需要进行网络请求,无线程要求
+ @param appName 应用名称
+
+ @param appKeyClient 应用客户端密钥
+
+ @param callback 初始化完成后的结果回调,以Token作为参数
+
+ */
++ (void)initToken:(NSString *)appName appKeyClient:(NSString *)appKeyClient callback:(ASSSecureSdkOpenCallback)callback;
+
+/*
+ 同步接口返回token
+
+ @param appName 应用名称
+
+ @param appKeyClient 应用客户端密钥
+
+ */
++ (NSString *)getResultToken;
+
+/*
+ 同步接口返回token
+
+ @param appName 应用名称
+
+ @param appKeyClient 应用客户端密钥
+
+ */
++ (NSString *)getResultToken:(NSString*)appName appKeyClient:(NSString*)appKeyClient;
+
+//===================TMN api====================//
+/*
+ 异步初始化vkeyid,推荐在app启动时和收银台页面加载时调用,SDK内部会根据时间戳和设备信息进行判断是否需要进行网络请求,无线程要求
+ @param appName 应用名称
+
+ @param appKeyClient 应用客户端密钥
+
+ @param sessionId 业务方传入自己的id
+
+ @param callback 初始化完成后的结果回调,以Token作为参数
+
+ */
+
++ (void)initToken:(NSString *)appName appKeyClient:(NSString *)appKeyClient sessionId:(NSString *)sessionId callback:(ASSSecureSdkOpenCallback)callback;
+
+
+//===================ae api====================//
+
+/*
+ 强制上报接口
+ @param params 初始化的字典参数,包含四项内容:umid、tid、userid、environment;
+ umid必传,tid与userid选传,传入可以保证vkeyid与其正确关联,取不到传入空字符串;
+ 环境变量请与app设置中的环境相关联,字典中的value包括线上,预发,测试,日常;
+ @param callback 初始化完成后的结果回调
+
+ */
++ (void) updateToken:(NSDictionary*)params callback:(ASSSecureSdkCallback)callback;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/star_lock/aliyun_face_plugin/ios/Products/APPSecuritySDK.framework/Headers/APDeviceColor.h b/star_lock/aliyun_face_plugin/ios/Products/APPSecuritySDK.framework/Headers/APDeviceColor.h
new file mode 100644
index 00000000..677045fc
--- /dev/null
+++ b/star_lock/aliyun_face_plugin/ios/Products/APPSecuritySDK.framework/Headers/APDeviceColor.h
@@ -0,0 +1,41 @@
+//
+// APDeviceColor.h
+// APPSecuritySDK
+//
+// Created by eric on 2021/2/25.
+// Copyright © 2021 Alipay. All rights reserved.
+//
+
+#import
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface APDeviceColor : NSObject
+
+/*
+* getColorLabel 设备染色接口
+*
+* @param bizToken 业务场景
+* @param extParams 扩展参数
+* @param errInfo 错误信息
+*
+* @return 设备染色数据
+*/
++ (NSString*) getColorLabel: (NSString*) bizToken
+ ext: (NSDictionary *) extParams
+ error: (NSError **) errInfo;
+
+/*
+* getColorLabel 设备染色接口
+*
+* @param extParams 扩展参数
+* @param errInfo 错误信息
+*
+* @return 设备染色数据
+*/
++ (NSString*) getColorLabel: (NSDictionary *) extParams
+ error: (NSError **) errInfo;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/star_lock/aliyun_face_plugin/ios/Products/APPSecuritySDK.framework/Headers/APDynamic.h b/star_lock/aliyun_face_plugin/ios/Products/APPSecuritySDK.framework/Headers/APDynamic.h
new file mode 100644
index 00000000..8caaf9d9
--- /dev/null
+++ b/star_lock/aliyun_face_plugin/ios/Products/APPSecuritySDK.framework/Headers/APDynamic.h
@@ -0,0 +1,32 @@
+//
+// APDynamic.h
+// APPSecuritySDK-Sign
+//
+// Created by eric on 2021/2/25.
+// Copyright © 2021 Alipay. All rights reserved.
+//
+
+#import
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface APDynamic : NSObject
+
+/*
+* dynamicCheckDispatch 动态攻防脚本运行
+*
+* @param dict 动态攻防脚本
+*/
++ (void)dynamicCheckDispatch:(NSDictionary *)dict;
+
+/*
+* dynamicCheckDispatch 动态攻防脚本运行,动态攻防脚本运行后会自动上传, 无特殊需求不建议
+*
+* @param dict 动态攻防脚本
+* @param callback 运行结果回调
+*/
++ (void)dynamicCheckDispatch:(NSDictionary *)dict withCallBack: (void(^)(Boolean, NSString *))callback;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/star_lock/aliyun_face_plugin/ios/Products/APPSecuritySDK.framework/Headers/APRiskConfigReportRequest.h b/star_lock/aliyun_face_plugin/ios/Products/APPSecuritySDK.framework/Headers/APRiskConfigReportRequest.h
new file mode 100644
index 00000000..415bf06b
--- /dev/null
+++ b/star_lock/aliyun_face_plugin/ios/Products/APPSecuritySDK.framework/Headers/APRiskConfigReportRequest.h
@@ -0,0 +1,21 @@
+//
+// APRiskConfigReportRequest.h
+// APPSecuritySDK-Common
+//
+// Created by eric on 2021/8/16.
+// Copyright © 2021 Alipay. All rights reserved.
+//
+
+#import
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface APRiskConfigReportRequest : NSObject
+
+@property(nonatomic, strong) NSString* os;
+@property(nonatomic, strong) NSString* apdid;
+@property(nonatomic, strong) NSDictionary* deviceDataMap;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/star_lock/aliyun_face_plugin/ios/Products/APPSecuritySDK.framework/Headers/APRiskConfigReportResponse.h b/star_lock/aliyun_face_plugin/ios/Products/APPSecuritySDK.framework/Headers/APRiskConfigReportResponse.h
new file mode 100644
index 00000000..99b4bf43
--- /dev/null
+++ b/star_lock/aliyun_face_plugin/ios/Products/APPSecuritySDK.framework/Headers/APRiskConfigReportResponse.h
@@ -0,0 +1,19 @@
+//
+// APRiskConfigReportResponse.h
+// APPSecuritySDK-Common
+//
+// Created by eric on 2021/8/16.
+// Copyright © 2021 Alipay. All rights reserved.
+//
+
+#import
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface APRiskConfigReportResponse : NSObject
+
+@property(nonatomic, strong) NSDictionary* resultData;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/star_lock/aliyun_face_plugin/ios/Products/APPSecuritySDK.framework/Headers/APRiskConfigServiceProtocol.h b/star_lock/aliyun_face_plugin/ios/Products/APPSecuritySDK.framework/Headers/APRiskConfigServiceProtocol.h
new file mode 100644
index 00000000..71461a84
--- /dev/null
+++ b/star_lock/aliyun_face_plugin/ios/Products/APPSecuritySDK.framework/Headers/APRiskConfigServiceProtocol.h
@@ -0,0 +1,20 @@
+//
+// APRiskConfigServiceProtocol.h
+// APPSecuritySDKAdapter
+//
+// Created by hongren on 2020/9/7.
+// Copyright © 2020 Alipay. All rights reserved.
+//
+#import "APRiskSyncHandlerProtocol.h"
+
+@protocol APRiskConfigServiceProtocol
+
+@required
+- (NSString *)stringValueForKey:(NSString *)key;
+
+- (void)addConfigChangeListener:(id)handler forKey:(NSString *)key;
+
+- (void)refreshConfig:(NSDictionary *)tConfigMap from:(NSString *)sourceType;
+
+@end
+
diff --git a/star_lock/aliyun_face_plugin/ios/Products/APPSecuritySDK.framework/Headers/APRiskFileUploadProtocol.h b/star_lock/aliyun_face_plugin/ios/Products/APPSecuritySDK.framework/Headers/APRiskFileUploadProtocol.h
new file mode 100644
index 00000000..7d5c150e
--- /dev/null
+++ b/star_lock/aliyun_face_plugin/ios/Products/APPSecuritySDK.framework/Headers/APRiskFileUploadProtocol.h
@@ -0,0 +1,14 @@
+//
+// APRiskFileUploadProtocol.h
+// APPSecuritySDKAdapter
+//
+// Created by hongren on 2020/9/7.
+// Copyright © 2020 Alipay. All rights reserved.
+//
+
+@protocol APRiskFileUploadProtocol
+
+@required
+- (NSString *)uploadCustomFile:(NSString *)path;
+
+@end
diff --git a/star_lock/aliyun_face_plugin/ios/Products/APPSecuritySDK.framework/Headers/APRiskLoggerProtocol.h b/star_lock/aliyun_face_plugin/ios/Products/APPSecuritySDK.framework/Headers/APRiskLoggerProtocol.h
new file mode 100644
index 00000000..eb8dd700
--- /dev/null
+++ b/star_lock/aliyun_face_plugin/ios/Products/APPSecuritySDK.framework/Headers/APRiskLoggerProtocol.h
@@ -0,0 +1,21 @@
+//
+// APRiskLoggerProtocol.h
+// APPSecuritySDK-Common
+//
+// Created by eric on 2021/6/25.
+// Copyright © 2021 Alipay. All rights reserved.
+//
+
+#import
+
+NS_ASSUME_NONNULL_BEGIN
+
+@protocol APRiskLoggerProtocol
+
+@required
+
+-(void)print:(NSString *)format, ...NS_REQUIRES_NIL_TERMINATION;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/star_lock/aliyun_face_plugin/ios/Products/APPSecuritySDK.framework/Headers/APRiskRPCProtocol.h b/star_lock/aliyun_face_plugin/ios/Products/APPSecuritySDK.framework/Headers/APRiskRPCProtocol.h
new file mode 100644
index 00000000..eae9fd3e
--- /dev/null
+++ b/star_lock/aliyun_face_plugin/ios/Products/APPSecuritySDK.framework/Headers/APRiskRPCProtocol.h
@@ -0,0 +1,30 @@
+//
+// APRiskRPCProtocol.h
+// APPSecuritySDKAdapter
+//
+// Created by hongren on 2020/9/7.
+// Copyright © 2020 Alipay. All rights reserved.
+//
+
+#import "APRiskReportRequest.h"
+#import "APRiskReportResponse.h"
+#import "APRiskRpcConfiguration.h"
+#import "APRiskConfigReportRequest.h"
+#import "APRiskConfigReportResponse.h"
+
+@protocol APRiskRPCProtocol
+//gateway
+
+@required
+- (APRiskReportResponse *)sendStaticRequest:(APRiskReportRequest *)data
+ config:(APRiskRpcConfiguration*)cfg;
+
+@required
+- (APRiskConfigReportResponse *)sendConfigReportRequest:(APRiskConfigReportRequest *)data
+ config:(APRiskRpcConfiguration*)cfg;
+
+@required
+- (BOOL)updateLog:(NSString*)log
+ config:(APRiskRpcConfiguration*)cfg;
+
+@end
diff --git a/star_lock/aliyun_face_plugin/ios/Products/APPSecuritySDK.framework/Headers/APRiskRemoteLoggerProtocol.h b/star_lock/aliyun_face_plugin/ios/Products/APPSecuritySDK.framework/Headers/APRiskRemoteLoggerProtocol.h
new file mode 100644
index 00000000..aa0025c8
--- /dev/null
+++ b/star_lock/aliyun_face_plugin/ios/Products/APPSecuritySDK.framework/Headers/APRiskRemoteLoggerProtocol.h
@@ -0,0 +1,29 @@
+//
+// APRiskRemoteLoggerProtocol.h
+// APPSecuritySDKAdapter
+//
+// Created by hongren on 2020/9/7.
+// Copyright © 2020 Alipay. All rights reserved.
+//
+
+@protocol APRiskRemoteLoggerProtocol
+
+@required
+- (void)writeLogWithActionId:(NSString *)event
+ extParams:(NSArray *)args
+ appId:(NSString *)appId
+ seed:(NSString *)seed
+ ucId:(NSString *)ucId;
+
+@required
+- (void)writeLogWithActionId:(NSString *)event
+ extParams:(NSArray *)args
+ appId:(NSString *)appId
+ seed:(NSString *)seed
+ ucId:(NSString *)ucId
+ bizType:(NSString *)bizType;
+
+@required
+- (void)writeEventLog:(NSDictionary *)dict;
+
+@end
diff --git a/star_lock/aliyun_face_plugin/ios/Products/APPSecuritySDK.framework/Headers/APRiskReportRequest.h b/star_lock/aliyun_face_plugin/ios/Products/APPSecuritySDK.framework/Headers/APRiskReportRequest.h
new file mode 100644
index 00000000..96cdcc5c
--- /dev/null
+++ b/star_lock/aliyun_face_plugin/ios/Products/APPSecuritySDK.framework/Headers/APRiskReportRequest.h
@@ -0,0 +1,68 @@
+//
+// APRiskReportRequest.h
+// APPSecuritySDK
+//
+// Created by hongren on 2020/9/7.
+// Copyright © 2020 Alipay. All rights reserved.
+//
+
+#import
+
+@interface APRiskReportRequest : NSObject
+
+/**
+* os type: android|ios"
+*/
+
+ @property(nonatomic, strong) NSString *os;
+ /**
+* device id for ios for static report, or device id for dynamic report both for ios and android
+*/
+
+ @property(nonatomic, strong) NSString *apdid;
+ /**
+* public region device id for android for static report
+*/
+
+ @property(nonatomic, strong) NSString *pubApdid;
+ /**
+* private region device id for android for static report
+*/
+
+ @property(nonatomic, strong) NSString *priApdid;
+ /**
+* apdid token
+*/
+
+ @property(nonatomic, strong) NSString *token;
+ /**
+* umid token
+*/
+
+ @property(nonatomic, strong) NSString *umidToken;
+ /**
+* rpc version
+*/
+
+ @property(nonatomic, strong) NSString *version;
+ /**
+* last apdid time (create time)
+*/
+
+ @property(nonatomic, strong) NSString *lastTime;
+
+ /**
+ * dynamicKey
+ */
+ @property(nonatomic,strong) NSString* dynamicKey;
+ /**
+* device info map
+*/
+
+ @property(nonatomic, strong) NSDictionary *dataMap;
+ + (Class)dataMapElementClass;
+
+ @property(nonatomic,strong) NSDictionary *bizData;
+ + (Class)bizDataElementClass;
+
+@end
diff --git a/star_lock/aliyun_face_plugin/ios/Products/APPSecuritySDK.framework/Headers/APRiskReportResponse.h b/star_lock/aliyun_face_plugin/ios/Products/APPSecuritySDK.framework/Headers/APRiskReportResponse.h
new file mode 100644
index 00000000..d61c1bbf
--- /dev/null
+++ b/star_lock/aliyun_face_plugin/ios/Products/APPSecuritySDK.framework/Headers/APRiskReportResponse.h
@@ -0,0 +1,65 @@
+//
+// APRiskReportResponse.h
+// APPSecuritySDK
+//
+// Created by hongren on 2020/9/7.
+// Copyright © 2020 Alipay. All rights reserved.
+//
+
+#import
+
+@interface APRiskReportResponse : NSObject
+
+/**
+ * success or not
+ */
+
+ @property(nonatomic, assign) BOOL success;
+ /**
+ * result code
+ */
+
+ @property(nonatomic, strong) NSString *resultCode;
+
+/**
+* device id
+*/
+
+ @property(nonatomic, strong) NSString *apdid;
+ /**
+* apdid token
+*/
+
+ @property(nonatomic, strong) NSString *token;
+ /**
+* current apdid time (create time)
+*/
+
+ @property(nonatomic, strong) NSString *currentTime;
+ /**
+* rpc version
+*/
+
+ @property(nonatomic, strong) NSString *version;
+ /**
+* switch for vkey
+*/
+
+ @property(nonatomic, strong) NSString *vkeySwitch;
+ /**
+* switch for BugTrack
+*/
+
+ @property(nonatomic, strong) NSString *bugTrackSwitch;
+ /**
+* version for applist cmd
+*/
+
+ @property(nonatomic, strong) NSString *appListVer;
+
+ @property(nonatomic, strong) NSString *dynamicKey;
+
+ @property(nonatomic, strong) NSDictionary *resultData;
+ + (Class)resultDataElementClass;
+
+@end
diff --git a/star_lock/aliyun_face_plugin/ios/Products/APPSecuritySDK.framework/Headers/APRiskRpcConfiguration.h b/star_lock/aliyun_face_plugin/ios/Products/APPSecuritySDK.framework/Headers/APRiskRpcConfiguration.h
new file mode 100644
index 00000000..98e746ef
--- /dev/null
+++ b/star_lock/aliyun_face_plugin/ios/Products/APPSecuritySDK.framework/Headers/APRiskRpcConfiguration.h
@@ -0,0 +1,20 @@
+//
+// APRiskRpcConfiguration.h
+// APPSecuritySDKAdapter
+//
+// Created by hongren on 2020/9/8.
+// Copyright © 2020 Alipay. All rights reserved.
+//
+#import
+
+@interface APRiskRpcConfiguration : NSObject
+// 超时时间
+@property(nonatomic, assign) int timeout;
+
+// 网关地址
+@property(nonatomic, strong) NSString* gatewayURL;
+
+// workspaceid和appid
+@property(nonatomic, strong) NSDictionary *headers;
+
+@end
diff --git a/star_lock/aliyun_face_plugin/ios/Products/APPSecuritySDK.framework/Headers/APRiskSyncHandlerProtocol.h b/star_lock/aliyun_face_plugin/ios/Products/APPSecuritySDK.framework/Headers/APRiskSyncHandlerProtocol.h
new file mode 100644
index 00000000..da99a141
--- /dev/null
+++ b/star_lock/aliyun_face_plugin/ios/Products/APPSecuritySDK.framework/Headers/APRiskSyncHandlerProtocol.h
@@ -0,0 +1,21 @@
+//
+// APRiskSyncHandlerProtocol.h
+// APPSecuritySDK
+//
+// Created by eric on 2020/10/15.
+// Copyright © 2020 Alipay. All rights reserved.
+//
+
+#import
+
+NS_ASSUME_NONNULL_BEGIN
+
+@protocol APRiskSyncHandlerProtocol
+
+@required
+
+-(void) handleWithBizType: (NSString *) bizType andData: (NSString *) data;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/star_lock/aliyun_face_plugin/ios/Products/APPSecuritySDK.framework/Headers/APRiskSyncServiceProtocol.h b/star_lock/aliyun_face_plugin/ios/Products/APPSecuritySDK.framework/Headers/APRiskSyncServiceProtocol.h
new file mode 100644
index 00000000..bb6cbde2
--- /dev/null
+++ b/star_lock/aliyun_face_plugin/ios/Products/APPSecuritySDK.framework/Headers/APRiskSyncServiceProtocol.h
@@ -0,0 +1,28 @@
+//
+// APRiskSyncServiceProtocol.h
+// APPSecuritySDK
+//
+// Created by eric on 2020/10/15.
+// Copyright © 2020 Alipay. All rights reserved.
+//
+
+#import
+#import "APRiskSyncHandlerProtocol.h"
+
+NS_ASSUME_NONNULL_BEGIN
+
+static NSString* const kEdgeBizTypeGlobal = @"EDGE-GLOBAL";
+static NSString* const kEdgeBizTypeSingle = @"EDGE-SINGLE";
+static NSString* const kEdgeBizTypeUid = @"EDGE-SINGLE-USER";
+static NSString* const kEdgeBizTypeSyncDegradeToConfig = @"EDGE-SYNC-DEGRADE-TO-CONFIG";
+
+@protocol APRiskSyncServiceProtocol
+
+@required
+
+-(void) registerHandler:(id)handler;
+-(void) registerSyncBiz;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/star_lock/aliyun_face_plugin/ios/Products/APPSecuritySDK.framework/Headers/APSecRDS.h b/star_lock/aliyun_face_plugin/ios/Products/APPSecuritySDK.framework/Headers/APSecRDS.h
new file mode 100644
index 00000000..558a7e1a
--- /dev/null
+++ b/star_lock/aliyun_face_plugin/ios/Products/APPSecuritySDK.framework/Headers/APSecRDS.h
@@ -0,0 +1,41 @@
+//
+// APSecRDS.h
+// APSecRDS
+//
+// Created by xingchen on 15/4/8.
+// Copyright (c) 2015年 Alipay. All rights reserved.
+//
+
+#import
+#import
+
+@interface APSecRDS : NSObject
+
+/*
+ appname 当前app的名称
+ appver 当前app的版本
+ sdkname 当前sdk的名称
+ sdkver 当前sdk的版本
+ user 淘宝/支付宝身份
+ pagesrc 淘宝/支付宝
+ page 当前页面标识
+
+ */
+-(void) onPageWithView:(NSString*)pageName args:(NSDictionary*) inArgs;
+-(NSString*) onPageEndWithView:(NSString*) pageName user:(NSString*) userName;
+-(NSString*) onPageEndZipDataWithView:(NSString*)pageName user:(NSString*)userName;
+
+-(void) onControlClickWithView:(NSString*) pageName ctrl: (NSString*)ctrlName;
+
+//按键信息
+-(void) onKeyDownWithView:(NSString*) pageName ctrl:(NSString*) ctrlName keyCode:(NSString*)keyValue;
+
+//焦点信息
+-(void) onGetFocusWithView:(NSString*)pageName ctrl:(NSString*) ctrlName;
+-(void) onLostFocusWithView:(NSString*) pageName ctrl:(NSString*) ctrlName;
+
+//触屏信息
+-(void) onTouchScreenWithView:(NSString*)pageName ctrl:(NSString*) ctrlName point:(CGPoint) pt;
+
+
+@end
diff --git a/star_lock/aliyun_face_plugin/ios/Products/APPSecuritySDK.framework/Headers/APSecStore.h b/star_lock/aliyun_face_plugin/ios/Products/APPSecuritySDK.framework/Headers/APSecStore.h
new file mode 100644
index 00000000..4e6c0279
--- /dev/null
+++ b/star_lock/aliyun_face_plugin/ios/Products/APPSecuritySDK.framework/Headers/APSecStore.h
@@ -0,0 +1,48 @@
+//
+// APSecStore.h
+// APPSecuritySDK
+//
+// Created by eric on 2021/3/10.
+// Copyright © 2021 Alipay. All rights reserved.
+//
+
+#import
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface APSecStore : NSObject
+
+/*
+ *功能: 从keychain中载入字符串
+ *线程安全: 是
+ *可重入: 是
+ *@return: 成功返回key对应字符串,失败返回nil
+ *@param key:不能为nil
+ *@param error:失败时保存错误信息
+ */
++(NSString*) loadKey:(NSString*) key error:(NSError **)error;
+
+/*
+ *功能: 将字符串(键-值对)存入keychain
+ *线程安全: 是
+ *可重入: 是
+ *@return: 成功返回yes,失败返回no
+ *@param key:不能为nil
+ *@param value:不能为nil
+ *@param error:失败时保存错误信息
+ */
++(BOOL) saveKey:(NSString*) key Value:(NSString*)value error:(NSError **)error;
+
+/*
+ *功能: 从keychain中删除字符串(键-值对)
+ *线程安全: 是
+ *可重入: 是
+ *@return: 成功返回yes,失败返回no
+ *@param key:不能为nil
+ *@param error:失败时保存错误信息
+ */
++(BOOL) deleteKey:(NSString*) key error:(NSError **)error;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/star_lock/aliyun_face_plugin/ios/Products/APPSecuritySDK.framework/Headers/APSecureSdk.h b/star_lock/aliyun_face_plugin/ios/Products/APPSecuritySDK.framework/Headers/APSecureSdk.h
new file mode 100644
index 00000000..90c7acec
--- /dev/null
+++ b/star_lock/aliyun_face_plugin/ios/Products/APPSecuritySDK.framework/Headers/APSecureSdk.h
@@ -0,0 +1,113 @@
+//
+// ASSSecureSdk.h
+// APSecSecuritySDK
+//
+// Created by xingchen on 15/2/26.
+// Copyright (c) 2015年 Alipay. All rights reserved.
+//
+#import
+
+//初始化API的字典参数中,TID的key
+//key for TID in the NSDictionary parameter for initToken:callback: API
+extern NSString * const ASS_TID;
+
+//初始化API的字典参数中,userid的key
+//key for USERID in the NSDictionary parameter for initToken:callback: API
+extern NSString * const ASS_USERID;
+
+//初始化API的字典参数中,环境变量的key
+//key for server environment configuration in the NSDictionary parameter for initToken:callback: API
+extern NSString * const ASS_ENVIRONMENT;
+
+//初始化API的字典参数中,环境变量的value,代表线上环境
+//value for server configuration in the NSDictionary parameter for initToken:callback: API, stands for online environment
+extern NSString * const ASS_ENVIRONMENT_ONLINE;
+
+//初始化API的字典参数中,环境变量的value,代表测试环境
+//value for server configuration in the NSDictionary parameter for initToken:callback: API, stands for test environment
+extern NSString * const ASS_ENVIRONMENT_SIT;
+
+//初始化API的字典参数中,环境变量的value,代表开发环境
+//value for server configuration in the NSDictionary parameter for initToken:callback: API, stands for daily environment
+extern NSString * const ASS_ENVIRONMENT_DAILY;
+
+//初始化API的字典参数中,环境变量的value,代表预发环境
+//value for server configuration in the NSDictionary parameter for initToken:callback: API, stands for pre online environment
+extern NSString * const ASS_ENVIRONMENT_PRE;
+
+//初始化API的字典参数中,设置RPC网关地址的key。
+//key for RPC server gateway address in the NSDictionary parameter for initToken:callback: API.
+//If value for this key is specified, the value for ASS_ENVIRONMENT will be ignored.
+extern NSString* const ASS_RPC_GATEWAY_ADDR;
+
+//rpc header workspaceid key
+extern NSString* const ASS_RPC_WORKSPACEID;
+
+//rpc header appid key
+extern NSString* const ASS_RPC_APPID;
+
+//初始化API的字典参数中,设置UMID网关host地址的key。
+//host 要设置的线上地址,如ynuf.alipay.com,不要带协议头,不要带后面的参数,只能传纯host地址
+//key for UMID server host in the NSDictionary parameter for initToken:callback: API.
+//host should only contain online address such as ynuf.alipay.com, without protocol or parameters.
+extern NSString* const ASS_UMID_HOST;
+
+//初始化API的字典参数中,设置加密的umid。
+extern NSString * const ASS_ENCODE_UMID;
+
+/*!
+ @typedef ASSStatusCode
+
+ Possible return codes
+ @constant ASSStatusCodeOk Completed, No errors
+ @constant ASSStatusCodeInvalidParam input param invalid
+ @constant ASSStatusCodeAppNameNil appName is nil
+ @constant ASSStatusCodeAppKeyNil appKeyClient is nil
+ @constant ASSStatusCodeConnectionError network connection failure
+ */
+typedef NS_ENUM(NSInteger, ASSStatusCode)
+{
+ ASSStatusCodeOk = 0,
+ ASSStatusCodeInvalidParam,
+ ASSStatusCodeAppNameNil,
+ ASSStatusCodeAppKeyNil,
+ ASSStatusCodeConnectionError,
+
+};
+
+typedef NS_ENUM(NSInteger, ASSAddressFlag)
+{
+ ASSAddressFlagIndonesia = 1,
+ ASSAddressFlagMalaysia = 2,
+ ASSAddressFlagPilipinas = 3,
+ ASSAddressFlagSingapore = 4,
+ ASSAddressFlagIpayVn = 11,
+ ASSAddressFlagIpayId = 12,
+ ASSAddressFlagIpayMy = 13,
+ ASSAddressFlagIpaySg = 14,
+ ASSAddressFlagIpayTh = 15,
+ ASSAddressFlagIpayPh = 16,
+ ASSAddressFlagIpayDefault = 17,
+};
+
+@interface APSecureSdk : NSObject
+
+/**
+ 获取单例
+ */
++ (id)sharedInstance;
+
+/*
+ *网关设置
+ */
+- (void)setSecuritySDKConfig:(ASSAddressFlag)address;
+
+/**
+ 初始化
+ */
+- (void)initWithRpcConfiguration:(NSDictionary *) config;
+
+//===================测试联调 api====================//
+- (void)setRpcConfiguration:(NSDictionary *) config;
+
+@end
diff --git a/star_lock/aliyun_face_plugin/ios/Products/APPSecuritySDK.framework/Headers/APSign.h b/star_lock/aliyun_face_plugin/ios/Products/APPSecuritySDK.framework/Headers/APSign.h
new file mode 100644
index 00000000..23295a84
--- /dev/null
+++ b/star_lock/aliyun_face_plugin/ios/Products/APPSecuritySDK.framework/Headers/APSign.h
@@ -0,0 +1,61 @@
+//
+// APSign.h
+// APPSecuritySDK-Sign
+//
+// Created by eric on 2021/2/25.
+// Copyright © 2021 Alipay. All rights reserved.
+//
+
+#import
+
+NS_ASSUME_NONNULL_BEGIN
+
+extern NSString * const APSE_SIGN_MODE_NORMAL;
+extern NSString * const APSE_SIGN_MODE_ENHANCE;
+extern NSString * const APSE_SIGN_MODE_NORMAL_ASYNC;
+extern NSString * const APSE_SIGN_MODE_ENHANCE_ASYNC;
+
+@interface APSign : NSObject
+
+/*
+* getColorInfo 请求可信接口,获取数字签名
+*
+* @param bizToken 业务场景
+* @param bizParam 业务参数
+* @param extParams 扩展参数
+* @param errInfo 错误信息
+*
+* @return 数字签名数据
+*/
++ (NSString*) getColorInfo: (NSString*) bizToken
+ param: (NSString*) bizParam
+ ext: (NSDictionary*) extParams
+ error: (NSError **) errInfo;
+
+/*
+* preColorInfo 签名数据预处理接口,用于不同业务定制签名携带数据
+*
+* @param userAction 当前动作,由业务定制的行为事件
+* @param extParams 业务参数,格式需要与内部对齐
+*
+* @return 预处理数据
+*/
++ (NSString*) preColorInfo: (int) userAction
+ ext: (NSDictionary*) extParams
+ error: (NSError **) errInfo;
+
+/*
+* preColorInfo 签名数据预处理接口,用于不同业务定制签名携带数据
+*
+* @param userAction 当前动作,由业务定制的行为事件
+* @param extParams 业务参数,格式需要与内部对齐
+*
+* @return 预处理数据
+*/
++ (NSString*) preColorInfoForString: (int) userAction
+ ext: (NSString*) extParams
+ error: (NSError **) errInfo;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/star_lock/aliyun_face_plugin/ios/Products/APPSecuritySDK.framework/Headers/ASSCommon.h b/star_lock/aliyun_face_plugin/ios/Products/APPSecuritySDK.framework/Headers/ASSCommon.h
new file mode 100644
index 00000000..483e0064
--- /dev/null
+++ b/star_lock/aliyun_face_plugin/ios/Products/APPSecuritySDK.framework/Headers/ASSCommon.h
@@ -0,0 +1,234 @@
+//
+// ASSCommon.h
+// ae-security-sdk
+//
+// Created by xingchen on 14/12/30.
+// Copyright (c) 2014年 Alipay. All rights reserved.
+//
+
+#import
+#import "ASSLogger.h"
+
+//#define IN_DEBUG
+#define USED_BY_ALIPAY
+
+static NSErrorDomain APSECURITYSDK_ERROR_DOMAIN = @"APSecuritySDKErrorDomain";
+
+static NSString* const PRIVATE_KEY_XXXX = @"qqAIhzy)H)ip53<>ugx,sI{#}CE$37L|z5G=IScgO^=aQHaN[b|NM.RWdZpcy.r$";
+
+static NSString* const PRIVATE_KEY_CLIENTKEY = @"EQopzyui)H)ipQW983uitx,sgI{#}##20110kl==^^woQG,msq.xinjun.$$";
+
+static NSString* const LOG_SWITCH_SETTING_INITIALIZED = @"开关设置从keychain初始化成功";
+
+static NSString* const LOG_LOAD_SETTING_EXCEPTION = @"开关设置在keychain中无存储,读取失败";
+
+static NSString* const LOG_DECRYPT_SETTING_EXCEPTION = @"开关设置从keychain中读取成功,解密失败";
+
+static NSString* const LOG_SWITCH_APPLIST_INITIALIZED = @"applist从keychain初始化成功";
+
+static NSString* const LOG_LOAD_APPLIST_EXCEPTION = @"applist相关信息在keychain中无存储,读取失败";
+
+static NSString* const LOG_DECRYPT_APPLIST_EXCEPTION = @"applist信息从keychain中读取成功,解密失败";
+
+static NSString* const LOG_UMID_TOKEN_REQUEST_BACK = @"UMID TOKEN返回结果为:";
+
+static NSString* const LOG_VKEYINFO_GENERATED = @"本地VKEY开关打开,将生成VKEY信息";
+
+static NSString* const LOG_VKEYINFO_ABORT = @"本地VKEY开关关闭,将放弃生成VKEY信息";
+
+static NSString* const LOG_VKEY_NO_KEYCHAIN_CACHE = @"VKEY缓存信息在keychain中无存储,读取失败";
+
+static NSString* const LOG_VKEY_FOUND_KEYCHAIN_CACHE = @"VKEY缓存信息在keychain中获取缓存值";
+
+static NSString* const LOG_VKEY_INFO_DETAIL = @"KEY信息为:";
+
+static NSString* const LOG_VKEY_GENERATION_EXCEPTION = @"VEr:";
+
+static NSString* const LOG_GID_GENERATED = @"本地GID开关打开,将生成GID信息";
+
+static NSString* const LOG_GID_ABORT = @"本地GID开关关闭,将放弃生成GID信息";
+
+static NSString* const LOG_GID_NO_KEYCHAIN_CACHE = @"GID缓存信息在keychain中无存储,读取失败";
+
+static NSString* const LOG_GID_FOUND_KEYCHAIN_CACHE = @"GID缓存信息在keychain中获取缓存值";
+
+static NSString* const LOG_GID_INFO_DETAIL = @"GID信息为:";
+
+static NSString* const LOG_VOS_RUNNING = @"VKEY任务启动";
+
+static NSString* const LOG_VOS_ASYNC_ABORT = @"放弃异步VOS任务";
+
+static NSString* const LOG_VOS_VKEY_GENERATION = @"VOS VKEY采集中";
+
+static NSString* const LOG_VOS_GID_GENERATION = @"VOS GID采集中";
+
+static NSString* const LOG_GID_GENERATION_EXCEPTION = @"GEr:";
+
+static NSString* const LOG_JB_ERROR_DETECTED = @"JEr";
+
+static NSString* const LOG_STATIC_INFO_DETAIL = @"采集静态信息列表如下:";
+
+static NSString* const LOG_APP_LIST_INFO_COLLECTED = @"APPLIST信息扫描获取中";
+
+static NSString* const LOG_APP_LIST_INFO_ABORT = @"APPLIST信息放弃扫描获取";
+
+static NSString* const LOG_LOAD_MODEL_KEYCHAIN_EXCEPTION = @"VKEYID在keychain无存储,读取失败";
+
+static NSString* const LOG_LOAD_MODEL_FROM_KEYCHAIN = @"VKEYID从keychain中成功读取";
+
+static NSString *const LOG_LOCALMODEL_ABSENT = @"本地未找到VKEYID存储";
+
+static NSString *const LOG_LOCALMODEL_LOADSUCCESS = @"本地成功找到VKEYID存储";
+
+static NSString *const LOG_LOAD_PREAPDID_SUCCESS = @"本地成功在keychain中读取旧版apdid的值:";
+
+static NSString *const LOG_LOAD_PREAPDID_FAILED = @"旧版apdid在keychain中无存储,读取失败";
+
+static NSString* const LOG_STATIC_INFO_CHANGED = @"所采集的静态信息发生改变或者存储中没有记录";
+
+static NSString* const LOG_STATIC_INFO_SAME = @"所采集的静态信息与存储中相同";
+
+static NSString* const LOG_TODAY_FIRST = @"检测为24小时内首次请求";
+
+static NSString* const LOG_NOT_TODAY_FIRST = @"检测24小时内已经发起过请求";
+
+static NSString *const LOG_GETAPDIDTOKEN_RET_LOCAL = @"不发起网络请求,直接返回本地存储";
+
+static NSString* const LOG_CONNECT_TO_SERVER = @"需要访问服务器请求TOKEN";
+
+static NSString* const LOG_REQUEST_INFO_INCLUDED = @"静态请求上传需要携带静态信息";
+
+static NSString* const LOG_REQUEST_INFO_EXCLUDED = @"静态请求上传不需要携带静态信息";
+
+static NSString* const LOG_STATIC_REQUEST_EXCEPTION = @"静态数据请求发送出现异常";
+
+static NSString* const LOG_STATIC_REQUEST_FAILED = @"静态数据请求返回出现错误";
+
+static NSString* const LOG_STATIC_REQUEST_SUCCESS = @"静态数据请求请求返回";
+
+static NSString* const LOG_SERVER_RESPONSE_SUCCESS = @"服务端返回结果通过验证,证明有效:";
+
+static NSString* const LOG_SERVER_RESPONSE_FAILED = @"服务端获取TOKEN失败";
+
+static NSString* const LOG_LOG_REQUEST_RESPONSE = @"日志上传成功返回";
+
+static NSString *const LOG_LOCALMODEL_SAVED_KEYCHAIN = @"成功将VKEY ID保存至keychain";
+
+static NSString *const LOG_UPDATE_SETTING = @"已更新keychain中开关的设置值";
+
+static NSString* const LOG_APP_LIST_NEED_UPDATE = @"经过检测,app list列表需要从服务器更新";
+
+static NSString *const LOG_UPDATE_APPLIST = @"app list列表成功从服务器更新";
+
+static NSString* const LOG_APPLIST_SETTING_SAVED_KEYCHAIN = @"app list列表信息成功更新至keychain保存";
+
+static NSString* const LOG_APP_LIST_REQUEST_EXCEPTION = @"app list请求出现异常";
+
+static NSString* const LOG_APP_LIST_RESPONSE_FAILED = @"app list请求结果失败";
+
+static NSString* const LOG_LOG_UPDATE_EXCEPTION = @"日志信息请求发送出现异常";
+
+static NSString* const LOG_LOG_UPLOAD_ERROR = @"日志信息发送出现错误";
+
+static NSString* const LOG_LOG_UPLOAD_SUCCESS = @"日志信息发送返回成功";
+
+static NSString *const LOG_SETTINGMODEL_SAVEFAILED = @"开关信息保存错误";
+
+static NSString *const LOG_SETTINGMODEL_SUCCESS = @"开关信息成功保存到keychain";
+
+static NSString* const LOG_LOG_UPLOAD_PROCESS = @"上报日志开关打开,开始上报错误日志流程";
+
+static NSString* const LOG_LOG_UPLOAD_ABORT = @"上报日志开关关闭,放弃上报错误日志";
+
+static NSString* const LOG_LOG_FILE_DETAIL = @"检测到错误日志文件:";
+
+static NSString* const LOG_LOG_FILE_REMOVAL = @"已经删除错误日志文件:";
+
+static NSString* const LOG_LOG_UPLOAD_START = @"开始日志上报网络请求";
+
+static NSString* const LOG_LOG_UPLOAD_DETAIL = @"日志上报网络请求具体内容:";
+
+
+
+static NSString* const LOG_JSON_PARSE_EXCEPTION = @"JSON解析失败";
+
+static NSString* const ASS_STORAGE_KEY_SUCCESS = @"success";
+static NSString* const ASS_STORAGE_KEY_APDID = @"apdid";
+static NSString* const ASS_STORAGE_KEY_TOKEN = @"token";
+static NSString* const ASS_STORAGE_KEY_TIME = @"time";
+static NSString* const ASS_STORAGE_KEY_VKEYSWITCH = @"vkeyon";
+static NSString* const ASS_STORAGE_KEY_LOGSWITCH = @"logon";
+static NSString* const ASS_STORAGE_KEY_APPLISTVERSION = @"appver";
+static NSString* const ASS_STORAGE_KEY_STATICHASH = @"statichash";
+static NSString* const ASS_STORAGE_KEY_ERROR = @"error";
+static NSString* const ASS_APPKEY_INVALID = @"APPKEY_ERROR";
+static NSString* const ASS_STORAGE_KEY_WEBRTCURL = @"webrtcurl";
+static NSString* const ASS_STORAGE_KEY_DYNAMICKEY = @"dynamickey";
+static NSString* const ASS_STORAGE_KEY_AGENTURL = @"agentcurl";
+static NSString* const ASS_STORAGE_KEY_APSE_DEGRADE = @"apse_degrade";
+static NSString* const ASS_STORAGE_KEY_TIMEINTERVAL = @"timeInterval";
+
+static NSString* const SECURE_SDK_KEYCHAIN_KEY = @"com.alipay.securesdk.storage";
+static NSString* const LAST_LOGIN_TIME_KEY = @"com.alipay.asssecuritySDK.lastlogintime";
+static NSString* const SECURE_SDK_RANDOM_STRING = @"com.alipay.securesdk.ranstr";
+static NSString* const SECURE_SDK_RANDOM_TOKEN = @"com.alipay.securesdk.tokenid";
+static NSString* const ASS_KEYCHAIN_KEY_SETTING = @"com.alipay.asssecuresdk.config";
+static NSString* const SECURE_SDK_RANDOM_CLIENTKEY_STRING = @"com.alipay.securesdk.clientkey";
+static NSString* const SECURE_SDK_KEYCHAIN_TOKEN = @"maintoken";
+
+static NSString* const ASS_KEYCHAIN_KEY_APPLIST = @"com.alipay.asssecuresdk.list";
+static NSString* const ASS_KEYCHAIN_KEY_DFP = @"com.alipay.asssecuresdk.dfp";
+static NSString* const ASS_KEYCHAIN_KEY_GID = @"com.alipay.asssecuresdk.gid";
+static NSString* const ASS_KEYCHAIN_KEY_JBER = @"com.alipay.asssecuresdk.jber";
+static NSString* const ASS_KEYCHAIN_KEY_APDIDC = @"com.alipay.asssecuresdk.apdidc";
+static NSString* const ASS_KEYCHAIN_KEY_TMXTIME = @"com.alipay.asssecuresdk.tmxtime";
+static NSString* const ASS_KEYCHAIN_KEY_TMXSESSOINID = @"com.alipay.asssecuresdk.tmxsessionid";
+static NSString* const ASS_KEYCHAIN_KEY_ARPMAC = @"com.alipay.asssecuresdk.arpmac";
+static NSString* const ASS_KEYCHAIN_KEY_DYNAMICKEY = @"com.alipay.asssecuresdk.dynamickey";
+
+static NSString* const ASS_USER_DEFAULT_KEY_DEGRADE_TIME = @"asssecuritysdkdegrade";
+
+static const int overtime = 9;
+
+//CRASHGUARD
+static NSString* const CRASH_GUARD_GET_COLOR_INFO = @"05f445";
+static NSString* const CRASH_GUARD_PRE_COLOR_INFO = @"f379d2";
+static NSString* const CRASH_GUARD_INIT_COLOR_INFO = @"25f523";
+static NSString* const CRASH_GUARD_UPDATE_COLOR_CODE = @"8e81ac";
+static NSString* const CRASH_GUARD_GET_COLOR_LABEL = @"d785d8";
+static NSString* const CRASH_GUARD_UPDATE_COLOR_LABEL = @"dccf1d";
+static NSString* const CRASH_GUARD_INIT_TOKEN = @"0780aa";
+static NSString* const CRASH_GUARD_INIT = @"e37f013";
+
+
+@interface ASSCommon : NSObject
+
++ (int)getCurrentMode;
+
++ (NSString*)getRPCURL;
+
++ (NSString*)getServerHost;
+
++ (void) setRPCHeader:(NSDictionary*)header;
+
++ (NSDictionary*)getRPCHeader;
+
++ (void)setupEnvironmentMode:(int)mode;
+
++ (void)setupRPCAddress:(NSString*)address;
+
++ (BOOL)useURLWhitelist;
+
++ (BOOL)checkDeviceSystemVersion;
+
++ (void)setSecuritySDKConfig:(int)address;
+
++ (void)setRpcHeaderAppid:(NSString*)apid;
+
++ (NSString*)getRpcHeaderAppid;
+
++ (void)setRpcHeaderWorkspaceid:(NSString*)spaceid;
+
++ (NSString*)getRpcHeaderWorkspaceid;
+
+@end
diff --git a/star_lock/aliyun_face_plugin/ios/Products/APPSecuritySDK.framework/Headers/ASSDynamicManager.h b/star_lock/aliyun_face_plugin/ios/Products/APPSecuritySDK.framework/Headers/ASSDynamicManager.h
new file mode 100644
index 00000000..73ea5734
--- /dev/null
+++ b/star_lock/aliyun_face_plugin/ios/Products/APPSecuritySDK.framework/Headers/ASSDynamicManager.h
@@ -0,0 +1,37 @@
+//
+// ASSDynamicManager.h
+// APSecSecuritySDK
+//
+// Created by msq on 2019/1/5.
+// Copyright © 2019 Alipay. All rights reserved.
+//
+
+#import
+#import "APDynamicProtocol.h"
+
+@interface ASSDynamicManager : NSObject
+
++ (instancetype)sharedInstance;
+
+- (void)dynamicCheckDispatch:(NSDictionary *)dict;
+
+- (void)dynamicCheckDispatch:(NSDictionary *)dict withCallBack: (void(^)(Boolean, NSString *))callback;
+
+- (void)dynamicCheckCustomLocal:(int)delay;
+
++ (NSData *)sendDynamicSynchronousRequest:(NSString *)url;
+
++ (void)uploadTimerCheckResult:(NSString *)data
+ dynamicTrace:(NSString*)trace
+ dynamicCmd:(int)cmd
+ dynamicNum:(int)num;
+
++ (NSString *)uploadCustomFile:(NSString *)path;
+
++ (void)recordError:(const char *)pos
+ withAction:(const char *)action
+ errCode:(int)code;
+
+//+ (NSString *)processFeature;
+
+@end
diff --git a/star_lock/aliyun_face_plugin/ios/Products/APPSecuritySDK.framework/Headers/ASSLogger.h b/star_lock/aliyun_face_plugin/ios/Products/APPSecuritySDK.framework/Headers/ASSLogger.h
new file mode 100644
index 00000000..b763df6e
--- /dev/null
+++ b/star_lock/aliyun_face_plugin/ios/Products/APPSecuritySDK.framework/Headers/ASSLogger.h
@@ -0,0 +1,39 @@
+//
+// ASSLogger.h
+// ae-security-sdk
+//
+// Created by xingchen on 14/12/22.
+// Copyright (c) 2014年 Alipay. All rights reserved.
+//
+
+#import
+#import "ASSProtocolCenter.h"
+
+#define ASSLog(...) do { \
+ if ([ASSProtocolCenter sharedCenter].logDelegate) { \
+ [[ASSProtocolCenter sharedCenter].logDelegate print:__VA_ARGS__, nil]; \
+ }} while(0)
+#define ASSDtl(params, detail) [[ASSProtocolCenter sharedCenter].logDelegate print:[NSString stringWithFormat:@"%@%@",params,detail], nil]
+#define ASSLogError(erroInfo) do { [[ASSLogger sharedInstance] addLogWithMessage: erroInfo]; } while(0)
+
+@interface ASSLogger : NSObject
+
+@property (nonatomic, strong) NSString* loggerInfo;
+
++(id)sharedInstance;
+
+-(void)initializeWithArgs:(NSDictionary*)inArgs;
+
+-(void)addLogWithMessage:(NSString*)message;
+
+-(void)uploadLog;
+
+//---------for test
+-(NSData*)generateMessage:(NSString*)msg;
+-(void)addLogWithMessage:(NSString *)message withFileName:(NSString*)fileName;
+-(NSString*)getCurrentFileName:(NSDate*)date;
+-(void)internal_addLog:(NSString*)message;
+-(void)uploadLogCertified;
+
+
+@end
diff --git a/star_lock/aliyun_face_plugin/ios/Products/APPSecuritySDK.framework/Headers/ASSSecureInfo.h b/star_lock/aliyun_face_plugin/ios/Products/APPSecuritySDK.framework/Headers/ASSSecureInfo.h
new file mode 100644
index 00000000..9ba1e201
--- /dev/null
+++ b/star_lock/aliyun_face_plugin/ios/Products/APPSecuritySDK.framework/Headers/ASSSecureInfo.h
@@ -0,0 +1,28 @@
+//
+// ASSSecureInfo.h
+// APPSecuritySDK
+//
+// Created by msq on 2018/7/9.
+// Copyright © 2018年 Alipay. All rights reserved.
+//
+
+#import
+
+#define ASSSecureInfo ASSSecureInfoCore
+
+@interface ASSSecureInfo : NSObject
+/**
+ * 重打包检测
+ * 返回值:YES表示个人签名;NO表示企业签名
+ *
+ */
++ (BOOL)hasPersonSign;
+
+/**
+ * 越狱检测
+ * 返回值:0表示非越狱;大于0其他值表示越狱
+ *
+ */
++ (uint32_t)checkJB;
+
+@end
diff --git a/star_lock/aliyun_face_plugin/ios/Products/APPSecuritySDK.framework/Headers/ASSSecureOpenSdk.h b/star_lock/aliyun_face_plugin/ios/Products/APPSecuritySDK.framework/Headers/ASSSecureOpenSdk.h
new file mode 100644
index 00000000..be565ae7
--- /dev/null
+++ b/star_lock/aliyun_face_plugin/ios/Products/APPSecuritySDK.framework/Headers/ASSSecureOpenSdk.h
@@ -0,0 +1,77 @@
+//
+// ASSSecureOpenSdk.h
+// APPSecuritySDK
+//
+// Created by msq on 16/6/1.
+// Copyright © 2016年 Alipay. All rights reserved.
+//
+
+#import
+#import "APSecureSdk.h"
+#import "ASSTokenResult.h"
+
+typedef void(^ASSSecureSdkCallbackOpen)(NSString* token, int errorCode);
+
+@interface ASSSecureOpenSdk : NSObject
+
+/*
+ 异步初始化vkeyid,推荐在app启动时和收银台页面加载时调用,SDK内部会根据时间戳和设备信息进行判断是否需要进行网络请求,无线程要求
+ @param appName 应用名称
+ @param appKeyClient 应用客户端密钥
+ @param callback 初始化完成后的结果回调,以Token作为参数
+ */
++ (void)initToken:(NSString *)appName appKeyClient:(NSString *)appKeyClient callback:(ASSSecureSdkCallbackOpen)callback;
+
+
+/*
+ 异步初始化vkeyid,推荐在app启动时和收银台页面加载时调用,SDK内部会根据时间戳和设备信息进行判断是否需要进行网络请求,无线程要求
+ @param appName 应用名称
+ @param appKeyClient 应用客户端密钥
+ @param parameters 业务方按约定的自定义参数
+ @param callback 初始化完成后的结果回调,以Token作为参数
+ */
++ (void)initToken:(NSString *)appName appKeyClient:(NSString *)appKeyClient parameters:(NSDictionary*)inArgs callback:(ASSSecureSdkCallbackOpen)callback;
+
+/*
+ 异步强制更新vkeyid,推荐在app启动时和收银台页面加载时调用,无线程要求
+ @param appName 应用名称
+ @param appKeyClient 应用客户端密钥
+ @param parameters 业务方按约定的自定义参数
+ @param callback 初始化完成后的结果回调,以Token作为参数
+ */
++ (void)updateToken:(NSString *)appName appKeyClient:(NSString *)appKeyClient parameters:(NSDictionary*)inArgs callback:(ASSSecureSdkCallbackOpen)callback;
+
+/*
+ VKEYID和VKEYID token的接口,无网络请求。
+ 同步调用前应当先调用过异步初始化接口
+
+ 如果异步初始化由于网络等原因失败,同步接口将返回降级方案:
+ 1)VKEYID将在旧版apdid存在的情况下返回旧版apdid,否则返回随机串
+ 2)VKEYID token将返回空字符串:@""
+ */
++ (ASSTokenResultOpen*)getTokenResult;
+
+/*
+ *获取exactID
+ */
++ (NSString*)getExactID;
+
+/*
+ *设置自定义的网关地址
+ */
++ (void)setGatewayAddress:(NSString*)addr;
+
++ (void)setRpcConfiguration:(NSDictionary *) config;
+
+
+/**
+* 感知埋点。
+* appName - 应用名 (智科人脸:“zorro”)
+* appKeyClient - 应用key (智科人脸:“elBwppCSr9nB1LIQ”)
+* action - 感知行为编号
+* extParams - 可选扩展参数,以map方式传参
+*/
+//+(APRiskResult*)APPerceptRisk:(NSString*)appName appKeyClient:(NSString*)appKeyClient userAction:(NSInteger)action extParams:(NSDictionary *)args;
+
+
+@end
diff --git a/star_lock/aliyun_face_plugin/ios/Products/APPSecuritySDK.framework/Headers/ASSSgomInfoOpen.h b/star_lock/aliyun_face_plugin/ios/Products/APPSecuritySDK.framework/Headers/ASSSgomInfoOpen.h
new file mode 100644
index 00000000..1e43d793
--- /dev/null
+++ b/star_lock/aliyun_face_plugin/ios/Products/APPSecuritySDK.framework/Headers/ASSSgomInfoOpen.h
@@ -0,0 +1,29 @@
+//
+// ASSSgomInfoOpen.h
+// APPSecuritySDK
+//
+// Created by hongren on 2021/8/16.
+// Copyright © 2021 Alipay. All rights reserved.
+//
+
+#import
+
+/**
+* 感知结果类。
+*/
+@interface ASSSgomResult: NSObject
+
+@property (nonatomic) NSInteger resCode;
+@property (nonatomic, strong) NSString* resInfo;
+
+@end
+
+
+@interface ASSSgomInfoOpen : NSObject
+
++ (instancetype)sharedInstance;
+
+- (ASSSgomResult*)updateSgomInfo:(int) userAction
+ ext:(NSDictionary*) extParams;
+
+@end
diff --git a/star_lock/aliyun_face_plugin/ios/Products/APPSecuritySDK.framework/Headers/ASSTokenResult.h b/star_lock/aliyun_face_plugin/ios/Products/APPSecuritySDK.framework/Headers/ASSTokenResult.h
new file mode 100644
index 00000000..c23d447b
--- /dev/null
+++ b/star_lock/aliyun_face_plugin/ios/Products/APPSecuritySDK.framework/Headers/ASSTokenResult.h
@@ -0,0 +1,40 @@
+//
+// ASSTokenResult.h
+// APPSecuritySDK
+//
+// Created by xingchen on 15/7/31.
+// Copyright (c) 2015年 Alipay. All rights reserved.
+//
+
+#import
+
+#define ASSTokenResult ASSTokenResultCore
+
+
+@interface ASSTokenResult : NSObject
+
+@property (nonatomic, strong) NSString* vkeyidToken;
+@property (nonatomic, strong) NSString* clientKey;
+@property (nonatomic, strong) NSString* umidToken;
+@property (nonatomic, strong) NSString* vkeyid;
+
+@end
+
+
+@interface ASSTokenResultOpen: NSObject
+
+@property (nonatomic, strong) NSString* vkeyidToken;
+@property (nonatomic, strong) NSString* clientKey;
+@property (nonatomic, strong) NSString* vkeyid;
+
+@end
+
+/**
+* 感知结果类。
+*/
+@interface APRiskResult: NSObject
+
+@property (nonatomic) int resCode;
+@property (nonatomic, strong) NSString* resInfo;
+
+@end
diff --git a/star_lock/aliyun_face_plugin/ios/Products/APPSecuritySDK.framework/Headers/AntSecurityManager.h b/star_lock/aliyun_face_plugin/ios/Products/APPSecuritySDK.framework/Headers/AntSecurityManager.h
new file mode 100644
index 00000000..61246e45
--- /dev/null
+++ b/star_lock/aliyun_face_plugin/ios/Products/APPSecuritySDK.framework/Headers/AntSecurityManager.h
@@ -0,0 +1,101 @@
+//
+// AntSecurityManager.h
+// APPSecuritySDK
+//
+// Created by msq on 2018/8/20.
+// Copyright © 2018年 Alipay. All rights reserved.
+//
+
+#import
+
+typedef enum: NSInteger {
+ //正常
+ SEC_STORE_OK = 0,
+ //未找到
+ SEC_STORE_NOT_FOUND = 10001,
+ //拷贝
+ SEC_STORE_CP = 10002,
+ //内部错误
+ SEC_STORE_ERR = 10003,
+
+ SEC_STORE_PARAM_ERR = 10004,
+
+ SEC_STORE_DEGRADE_ERR = 10005,
+
+} SEC_STORE_ERR_CODE;
+
+@interface APSecStoreResult : NSObject
+
+@property (nonatomic, strong) NSString* value;
+
+@property (nonatomic, assign) SEC_STORE_ERR_CODE errCode;
+
+@property (nonatomic, assign) int errCodeDetail;
+
+@end
+
+@interface AntSecurityManager : NSObject
+
+/**
+ * brief aes_encrypt
+ * ase 加密
+ * param data 原始数据
+ *
+ * return
+ * 返回加密后数据
+ * nil 表示异常
+ */
++ (NSString*)securityEncrypt:(NSString*)data;
+
+/**
+ * brief aes_decrypt
+ * ase 解密
+ * param data 加密原始数据
+ *
+ * return
+ * 返回解密后数据
+ * nil 表示异常
+ */
++ (NSString*)securityDecrypt:(NSString*)data;
+
+/**
+ * brief wbSign
+ *
+ * param data 签名数据
+ *
+ * return
+ * 签名数据 44B base64文本
+ */
++ (NSString*)wbSign:(NSString*)data;
+
+/**
+ *防拷贝存储保存数据接口
+ *@param key
+ *@param value 需要加密的数据
+ *@param bizType 业务场景
+ *@return 返回错误码,0表示正常,其他非0值都表示异常
+ */
+
++ (int) setSafeStore:(NSString*)key value:(NSString*)value bizType:(NSString*)bizType;
+
+/**
+ *防拷贝存储读取数据接口
+ *@param key
+ *@param bizType 业务场景
+ *@return 返回APSecStoreResult对象
+ * SEC_STORE_OK 0 正常
+ * SEC_STORE_NOT_FOUND 10001 未找到
+ * SEC_STORE_CP 10002 拷贝
+ * SEC_STORE_ERR 10003 内部错误
+ */
++ (APSecStoreResult*)getSafeStore:(NSString*)key bizType:(NSString*)bizType;
+
+/**
+ *删除保存数据接口
+ *@param key
+ *@param bizType 业务场景
+ *@return 返回错误码,0表示正常,其他非0值都表示异常
+ */
++ (int) deleteSafeStore:(NSString*)key bizType:(NSString*)bizType;
+
+@end
diff --git a/star_lock/aliyun_face_plugin/ios/Products/APPSecuritySDK.framework/Info.plist b/star_lock/aliyun_face_plugin/ios/Products/APPSecuritySDK.framework/Info.plist
new file mode 100644
index 00000000..ef8d4c29
Binary files /dev/null and b/star_lock/aliyun_face_plugin/ios/Products/APPSecuritySDK.framework/Info.plist differ
diff --git a/star_lock/aliyun_face_plugin/ios/Products/APPSecuritySDK.framework/_CodeSignature/CodeDirectory b/star_lock/aliyun_face_plugin/ios/Products/APPSecuritySDK.framework/_CodeSignature/CodeDirectory
new file mode 100644
index 00000000..53a5e26c
Binary files /dev/null and b/star_lock/aliyun_face_plugin/ios/Products/APPSecuritySDK.framework/_CodeSignature/CodeDirectory differ
diff --git a/star_lock/aliyun_face_plugin/ios/Products/APPSecuritySDK.framework/_CodeSignature/CodeRequirements b/star_lock/aliyun_face_plugin/ios/Products/APPSecuritySDK.framework/_CodeSignature/CodeRequirements
new file mode 100644
index 00000000..dbf9d614
Binary files /dev/null and b/star_lock/aliyun_face_plugin/ios/Products/APPSecuritySDK.framework/_CodeSignature/CodeRequirements differ
diff --git a/star_lock/aliyun_face_plugin/ios/Products/APPSecuritySDK.framework/_CodeSignature/CodeRequirements-1 b/star_lock/aliyun_face_plugin/ios/Products/APPSecuritySDK.framework/_CodeSignature/CodeRequirements-1
new file mode 100644
index 00000000..ada045e7
Binary files /dev/null and b/star_lock/aliyun_face_plugin/ios/Products/APPSecuritySDK.framework/_CodeSignature/CodeRequirements-1 differ
diff --git a/star_lock/aliyun_face_plugin/ios/Products/APPSecuritySDK.framework/_CodeSignature/CodeResources b/star_lock/aliyun_face_plugin/ios/Products/APPSecuritySDK.framework/_CodeSignature/CodeResources
new file mode 100644
index 00000000..c30f81eb
--- /dev/null
+++ b/star_lock/aliyun_face_plugin/ios/Products/APPSecuritySDK.framework/_CodeSignature/CodeResources
@@ -0,0 +1,559 @@
+
+
+
+
+ files
+
+ APPSecuritySDK-Info.plist
+
+ Po//BA5tM1BE58borc33LNpqXyw=
+
+ Headers/APDID.h
+
+ YaNffM20hdQMiNpnIoEPIHF8o+A=
+
+ Headers/APDeviceColor.h
+
+ sqZwHJLZ8j2L+9pkCmTqWHaRPoo=
+
+ Headers/APDynamic.h
+
+ TBp9H7ZpcLh5hWGFJbObSnR3sSQ=
+
+ Headers/APRiskConfigReportRequest.h
+
+ 5vPyFFL4v0DrNrSc35DrU0204M4=
+
+ Headers/APRiskConfigReportResponse.h
+
+ WODwFqptygg++OMfRxg5nJhV1tM=
+
+ Headers/APRiskConfigServiceProtocol.h
+
+ SJJczKTD81Beaeutnk5eh5yYk6s=
+
+ Headers/APRiskFileUploadProtocol.h
+
+ LLqKfgEm/gVHeBO+chBoA32ce6w=
+
+ Headers/APRiskLoggerProtocol.h
+
+ KaoFaIX0tcWToF7p3GQSPdm1fNI=
+
+ Headers/APRiskRPCProtocol.h
+
+ /OdHTVHBuEGxpO5dJbde5mXoV3Q=
+
+ Headers/APRiskRemoteLoggerProtocol.h
+
+ L9Ca3T+cAEzjRZxJTwHTaKytgQs=
+
+ Headers/APRiskReportRequest.h
+
+ p0bXoJMwS+46ZRrgLqdvbEFjAmI=
+
+ Headers/APRiskReportResponse.h
+
+ 3pzJU3RgAQBnPg/R2tEjuGJLfvc=
+
+ Headers/APRiskRpcConfiguration.h
+
+ ypma2woz2iRq5pghoIkfFTGVm+8=
+
+ Headers/APRiskSyncHandlerProtocol.h
+
+ Vum7s9ObS3JRBHwQBG4BUdk6SN8=
+
+ Headers/APRiskSyncServiceProtocol.h
+
+ V0kCGcKZFd1gG+a2uuDzVkzj218=
+
+ Headers/APSecRDS.h
+
+ ZKM/B2Jcl/et+wyK8FepeewKCi8=
+
+ Headers/APSecStore.h
+
+ rEuJJetfP9Aj7GLQd5R3IgSZw/c=
+
+ Headers/APSecureSdk.h
+
+ ywtAfrae7i2g9jT6cXJt775tdng=
+
+ Headers/APSign.h
+
+ UxWq8miIIfr3zl7GiKnKdG8PS5s=
+
+ Headers/ASSCommon.h
+
+ lrrlG7ZqNaz4ciXX/i5kj/NnG3A=
+
+ Headers/ASSDynamicManager.h
+
+ 4Vk+CxCMPtR9isbOl7FqtE5jZuo=
+
+ Headers/ASSLogger.h
+
+ WvM9Fp3B5ZaI8D+rnHiUcBTxsdk=
+
+ Headers/ASSSecureInfo.h
+
+ C7uQ4VE5uwtF5ws1blMIKLKpfmI=
+
+ Headers/ASSSecureOpenSdk.h
+
+ KmdnMxfQN0cqG23Vuu092URfYCs=
+
+ Headers/ASSSgomInfoOpen.h
+
+ /AhECuNKFdWPVi1Q6oH8rMN66XM=
+
+ Headers/ASSTokenResult.h
+
+ X5xdpK/2lE52tWoVFEg/ZivE9UQ=
+
+ Headers/AntSecurityManager.h
+
+ w5tB5gEPNoVoucc6rkAlUnUhzV4=
+
+ Info.plist
+
+ iJIQ3hx3R9PDehqmni7k6WFuCCI=
+
+ en.lproj/InfoPlist.strings
+
+ hash
+
+ zmV6UqBSo6r1NOz798vd5O4zTBA=
+
+ optional
+
+
+ module.map
+
+ nJxa72k41Z2wyhSJqqJgUyYvSgA=
+
+
+ files2
+
+ APPSecuritySDK-Info.plist
+
+ hash
+
+ Po//BA5tM1BE58borc33LNpqXyw=
+
+ hash2
+
+ B2XyqSNoreUIQ8uDojzpys2o9qi8XuLbypPrkCR+l8w=
+
+
+ Headers/APDID.h
+
+ hash
+
+ YaNffM20hdQMiNpnIoEPIHF8o+A=
+
+ hash2
+
+ 0nNHe4UB7qz6XFIk/QzRt79MyXYVEOukTfqa3YBJYbY=
+
+
+ Headers/APDeviceColor.h
+
+ hash
+
+ sqZwHJLZ8j2L+9pkCmTqWHaRPoo=
+
+ hash2
+
+ c/mo/+N/KECjwx+fLMepqE+OqRtyfnn2hHshYhmO9IU=
+
+
+ Headers/APDynamic.h
+
+ hash
+
+ TBp9H7ZpcLh5hWGFJbObSnR3sSQ=
+
+ hash2
+
+ tUrg2Z43qGA67I0mIGCqRWU6Gc2I9Yx9mn5e2mu9XQU=
+
+
+ Headers/APRiskConfigReportRequest.h
+
+ hash
+
+ 5vPyFFL4v0DrNrSc35DrU0204M4=
+
+ hash2
+
+ OMGRtuphIpujn+dr+tCsCMIUw+KV8WQ2zE+bsdDUVCw=
+
+
+ Headers/APRiskConfigReportResponse.h
+
+ hash
+
+ WODwFqptygg++OMfRxg5nJhV1tM=
+
+ hash2
+
+ NvTd6RhL7dbwHKHDPiqBqkIc9aWUQLV5SwFFsEorcqg=
+
+
+ Headers/APRiskConfigServiceProtocol.h
+
+ hash
+
+ SJJczKTD81Beaeutnk5eh5yYk6s=
+
+ hash2
+
+ RyMjAfHvdfRW5n+MDPHVlPZ6VM0Kr/T2A133j9ytwDQ=
+
+
+ Headers/APRiskFileUploadProtocol.h
+
+ hash
+
+ LLqKfgEm/gVHeBO+chBoA32ce6w=
+
+ hash2
+
+ b2wnReDRJkaR7JxbLjLQXdNsfQbd29tkXtSh/5sjuGo=
+
+
+ Headers/APRiskLoggerProtocol.h
+
+ hash
+
+ KaoFaIX0tcWToF7p3GQSPdm1fNI=
+
+ hash2
+
+ k2gnCevVtGYZ1cgzxh9FrAlnVnnDzD/3l8lIuDPVuDc=
+
+
+ Headers/APRiskRPCProtocol.h
+
+ hash
+
+ /OdHTVHBuEGxpO5dJbde5mXoV3Q=
+
+ hash2
+
+ 1v7HTHTTRf+k61+lf5L1URwSh/MFv72gdnHxTodGrJA=
+
+
+ Headers/APRiskRemoteLoggerProtocol.h
+
+ hash
+
+ L9Ca3T+cAEzjRZxJTwHTaKytgQs=
+
+ hash2
+
+ BmYD66C5squNiQNaLya1JrWDDCJ9V8w6C+AVGpr8QF4=
+
+
+ Headers/APRiskReportRequest.h
+
+ hash
+
+ p0bXoJMwS+46ZRrgLqdvbEFjAmI=
+
+ hash2
+
+ XH1Y2gtlfBaBoOANsxALY7w6fBn81SMhxHKHNVbEFcQ=
+
+
+ Headers/APRiskReportResponse.h
+
+ hash
+
+ 3pzJU3RgAQBnPg/R2tEjuGJLfvc=
+
+ hash2
+
+ PAxPqKwwsKVZNGSWI01WquBx9DZcg0tTsnYe8/UwlAM=
+
+
+ Headers/APRiskRpcConfiguration.h
+
+ hash
+
+ ypma2woz2iRq5pghoIkfFTGVm+8=
+
+ hash2
+
+ xucoo82E5P13oVpu65VVAqbLK11kcVmtbwRCVlEQI5E=
+
+
+ Headers/APRiskSyncHandlerProtocol.h
+
+ hash
+
+ Vum7s9ObS3JRBHwQBG4BUdk6SN8=
+
+ hash2
+
+ 4wA6oLvZ4U8u4Ff5SSuprJISDBd1X+Zx5MqlV0aGoik=
+
+
+ Headers/APRiskSyncServiceProtocol.h
+
+ hash
+
+ V0kCGcKZFd1gG+a2uuDzVkzj218=
+
+ hash2
+
+ oSMsgkxXfg8rdX0ZWmUqRmlTF1fgLfINWgGqYcBeMfI=
+
+
+ Headers/APSecRDS.h
+
+ hash
+
+ ZKM/B2Jcl/et+wyK8FepeewKCi8=
+
+ hash2
+
+ N3/Ych+ScRXiaFWFlsCWXqyGbWdqHhBCHpyp0sQFYPc=
+
+
+ Headers/APSecStore.h
+
+ hash
+
+ rEuJJetfP9Aj7GLQd5R3IgSZw/c=
+
+ hash2
+
+ R7UHcZTpvTV6HWYJm1bEji6L2ry1wSoCprSTRHEqP0M=
+
+
+ Headers/APSecureSdk.h
+
+ hash
+
+ ywtAfrae7i2g9jT6cXJt775tdng=
+
+ hash2
+
+ S8aripi9OWRTxz5CBuWeYoSqMhcgLX2GUUT5Ihnwd8o=
+
+
+ Headers/APSign.h
+
+ hash
+
+ UxWq8miIIfr3zl7GiKnKdG8PS5s=
+
+ hash2
+
+ Te3d2WjOmORK+v6JoH87htyWMIRPvOVgrOi25YxMBWY=
+
+
+ Headers/ASSCommon.h
+
+ hash
+
+ lrrlG7ZqNaz4ciXX/i5kj/NnG3A=
+
+ hash2
+
+ adc/BhjRDcEbnGdNnfGBsTu2jTNZbT2Csi+oHGqx2oY=
+
+
+ Headers/ASSDynamicManager.h
+
+ hash
+
+ 4Vk+CxCMPtR9isbOl7FqtE5jZuo=
+
+ hash2
+
+ lMtcIcfdivy04/miLJ4swfqpcY6/+5XYbnQMhMiToRw=
+
+
+ Headers/ASSLogger.h
+
+ hash
+
+ WvM9Fp3B5ZaI8D+rnHiUcBTxsdk=
+
+ hash2
+
+ JNJIdG9385MDYXjB+F1Mj1NXHTx8faIKEft1KjkceeI=
+
+
+ Headers/ASSSecureInfo.h
+
+ hash
+
+ C7uQ4VE5uwtF5ws1blMIKLKpfmI=
+
+ hash2
+
+ VS1+TQV7GpG7Z2dfhSkfmGi3KjE6cGBUxof1/s+bLPo=
+
+
+ Headers/ASSSecureOpenSdk.h
+
+ hash
+
+ KmdnMxfQN0cqG23Vuu092URfYCs=
+
+ hash2
+
+ Xq/bbsjzFy4rMCr4osH17Nif1NZQqxmWKvgRHq4THr0=
+
+
+ Headers/ASSSgomInfoOpen.h
+
+ hash
+
+ /AhECuNKFdWPVi1Q6oH8rMN66XM=
+
+ hash2
+
+ j8Lnl+QqgD+rwdHhl7yEh7Op76XuicUYflL4/LNrFXE=
+
+
+ Headers/ASSTokenResult.h
+
+ hash
+
+ X5xdpK/2lE52tWoVFEg/ZivE9UQ=
+
+ hash2
+
+ 7O9oGJk95fMdxJyn2mOlI1Iqe1vPcmPRvP5Rgj8J9zk=
+
+
+ Headers/AntSecurityManager.h
+
+ hash
+
+ w5tB5gEPNoVoucc6rkAlUnUhzV4=
+
+ hash2
+
+ 5QS2NUN5NsRJ5dYsLrHlgLY/GLXNwZDSsR5gN4lin6k=
+
+
+ en.lproj/InfoPlist.strings
+
+ hash
+
+ zmV6UqBSo6r1NOz798vd5O4zTBA=
+
+ hash2
+
+ kmHsztpgjvF0JW5f3HdMHm49z1M0CcG8OT1JDQHHE/E=
+
+ optional
+
+
+ module.map
+
+ hash
+
+ nJxa72k41Z2wyhSJqqJgUyYvSgA=
+
+ hash2
+
+ XRW9liRaYf8O2c1bSPVShfimQ3Yfcd1SbIKvIE+sv7c=
+
+
+
+ rules
+
+ ^.*
+
+ ^.*\.lproj/
+
+ optional
+
+ weight
+ 1000
+
+ ^.*\.lproj/locversion.plist$
+
+ omit
+
+ weight
+ 1100
+
+ ^Base\.lproj/
+
+ weight
+ 1010
+
+ ^version.plist$
+
+
+ rules2
+
+ .*\.dSYM($|/)
+
+ weight
+ 11
+
+ ^(.*/)?\.DS_Store$
+
+ omit
+
+ weight
+ 2000
+
+ ^.*
+
+ ^.*\.lproj/
+
+ optional
+
+ weight
+ 1000
+
+ ^.*\.lproj/locversion.plist$
+
+ omit
+
+ weight
+ 1100
+
+ ^Base\.lproj/
+
+ weight
+ 1010
+
+ ^Info\.plist$
+
+ omit
+
+ weight
+ 20
+
+ ^PkgInfo$
+
+ omit
+
+ weight
+ 20
+
+ ^embedded\.provisionprofile$
+
+ weight
+ 20
+
+ ^version\.plist$
+
+ weight
+ 20
+
+
+
+
diff --git a/star_lock/aliyun_face_plugin/ios/Products/APPSecuritySDK.framework/_CodeSignature/CodeSignature b/star_lock/aliyun_face_plugin/ios/Products/APPSecuritySDK.framework/_CodeSignature/CodeSignature
new file mode 100644
index 00000000..e69de29b
diff --git a/star_lock/aliyun_face_plugin/ios/Products/APPSecuritySDK.framework/en.lproj/InfoPlist.strings b/star_lock/aliyun_face_plugin/ios/Products/APPSecuritySDK.framework/en.lproj/InfoPlist.strings
new file mode 100644
index 00000000..3967e063
Binary files /dev/null and b/star_lock/aliyun_face_plugin/ios/Products/APPSecuritySDK.framework/en.lproj/InfoPlist.strings differ
diff --git a/star_lock/aliyun_face_plugin/ios/Products/APPSecuritySDK.framework/module.map b/star_lock/aliyun_face_plugin/ios/Products/APPSecuritySDK.framework/module.map
new file mode 100644
index 00000000..7d2d32a2
--- /dev/null
+++ b/star_lock/aliyun_face_plugin/ios/Products/APPSecuritySDK.framework/module.map
@@ -0,0 +1,9 @@
+module APPSecuritySDK {
+ header "Headers/APSecureSdk.h"
+ header "Headers/APDID.h"
+ header "Headers/APDeviceColor.h"
+ header "Headers/APSign.h"
+ header "Headers/APDynamic.h"
+ header "Headers/ASSTokenResult.h"
+ export *
+}
diff --git a/star_lock/aliyun_face_plugin/ios/Products/AliyunFaceAuthFacade.framework/AliyunFaceAuthFacade b/star_lock/aliyun_face_plugin/ios/Products/AliyunFaceAuthFacade.framework/AliyunFaceAuthFacade
new file mode 100644
index 00000000..9dd83577
Binary files /dev/null and b/star_lock/aliyun_face_plugin/ios/Products/AliyunFaceAuthFacade.framework/AliyunFaceAuthFacade differ
diff --git a/star_lock/aliyun_face_plugin/ios/Products/AliyunFaceAuthFacade.framework/AliyunFaceAuthFacade-Info.plist b/star_lock/aliyun_face_plugin/ios/Products/AliyunFaceAuthFacade.framework/AliyunFaceAuthFacade-Info.plist
new file mode 100644
index 00000000..01af302e
Binary files /dev/null and b/star_lock/aliyun_face_plugin/ios/Products/AliyunFaceAuthFacade.framework/AliyunFaceAuthFacade-Info.plist differ
diff --git a/star_lock/aliyun_face_plugin/ios/Products/AliyunFaceAuthFacade.framework/Headers/AliyunFaceAuthFacade.h b/star_lock/aliyun_face_plugin/ios/Products/AliyunFaceAuthFacade.framework/Headers/AliyunFaceAuthFacade.h
new file mode 100644
index 00000000..90491989
--- /dev/null
+++ b/star_lock/aliyun_face_plugin/ios/Products/AliyunFaceAuthFacade.framework/Headers/AliyunFaceAuthFacade.h
@@ -0,0 +1,45 @@
+//
+// AliyunFaaceAuthFacade.h
+// AliyunFaceAuthFacade
+//
+// Created by 汪澌哲 on 2022/11/21.
+// Copyright © 2022 DTF. All rights reserved.
+//
+
+#import
+#import
+#import
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface AliyunFaceAuthFacade : NSObject
+
++ (void)init;
+
++ (void)initSDK;
+
+/* IPV6的初始化接口 只有你的网络环境强制要求是IPV6的时候,才调用initIPv6。
+ */
++ (void)initIPv6;
+
++ (NSString *)getVersion;
+
++ (NSString *)getNFCVersion;
+
++ (void)preload:(NSDictionary *)param completion:(void (^)(BOOL success))completion;
+
++ (NSDictionary *)getMetaInfo;
+
++ (NSDictionary *)getNFCMetaInfo;
+
++ (void)verifyWith:(NSString *)zimId
+ extParams:(NSDictionary *)params
+ onCompletion:(void (^)(ZIMResponse *response))callback;
+
++ (void)nfcVerifyWith:(NSString *)zimId
+ extParams:(NSDictionary *)params
+ onCompletion:(void (^)(ZIMResponse *response))callback;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/star_lock/aliyun_face_plugin/ios/Products/AliyunFaceAuthFacade.framework/Headers/PoPGatewayNetwork.h b/star_lock/aliyun_face_plugin/ios/Products/AliyunFaceAuthFacade.framework/Headers/PoPGatewayNetwork.h
new file mode 100644
index 00000000..1791f44c
--- /dev/null
+++ b/star_lock/aliyun_face_plugin/ios/Products/AliyunFaceAuthFacade.framework/Headers/PoPGatewayNetwork.h
@@ -0,0 +1,32 @@
+//
+// PoPGatewayNetwork.h
+// ZimDemo
+//
+// Created by sanyuan.he on 2020/1/20.
+// Copyright © 2020 com.. All rights reserved.
+//
+
+#import
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface PoPGatewayNetwork : NSObject
+
+@property(nonatomic, assign) NSTimeInterval timeoutForInit;
+
+@property(nonatomic, assign) NSTimeInterval timeoutForVerify;
+
+-(void)bizSendContent:(NSDictionary*)serviceParameters completionBlock:(void (^) (NSError *error, NSURLResponse *response, NSData *data))completionBlock;
+
+-(void)verifySendContent:(NSDictionary*)serviceParameters completionBlock:(void (^) (NSError *error, NSURLResponse *response, NSData *data))completionBlock;
+
+
+-(void)sendInitFaceVerifyContent:(NSDictionary*)serviceParameters keyName:(NSString*)name initKey:(NSString *)initKey initSimpleValue:(NSString *)initSimpleValue completionBlock:(void (^) (NSError *error, NSURLResponse *response, NSData *data))completionBlock;
+
+-(void)sendOCRContent:(NSDictionary*)serviceParameters completionBlock:(void (^) (NSError *error, NSURLResponse *response, NSData *data))completionBlock;
+
+-(void)sendLogContent:(NSDictionary*)serviceParameters extraHeader:(NSDictionary *)header completionBlock:(void (^) (NSError *error, NSURLResponse *response, NSData *data))completionBlock;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/star_lock/aliyun_face_plugin/ios/Products/AliyunFaceAuthFacade.framework/Info.plist b/star_lock/aliyun_face_plugin/ios/Products/AliyunFaceAuthFacade.framework/Info.plist
new file mode 100644
index 00000000..1e6b53be
Binary files /dev/null and b/star_lock/aliyun_face_plugin/ios/Products/AliyunFaceAuthFacade.framework/Info.plist differ
diff --git a/star_lock/aliyun_face_plugin/ios/Products/AliyunFaceAuthFacade.framework/en.lproj/InfoPlist.strings b/star_lock/aliyun_face_plugin/ios/Products/AliyunFaceAuthFacade.framework/en.lproj/InfoPlist.strings
new file mode 100644
index 00000000..3967e063
Binary files /dev/null and b/star_lock/aliyun_face_plugin/ios/Products/AliyunFaceAuthFacade.framework/en.lproj/InfoPlist.strings differ
diff --git a/star_lock/aliyun_face_plugin/ios/Products/BioAuthEngine.framework/BioAuthEngine b/star_lock/aliyun_face_plugin/ios/Products/BioAuthEngine.framework/BioAuthEngine
new file mode 100644
index 00000000..9afe386f
Binary files /dev/null and b/star_lock/aliyun_face_plugin/ios/Products/BioAuthEngine.framework/BioAuthEngine differ
diff --git a/star_lock/aliyun_face_plugin/ios/Products/BioAuthEngine.framework/BioAuthEngine.bundle/image/back.png b/star_lock/aliyun_face_plugin/ios/Products/BioAuthEngine.framework/BioAuthEngine.bundle/image/back.png
new file mode 100644
index 00000000..faa2eb3a
Binary files /dev/null and b/star_lock/aliyun_face_plugin/ios/Products/BioAuthEngine.framework/BioAuthEngine.bundle/image/back.png differ
diff --git a/star_lock/aliyun_face_plugin/ios/Products/BioAuthEngine.framework/BioAuthEngine.bundle/image/close.png b/star_lock/aliyun_face_plugin/ios/Products/BioAuthEngine.framework/BioAuthEngine.bundle/image/close.png
new file mode 100644
index 00000000..16ba24ef
Binary files /dev/null and b/star_lock/aliyun_face_plugin/ios/Products/BioAuthEngine.framework/BioAuthEngine.bundle/image/close.png differ
diff --git a/star_lock/aliyun_face_plugin/ios/Products/BioAuthEngine.framework/BioAuthEngine.bundle/image/open.png b/star_lock/aliyun_face_plugin/ios/Products/BioAuthEngine.framework/BioAuthEngine.bundle/image/open.png
new file mode 100644
index 00000000..63a64740
Binary files /dev/null and b/star_lock/aliyun_face_plugin/ios/Products/BioAuthEngine.framework/BioAuthEngine.bundle/image/open.png differ
diff --git a/star_lock/aliyun_face_plugin/ios/Products/BioAuthEngine.framework/BioAuthEngine.bundle/image/open_shuke.png b/star_lock/aliyun_face_plugin/ios/Products/BioAuthEngine.framework/BioAuthEngine.bundle/image/open_shuke.png
new file mode 100644
index 00000000..63792771
Binary files /dev/null and b/star_lock/aliyun_face_plugin/ios/Products/BioAuthEngine.framework/BioAuthEngine.bundle/image/open_shuke.png differ
diff --git a/star_lock/aliyun_face_plugin/ios/Products/BioAuthEngine.framework/BioAuthEngine.bundle/image/status_bar_cancel.png b/star_lock/aliyun_face_plugin/ios/Products/BioAuthEngine.framework/BioAuthEngine.bundle/image/status_bar_cancel.png
new file mode 100644
index 00000000..2395562d
Binary files /dev/null and b/star_lock/aliyun_face_plugin/ios/Products/BioAuthEngine.framework/BioAuthEngine.bundle/image/status_bar_cancel.png differ
diff --git a/star_lock/aliyun_face_plugin/ios/Products/BioAuthEngine.framework/BioAuthEngine.bundle/image/status_bar_cancel_suitable.png b/star_lock/aliyun_face_plugin/ios/Products/BioAuthEngine.framework/BioAuthEngine.bundle/image/status_bar_cancel_suitable.png
new file mode 100644
index 00000000..2545258f
Binary files /dev/null and b/star_lock/aliyun_face_plugin/ios/Products/BioAuthEngine.framework/BioAuthEngine.bundle/image/status_bar_cancel_suitable.png differ
diff --git a/star_lock/aliyun_face_plugin/ios/Products/BioAuthEngine.framework/Headers/AFEAlertView.h b/star_lock/aliyun_face_plugin/ios/Products/BioAuthEngine.framework/Headers/AFEAlertView.h
new file mode 100644
index 00000000..3c258623
--- /dev/null
+++ b/star_lock/aliyun_face_plugin/ios/Products/BioAuthEngine.framework/Headers/AFEAlertView.h
@@ -0,0 +1,76 @@
+//
+// AFEAlertView.h
+// BioAuthEngine
+//
+// Created by shuhong.xsh on 16/8/3.
+// Copyright © 2016年 DTF. All rights reserved.
+// 弹出框管理类
+
+#import
+
+typedef void (^AFEAlertClickBlock) ();
+
+@interface AFEAlertView : NSObject
+
+@property(atomic, assign) BOOL isAlertViewShow;
+
++(AFEAlertView*) sharedInstance;
+
+/**
+ * 当前alert是否显示
+ */
+- (BOOL)isAlertViewShow;
+
+/**
+ * 显示alert
+ *
+ * @param title 标题
+ * @param msg 提示信息
+ * @param firstTitle 第一个按钮提示文案(不可为空)
+ * @param secondTitle 第二课提示文案(可为空)
+ * @param fblk 第一个按钮点击事件callback(不可为空)
+ * @param sblk 第二个按钮点击事件callback(可为空)
+ */
+- (void)displayAlertViewWithTitle:(NSString *)title
+ message:(NSString*)msg
+ firstButtonTitle:(NSString *)firstTitle
+ secondBittonTitle:(NSString *)secondTitle
+ firstCallBack:(AFEAlertClickBlock)fblk
+ secondCallBack:(AFEAlertClickBlock)sblk
+ withVC:(UIViewController*)parentViewController;
+
+
+/**
+ * 活体失败
+ *
+ */
+- (void)displayLivnessFailAlertView:(NSString *)title
+ tips:(NSString*)tip
+ cancleTip:(NSString *)cancelTips
+ retryTip:(NSString *)retryTips
+ withCancelCallBack:(AFEAlertClickBlock)cancel
+ retryCallBack:(AFEAlertClickBlock)retry
+ withVC:(UIViewController*)parentViewController;
+
+/**
+ * 展示浮层提示框
+ * @param superview 父view
+ * @param title 主文案,只能显示一行
+ * @param detailTitle 副文案,最多显示两行
+ * @param cancelTips 取消按钮文本
+ * @param retryTips 再试一次按钮文本
+ */
+- (void)displayCameraPermissionAlert:(UIViewController *)parentViewController
+ title:(NSString *)title
+ detailTitle:(NSString *)detailTitle
+ cancleTip:(NSString *)cancelTips
+ retryTip:(NSString *)retryTips
+ cancelCallBack:(AFEAlertClickBlock)cancelCall
+ setCallBack:(AFEAlertClickBlock)setCall;
+
+// 判断最顶层视图是否是 APBAlertViewController
+- (BOOL)isAPBAlertViewController;
+
+- (UIViewController *)currentViewController;
+
+@end
diff --git a/star_lock/aliyun_face_plugin/ios/Products/BioAuthEngine.framework/Headers/AFECircleProgressBar.h b/star_lock/aliyun_face_plugin/ios/Products/BioAuthEngine.framework/Headers/AFECircleProgressBar.h
new file mode 100755
index 00000000..041dfaf8
--- /dev/null
+++ b/star_lock/aliyun_face_plugin/ios/Products/BioAuthEngine.framework/Headers/AFECircleProgressBar.h
@@ -0,0 +1,31 @@
+//
+// AFECircleProgressBar.h
+// CircularView
+//
+// Created by shouyi.www on 2017/6/26.
+// Copyright © 2017年 shouyi.www. All rights reserved.
+//
+
+#import
+#import
+
+@interface AFECircleProgressBar : CALayer
+
+@property (nonatomic, assign) BOOL clockWise;
+@property (nonatomic, assign) CGFloat animateTime;
+@property (nonatomic, assign) CGFloat endAngle;
+@property (nonatomic, assign) CGFloat progressBarWidth;
+@property (nonatomic, assign) CGFloat maxValue;
+@property (nonatomic, assign) CGFloat minValue;
+@property (nonatomic, assign) CGFloat startAngle;
+@property (nonatomic, copy) NSArray *gradientLocation;
+@property (nonatomic, strong) NSMutableArray *gradientColors;
+@property (nonatomic, assign) CGFloat progress;
+@property (nonatomic, strong) UIColor *progressBarTrackColor;
+
+- (void)setProgress:(CGFloat)percent animation:(BOOL)animated;
+- (void)_updateCircularPath;
+- (void)stopAnimation;
+
+@end
+
diff --git a/star_lock/aliyun_face_plugin/ios/Products/BioAuthEngine.framework/Headers/AFECircularView.h b/star_lock/aliyun_face_plugin/ios/Products/BioAuthEngine.framework/Headers/AFECircularView.h
new file mode 100644
index 00000000..d7c36ca8
--- /dev/null
+++ b/star_lock/aliyun_face_plugin/ios/Products/BioAuthEngine.framework/Headers/AFECircularView.h
@@ -0,0 +1,70 @@
+//
+// AFECircularView.h
+// BioAuthEngine
+//
+// Created by yukun.tyk on 01/11/2016.
+// Copyright © 2016 DTF. All rights reserved.
+//
+
+#import
+#import
+#import "DTFTextLayer.h"
+#import "AFECircleProgressBar.h"
+#import "DTFUIElementManager.h"
+#import "DTFUploadWaveLayer.h"
+
+@class AFEStatusBar, AFECircleProgressBar, APBBlurView;
+
+@protocol AFECircularViewProtocol
+
+- (void)onStopScan;
+
+@optional
+- (void)playBtn:(UIButton *)btn;
+
+@end
+
+@interface AFECircularView : UIView
+
+@property (strong, nonatomic) AFEStatusBar *statusBar;
+@property (nonatomic, strong) CALayer *compactLayer;
+@property (nonatomic, strong) CALayer *cameraLayer;
+@property (nonatomic, assign) float cameraStartY;
+@property (nonatomic, assign) float cameraEndY;
+@property (nonatomic, assign) BOOL isWish;
+@property (nonatomic, strong) DTFTextLayer *bottomTipLayer;
+@property (nonatomic, strong) DTFTextLayer *tipLayer;
+@property (nonatomic, strong) CALayer *tipBackgroundLayer;
+@property (nonatomic, strong) DTFTextLayer *powerByLayer;
+@property (nonatomic, strong) AFECircleProgressBar *progressBar;
+@property (nonatomic, strong) DTFUploadWaveLayer *waveLayer;
+@property (nonatomic, strong) DTFTextLayer * stopScanTipLayer;
+@property (nonatomic, weak) id aFECirViewDelegate;
+@property (nonatomic, strong) UIButton * stopScanTipButton;
+@property (nonatomic, assign) double widthCoefficient;
+@property (nonatomic, copy) NSDictionary *bottomTipAttrDict;
+@property (nonatomic, copy) NSDictionary *tipAttrDict;
+
+- (void)showPercent:(CGFloat)stage;
+- (void)showtip:(NSString *)tip;
+- (void)showBottomTip:(NSString *)bottomTip;
+- (void)addCameraPreviewLayer:(CALayer *)cameraPreviewLayer;
+- (void)powerByLayerHidden:(BOOL)hidden;
+- (void)setBottomTipHidden:(BOOL)hidden;
+- (void)setScreenRotation:(BOOL)isRotation;
+- (void)setPlayBtnIcon:(NSString *)platformInfo;
+
+- (void)setStopScanButtonHidden:(BOOL)hidden;
+- (void)setMaskImage:(UIImage *)bestImage;
+- (void)startWave;
+- (void)stopWave;
+- (void)setAFECirViewDelegate:(id)delegate;
+- (void)showBrandTip:(NSString *)brandTip;
+- (void)showStopScanTip:(NSString *)stopScanTip;
+- (void)hideViewList;
+- (void)showViewList;
+
+- (void)_updateView;
+
+@end
+
diff --git a/star_lock/aliyun_face_plugin/ios/Products/BioAuthEngine.framework/Headers/AFEScanViewDelegate.h b/star_lock/aliyun_face_plugin/ios/Products/BioAuthEngine.framework/Headers/AFEScanViewDelegate.h
new file mode 100644
index 00000000..35720693
--- /dev/null
+++ b/star_lock/aliyun_face_plugin/ios/Products/BioAuthEngine.framework/Headers/AFEScanViewDelegate.h
@@ -0,0 +1,43 @@
+//
+// AFEScanViewDelegate.h
+// FaceEyePrint
+//
+// Created by yukun.tyk on 12/28/15.
+// Copyright © 2015 DTF. All rights reserved.
+//
+
+#import
+#import
+
+/**
+ * 扫描界面接口,可以展示扫描动画和提示错误消息,错误消息内部做了平滑处理,
+ * 1s内只会显示一条错误消息,在这期间传入的消息会做缓存处理,最多缓存1条消息
+ * 如果同时播放声音,声音会与错误消息做同步处理
+ */
+
+typedef NS_ENUM(NSInteger, AFEScanViewStatus) {
+ AFE_SCAN_SHOWING_ERROR, //正在显示错误
+ AFE_SCAN_SCANNING, //正在扫描
+ AFE_SCAN_HOLDING, //等待显示缓存信息
+ AFE_SCAN_STOPPED, //停止中
+};
+
+
+@protocol AFEScanViewProtocol
+
+/**
+ * 导航栏回调
+ */
+- (void)setDelegate:(id)delegate;
+
+/**
+ * 设置导航栏透明度
+ */
+- (void)setNaviBarAlpha:(CGFloat)alpha;
+
+/**
+ * 设置扫描进度
+ */
+- (void)showPercent:(CGFloat)stage;
+
+@end
diff --git a/star_lock/aliyun_face_plugin/ios/Products/BioAuthEngine.framework/Headers/AFEStatusBar.h b/star_lock/aliyun_face_plugin/ios/Products/BioAuthEngine.framework/Headers/AFEStatusBar.h
new file mode 100644
index 00000000..dbdc3030
--- /dev/null
+++ b/star_lock/aliyun_face_plugin/ios/Products/BioAuthEngine.framework/Headers/AFEStatusBar.h
@@ -0,0 +1,29 @@
+//
+// AFEStatusBar.h
+// FaceEyePrint
+//
+// Created by yukun.tyk on 12/17/15.
+// Copyright © 2015 DTF. All rights reserved.
+//
+
+#import
+
+@protocol IStatusBarDelegate
+- (void)onButtonCancel;
+@optional
+- (void)onSoundStatusChanged:(BOOL)newStatus;
+@end
+
+@interface AFEStatusBar : UIView
+
+- (void)onButtonCancel;
+
+- (void)setDelegate:(id)delegate;
+
+- (void)setTransparent:(CGFloat) alpha;
+
+- (void)setCancelButtonHidden:(BOOL)hidden;
+
+- (void)setCancelButtonImage:(UIImage *)image;
+
+@end
diff --git a/star_lock/aliyun_face_plugin/ios/Products/BioAuthEngine.framework/Headers/AFEUploadView.h b/star_lock/aliyun_face_plugin/ios/Products/BioAuthEngine.framework/Headers/AFEUploadView.h
new file mode 100755
index 00000000..08317a40
--- /dev/null
+++ b/star_lock/aliyun_face_plugin/ios/Products/BioAuthEngine.framework/Headers/AFEUploadView.h
@@ -0,0 +1,25 @@
+//
+// AFEUploadView.h
+// FaceEyePrint
+//
+// Created by yukun.tyk on 12/14/15.
+// Copyright © 2015 DTF. All rights reserved.
+//
+
+#import
+//
+
+
+@interface AFEUploadView : UIView
+
+
+@property (strong, nonatomic) UILabel *label;
+@property (strong, nonatomic) UIView *backgroundView;
+@property (strong, nonatomic) UIImageView *backgroundImageView;
+
+
+- (void)beginUploading;
+- (void)stopUploading;
+- (void)setBackgroundImage:(UIImage *)img;
+
+@end
diff --git a/star_lock/aliyun_face_plugin/ios/Products/BioAuthEngine.framework/Headers/AFEWebGuideView.h b/star_lock/aliyun_face_plugin/ios/Products/BioAuthEngine.framework/Headers/AFEWebGuideView.h
new file mode 100644
index 00000000..f4164665
--- /dev/null
+++ b/star_lock/aliyun_face_plugin/ios/Products/BioAuthEngine.framework/Headers/AFEWebGuideView.h
@@ -0,0 +1,38 @@
+//
+// AFEWebGuideView.h
+// BioAuthEngine
+//
+// Created by yukun.tyk on 3/21/16.
+// Copyright © 2016 DTF. All rights reserved.
+//
+
+#import
+#import
+#import
+#import "APBToygerRemoteConfig.h"
+@protocol AFEWebGuideViewDelegate
+
+- (void)onButtonBegin:(BOOL)suitableType;
+- (void)onButtonCancel;
+
+@optional
+- (void)onLoadFinished:(BOOL)success;
+- (void)onH5Logger:(NSString *)h5Logger;
+- (void)onButtonAgreement;
+
+@end
+
+
+
+@interface AFEWebGuideView : UIView
+
+@property(strong,nonatomic) WKWebView *wkwebView;
+
+@property(nonatomic, assign)BOOL loaded;
+@property(nonatomic, strong)APBToygerAlertConfig *toygerAlertConfig;
+@property(nonatomic, strong)UIViewController *currentViewController;
+
+- (void)setWebGuideViewDelegate:(id)webGuideViewDeleage;
+- (void)setURL:(NSURL *)url;
+
+@end
diff --git a/star_lock/aliyun_face_plugin/ios/Products/BioAuthEngine.framework/Headers/APBAlertController.h b/star_lock/aliyun_face_plugin/ios/Products/BioAuthEngine.framework/Headers/APBAlertController.h
new file mode 100644
index 00000000..91c31857
--- /dev/null
+++ b/star_lock/aliyun_face_plugin/ios/Products/BioAuthEngine.framework/Headers/APBAlertController.h
@@ -0,0 +1,18 @@
+//
+// APBAlertController.h
+// BioAuthEngine
+//
+// Created by yukun.tyk on 3/2/16.
+// Copyright © 2016 DTF. All rights reserved.
+//
+
+#import
+
+
+extern NSString *const kAlertViewAppear;
+extern NSString *const kAlertViewDisappear;
+
+
+@interface APBAlertController : UIAlertController
+
+@end
diff --git a/star_lock/aliyun_face_plugin/ios/Products/BioAuthEngine.framework/Headers/APBAuthEngine.h b/star_lock/aliyun_face_plugin/ios/Products/BioAuthEngine.framework/Headers/APBAuthEngine.h
new file mode 100644
index 00000000..a9b8388a
--- /dev/null
+++ b/star_lock/aliyun_face_plugin/ios/Products/BioAuthEngine.framework/Headers/APBAuthEngine.h
@@ -0,0 +1,82 @@
+//
+// APBAuthEngine.h
+// BioAuthEngine
+//
+// Created by yukun.tyk on 11/9/15.
+// Copyright © 2015 DTF. All rights reserved.
+//
+//
+
+#import
+#import "BioAuthFacade.h"
+
+/**
+ 生物认证类型定义
+ */
+typedef enum {
+ BIO_FACE = 100, //人脸识别
+ BIO_VOICE = 101, //声纹识别
+ BIO_HANDWRITING = 103, //笔迹识别
+ BIO_IDPAPERS = 107, //重构后的证件宝
+ BIO_CARD = 109, //证件宝
+ BIO_DTF_DOC = 110, //一体化证件宝
+ BIO_FACE_VOICE = 202, //人脸+声纹识别
+ BIO_FACE_EYE = 201, //人脸+眼纹识别
+ BIO_CARD_FACE = 200, //人证合一
+ BIO_TOYGER = 300, //Toyger产品
+}APBBioType;
+
+/**
+ 操作类型定义
+ */
+typedef enum {
+ ACTION_COLLECT = 300, //采集操作
+ ACTION_VERFIY = 301, //验证操作
+}APBActionType;
+
+@interface APBAuthEngine : NSObject
+
+/**
+ * 唤起生物认证之前获取框架meta数据
+ */
++ (NSString *)getBioMetaInfo;
+
+/**
+ * 触发下载资源文件
+ */
++ (void)preLoad;
+
+/**
+ * 申请生物认证
+ *
+ * @param request 生物认证请求
+ * @param callback 生物认证结果回调处理
+ */
+- (void)authWithRequest:(APBRequest *)request withCallback:(BioAuthCallback)callback;
+
+/**
+ * 让正在进行中的生物认证因子执行某种操作
+ *
+ * @param command 操作码
+ * @param callback 执行结果回调
+ */
+- (void)exec:(APBCommand *)command withCompletionCallback:(BioAuthExecCallback)callback;
+
+/**
+ * 当前是否运行任务
+ */
+- (BOOL)isBusy;
+
+/**
+ * 生物认证类型版本号
+ *
+ * @return 生物认证类型版本号
+ */
+- (NSString *)version;
+
+/**
+ * 当前运行的认证方式
+ */
++ (NSString *)getAuthFactorName;
+
+@end
diff --git a/star_lock/aliyun_face_plugin/ios/Products/BioAuthEngine.framework/Headers/APBAuthFacade.h b/star_lock/aliyun_face_plugin/ios/Products/BioAuthEngine.framework/Headers/APBAuthFacade.h
new file mode 100644
index 00000000..8d887346
--- /dev/null
+++ b/star_lock/aliyun_face_plugin/ios/Products/BioAuthEngine.framework/Headers/APBAuthFacade.h
@@ -0,0 +1,18 @@
+//
+// APBAuthFacade.h
+// BioAuthEngine
+//
+// Created by yukun.tyk on 11/9/15.
+// Copyright © 2015 DTF. All rights reserved.
+//
+
+#import
+
+#import
+#import
+#import
+#import
+#import
+#import
+#import
+#import
diff --git a/star_lock/aliyun_face_plugin/ios/Products/BioAuthEngine.framework/Headers/APBBackwardCommand.h b/star_lock/aliyun_face_plugin/ios/Products/BioAuthEngine.framework/Headers/APBBackwardCommand.h
new file mode 100644
index 00000000..a2f189bd
--- /dev/null
+++ b/star_lock/aliyun_face_plugin/ios/Products/BioAuthEngine.framework/Headers/APBBackwardCommand.h
@@ -0,0 +1,60 @@
+//
+// APBBackwardCommand.h
+// BioAuthEngine
+//
+// Created by yukun.tyk on 11/26/15.
+// Copyright © 2015 DTF. All rights reserved.
+//
+
+#import
+
+
+/**
+ * 任务队列可要求框架执行的命令
+ */
+typedef NS_ENUM(NSInteger, APBBackwardCommandType) {
+ BACKWARD_COMMAND_RESTART = 300, //重新开始任务队列,task可以设置params来指定冲新开始的任务下标
+ BACKWARD_COMMAND_ADD_PARALLEL_TASK = 302, //添加并行任务
+ BACKWARD_COMMNAD_GLOBAL_TIMER = 305, //全局timer操作
+ BACKWARD_COMMNAD_UPLOAD_DATA = 400, //合并上传
+ BACKWARD_COMMNAD_STOP_SCANCE = 401, //关闭扫描
+ BACKWARD_COMMNAD_OCRUPLOAD_DATA = 402, //EKYC OCR上传
+ BACKWARD_COMMNAD_OCRUPLOADCONFIRM_DATA = 403, //EKYC OCR确认
+
+};
+
+typedef NS_ENUM(NSInteger, APBTimerCommandType) {
+ TIMER_COMMAND_START, //开始全局计时
+ TIMER_COMMAND_CANCEL, //取消全局计时
+ TIMER_COMMAND_PAUSE, //暂停全局计时
+ TIMER_COMMAND_RESUME, //恢复全局计时
+};
+
+/**
+ * param key {BACKWARD_COMMAND_RESTART}
+ * 重新开始命令,指定从第几个任务开始
+ */
+extern NSString *const kCommandRestartTaskIndexKey;
+
+/**
+ * param key {BACKWARD_COMMAND_ADD_PARALLEL_TASK}
+ * 添加并行任务,value为id,新任务会在新线程中并行运行
+ */
+extern NSString *const kAddParallelTaskInstanceKey;
+
+/**
+ * 全局计时器操作命令
+ * value为NSNumber{APBTimerCommandType}
+ */
+extern NSString *const kGlobalTimerCommandKey;
+
+
+@interface APBBackwardCommand : NSObject
+
+@property(nonatomic, assign, readonly)APBBackwardCommandType commandType;
+@property(nonatomic, strong, readonly)NSDictionary *params;
+
+- (instancetype)initWithCommandType:(APBBackwardCommandType)commandType
+ withParams:(NSDictionary *)params;
+
+@end
diff --git a/star_lock/aliyun_face_plugin/ios/Products/BioAuthEngine.framework/Headers/APBBehavLogModel.h b/star_lock/aliyun_face_plugin/ios/Products/BioAuthEngine.framework/Headers/APBBehavLogModel.h
new file mode 100644
index 00000000..748eb5d5
--- /dev/null
+++ b/star_lock/aliyun_face_plugin/ios/Products/BioAuthEngine.framework/Headers/APBBehavLogModel.h
@@ -0,0 +1,145 @@
+//
+// APBBehavLogModel.h
+// BioAuthEngine
+//
+// Created by yukun.tyk on 3/15/16.
+// Copyright © 2016 DTF. All rights reserved.
+//
+
+#import
+#import
+
+//JSON
+#ifndef SUPPORT_PB
+
+@interface BisClientInfo : NSObject
+@property (nonatomic,strong) NSString* model;
+@property (nonatomic,strong) NSString* os;
+@property (nonatomic,strong) NSString* osVer;
+@property (nonatomic,strong) NSString* clientVer;
+@end
+
+@interface BisBehavToken : NSObject
+@property (nonatomic,strong) NSString* token;
+@property (nonatomic,strong) NSString* type;
+@property (nonatomic,strong) NSString* sampleMode;
+@property (nonatomic,strong) NSString* uid;
+@property (nonatomic,strong) NSString* apdid;
+@property (nonatomic,strong) NSString* appid;
+@property (nonatomic,strong) NSString* behid;
+@property (nonatomic,strong) NSString* bizid;
+@property (nonatomic,strong) NSString* verifyid;
+@property (nonatomic,strong) NSString* vtoken;
+@property (nonatomic,strong) NSString* apdidToken;
+@end
+
+@interface BisBehavCommon : NSObject
+@property (nonatomic,strong) NSString* invtp;
+@property (nonatomic,strong) NSString* tm;
+@property (nonatomic,strong) NSString* retry;
+@end
+
+@interface BisBehavTask : NSObject
+@property (nonatomic,strong) NSString* name;
+@property (nonatomic,strong) NSString* idx;
+@property (nonatomic,strong) NSString* dur;
+@property (nonatomic,strong) NSString* quality;
+@property (nonatomic,strong) NSString* extInfo;
+@end
+
+@interface BisBehavLog : NSObject
+@property (nonatomic,strong) BisClientInfo* clientInfo;
+@property (nonatomic,strong) BisBehavToken* behavToken;
+@property (nonatomic,strong) BisBehavCommon* behavCommon;
+@property (nonatomic,strong) NSMutableArray * behavTask;
+@end
+
+//PB
+#else
+
+#ifdef __cplusplus
+extern "C"{
+#endif
+#import
+
+#ifdef __cplusplus
+}
+#endif
+@class BisBehavCommon;
+@class BisBehavLog;
+@class BisBehavTask;
+@class BisBehavToken;
+@class BisClientInfo;
+
+@interface BisClientInfo : APDPBGeneratedMessage
+@property (readonly) BOOL hasModel;
+@property (readonly) BOOL hasOs;
+@property (readonly) BOOL hasOsVer;
+@property (readonly) BOOL hasClientVer;
+@property (nonatomic,strong) NSString* model;
+@property (nonatomic,strong) NSString* os;
+@property (nonatomic,strong) NSString* osVer;
+@property (nonatomic,strong) NSString* clientVer;
+@end
+
+@interface BisBehavToken : APDPBGeneratedMessage
+@property (readonly) BOOL hasToken;
+@property (readonly) BOOL hasType;
+@property (readonly) BOOL hasSampleMode;
+@property (readonly) BOOL hasUid;
+@property (readonly) BOOL hasApdid;
+@property (readonly) BOOL hasAppid;
+@property (readonly) BOOL hasBehid;
+@property (readonly) BOOL hasBizid;
+@property (readonly) BOOL hasVerifyid;
+@property (readonly) BOOL hasVtoken;
+@property (readonly) BOOL hasApdidToken;
+@property (nonatomic,strong) NSString* token;
+@property (nonatomic) SInt32 type;
+@property (nonatomic) SInt32 sampleMode;
+@property (nonatomic,strong) NSString* uid;
+@property (nonatomic,strong) NSString* apdid;
+@property (nonatomic,strong) NSString* appid;
+@property (nonatomic,strong) NSString* behid;
+@property (nonatomic,strong) NSString* bizid;
+@property (nonatomic,strong) NSString* verifyid;
+@property (nonatomic,strong) NSString* vtoken;
+@property (nonatomic,strong) NSString* apdidToken;
+@end
+
+@interface BisBehavCommon : APDPBGeneratedMessage
+@property (readonly) BOOL hasInvtp;
+@property (readonly) BOOL hasTm;
+@property (readonly) BOOL hasRetry;
+@property (nonatomic,strong) NSString* invtp;
+@property (nonatomic,strong) NSString* tm;
+@property (nonatomic,strong) NSString* retry;
+@end
+
+@interface BisBehavTask : APDPBGeneratedMessage
+@property (readonly) BOOL hasName;
+@property (readonly) BOOL hasIdx;
+@property (readonly) BOOL hasDur;
+@property (readonly) BOOL hasQuality;
+@property (readonly) BOOL hasExtInfo;
+@property (nonatomic,strong) NSString* name;
+@property (nonatomic,strong) NSString* idx;
+@property (nonatomic)SInt32 dur;
+@property (nonatomic)SInt32 quality;
+@property (nonatomic,strong) NSString* extInfo;
+@end
+
+@interface BisBehavLog : APDPBGeneratedMessage
+@property (readonly) BOOL hasClientInfo;
+@property (readonly) BOOL hasBehavToken;
+@property (readonly) BOOL hasBehavCommon;
+@property (readonly) BOOL hasExtAttr;
+@property (nonatomic,strong) BisClientInfo* clientInfo ;
+@property (nonatomic,strong) BisBehavToken* behavToken ;
+@property (nonatomic,strong) BisBehavCommon* behavCommon ;
+@property (nonatomic,strong) NSMutableArray* behavTask ;
+@property (nonatomic,strong) PBMapStringString* extAttr ;
+@end
+
+#endif
+
diff --git a/star_lock/aliyun_face_plugin/ios/Products/BioAuthEngine.framework/Headers/APBBisProtocol.h b/star_lock/aliyun_face_plugin/ios/Products/BioAuthEngine.framework/Headers/APBBisProtocol.h
new file mode 100644
index 00000000..23988a43
--- /dev/null
+++ b/star_lock/aliyun_face_plugin/ios/Products/BioAuthEngine.framework/Headers/APBBisProtocol.h
@@ -0,0 +1,70 @@
+//
+// APBProtocol.h
+// BioAuthEngine
+//
+// Created by yukun.tyk on 3/15/16.
+// Copyright © 2016 DTF. All rights reserved.
+//
+
+#import
+#import
+
+//若不支持pb
+#ifndef SUPPORT_PB
+
+@interface BisClientConfigContent : NSObject
+@property (nonatomic,strong) NSString* token;
+@property (nonatomic,strong) NSString* type;
+@property (nonatomic,strong) NSString* sampleMode;
+@property (nonatomic,strong) NSString* androidcfg;
+@property (nonatomic,strong) NSString* ioscfg;
+@property (nonatomic,strong) NSString* h5cfg;
+@end
+
+@interface BisClientConfig : NSObject
+@property (nonatomic,strong) BisClientConfigContent* content;
+@property (nonatomic,strong) NSString* sign;
+@end
+
+//若支持PB
+#else
+
+#ifdef __cplusplus
+extern "C"{
+#endif
+#import
+
+#ifdef __cplusplus
+}
+#endif
+
+@interface BisClientConfigContent : APDPBGeneratedMessage
+
+@property (readonly) BOOL hasToken;
+@property (readonly) BOOL hasType;
+@property (readonly) BOOL hasSampleMode;
+@property (readonly) BOOL hasAndroidcfg;
+@property (readonly) BOOL hasIoscfg;
+@property (readonly) BOOL hasH5cfg;
+
+@property (nonatomic,strong) NSString* token ;
+@property (nonatomic) SInt32 type ;
+@property (nonatomic) SInt32 sampleMode ;
+@property (nonatomic,strong) NSString* androidcfg ;
+@property (nonatomic,strong) NSString* ioscfg ;
+@property (nonatomic,strong) NSString* h5cfg ;
+@end
+
+@interface BisClientConfig : APDPBGeneratedMessage
+
+@property (readonly) BOOL hasContent;
+@property (readonly) BOOL hasContentBytes;
+@property (readonly) BOOL hasSign;
+
+@property (nonatomic,strong) NSString* content ;
+@property (nonatomic,strong) BisClientConfigContent* contentBytes ;
+@property (nonatomic,strong) NSString* sign ;
+@end
+
+#endif
+
diff --git a/star_lock/aliyun_face_plugin/ios/Products/BioAuthEngine.framework/Headers/APBBisRequestBuilder.h b/star_lock/aliyun_face_plugin/ios/Products/BioAuthEngine.framework/Headers/APBBisRequestBuilder.h
new file mode 100644
index 00000000..3af00800
--- /dev/null
+++ b/star_lock/aliyun_face_plugin/ios/Products/BioAuthEngine.framework/Headers/APBBisRequestBuilder.h
@@ -0,0 +1,30 @@
+//
+// APBBisRequestBuilder.h
+// BioAuthEngine
+//
+// Created by 晗羽 on 21/04/2018.
+// Copyright © 2018 DTF. All rights reserved.
+//
+
+#import
+#import
+#import
+
+@interface APBBisRequestBuilder : NSObject
+
++(APBBisUploadGwRequest *) buildRequestwithpubKey:(NSString *) pubKey
+ token:(NSString *) bistoken
+ contentData:(NSString *)content
+ behaveLog:(BisBehavLog *)behavlog
+ andCypherData:(NSString *) aesKeyData
+ encrypt:(BOOL) encrypt;
+
++ (APBBisUploadGwRequest *)buildEKYCRequestWithContentData:(NSString *)content
+ behaveLog:(BisBehavLog *)behavlog
+ andCypherData:(NSString *)aesKeyData;
+
++ (NSString *)rsaImage:(NSString *) pubKey image:(UIImage *)image;
+
++ (UIImage *)compressImage:(UIImage *)image;
+
+@end
diff --git a/star_lock/aliyun_face_plugin/ios/Products/BioAuthEngine.framework/Headers/APBBisUploadGwRequest.h b/star_lock/aliyun_face_plugin/ios/Products/BioAuthEngine.framework/Headers/APBBisUploadGwRequest.h
new file mode 100755
index 00000000..7ea22267
--- /dev/null
+++ b/star_lock/aliyun_face_plugin/ios/Products/BioAuthEngine.framework/Headers/APBBisUploadGwRequest.h
@@ -0,0 +1,47 @@
+//com..bis.common.service.facade.gw.model.upload.BisJsonUploadGwRequest
+/*
+ *generation date:Mon Mar 14 10:35:56 CST 2016
+ *tool version:5.0.2
+ *template version:4.1.1
+ */
+
+#import
+
+#ifndef SUPPORT_PB
+
+@interface APBBisUploadGwRequest : NSObject
+
+@property(nonatomic, strong) NSString *bisToken;
+@property(nonatomic, strong) NSString *content;
+@property(nonatomic, strong) NSString *contentSig;
+@property(nonatomic, strong) NSString *behavLog;
+@property(nonatomic, strong) NSString *behavLogSig;
+
+@end
+
+#else
+
+#ifdef __cplusplus
+extern "C"{
+#endif
+#import
+
+#ifdef __cplusplus
+}
+#endif
+
+@interface APBBisUploadGwRequest : APDPBGeneratedMessage
+@property (readonly) BOOL hasBisToken;
+@property (readonly) BOOL hasContent;
+@property (readonly) BOOL hasContentSig;
+@property (readonly) BOOL hasBehavLog;
+@property (readonly) BOOL hasBehavLogSig;
+
+@property (nonatomic,strong) NSString* bisToken ;
+@property (nonatomic,strong) NSData* content ;
+@property (nonatomic,strong) NSData* contentSig ;
+@property (nonatomic,strong) NSData* behavLog ;
+@property (nonatomic,strong) NSData* behavLogSig ;
+@end
+
+#endif
diff --git a/star_lock/aliyun_face_plugin/ios/Products/BioAuthEngine.framework/Headers/APBCommand.h b/star_lock/aliyun_face_plugin/ios/Products/BioAuthEngine.framework/Headers/APBCommand.h
new file mode 100644
index 00000000..92646eda
--- /dev/null
+++ b/star_lock/aliyun_face_plugin/ios/Products/BioAuthEngine.framework/Headers/APBCommand.h
@@ -0,0 +1,28 @@
+//
+// APBCommand.h
+// BioAuthEngine
+//
+// Created by yukun.tyk on 11/26/15.
+// Copyright © 2015 DTF. All rights reserved.
+//
+
+#import
+
+/**
+ * 业务方可以执行的任务类型
+ */
+typedef NS_ENUM(NSInteger, APBCommandType) {
+ COMMAND_QUIT = 100, //业务方强制退出
+ COMMAND_CLOSE_UPLOADPAGE = 101, //业务方关闭上传界面
+ COMMAND_BIS_RETURN = 102, //业务方传递bis服务器返回结果,或网络错误结果
+};
+
+@interface APBCommand : NSObject
+
+@property(nonatomic, assign, readonly)APBCommandType commandType; //操作类型
+@property(nonatomic, strong, readonly)NSDictionary *params; //操作扩展参数,可以为空
+
+- (instancetype)initWithCommandType:(APBCommandType)commandType
+ withParams:(NSDictionary *)params;
+
+@end
diff --git a/star_lock/aliyun_face_plugin/ios/Products/BioAuthEngine.framework/Headers/APBConfig.h b/star_lock/aliyun_face_plugin/ios/Products/BioAuthEngine.framework/Headers/APBConfig.h
new file mode 100644
index 00000000..9798e1d8
--- /dev/null
+++ b/star_lock/aliyun_face_plugin/ios/Products/BioAuthEngine.framework/Headers/APBConfig.h
@@ -0,0 +1,22 @@
+//
+// APBConfig.h
+// BioAuthEngine
+//
+// Created by yukun.tyk on 3/8/16.
+// Copyright © 2016 DTF. All rights reserved.
+//
+
+#import
+
+//是否支持protobuffer
+//#define SUPPORT_PB
+//#define USE_FPP
+
+
+#ifdef SUPPORT_PB
+static const int kRPCFormat = 1;
+#else
+static const int kRPCFormat = 0;
+#endif
+
+
diff --git a/star_lock/aliyun_face_plugin/ios/Products/BioAuthEngine.framework/Headers/APBDTFUploadToastView.h b/star_lock/aliyun_face_plugin/ios/Products/BioAuthEngine.framework/Headers/APBDTFUploadToastView.h
new file mode 100644
index 00000000..da4362dc
--- /dev/null
+++ b/star_lock/aliyun_face_plugin/ios/Products/BioAuthEngine.framework/Headers/APBDTFUploadToastView.h
@@ -0,0 +1,16 @@
+//
+// APBDTFUploadTostView.h
+// APBToygerFacade
+//
+// Created by richard on 28/02/2018.
+// Copyright © 2018 DTF. All rights reserved.
+//
+#import
+@interface APBDTFUploadToastView : UIView
+
+@property(nonatomic,strong)UIActivityIndicatorView* indicator;
+
+- (instancetype)initWithFrame:(CGRect)frame;
+
+- (void)andSubViewWithFrame:(CGRect)frame AndText:(NSString *)text andStartY:(float)startY;
+@end
diff --git a/star_lock/aliyun_face_plugin/ios/Products/BioAuthEngine.framework/Headers/APBDeviceInfo.h b/star_lock/aliyun_face_plugin/ios/Products/BioAuthEngine.framework/Headers/APBDeviceInfo.h
new file mode 100644
index 00000000..25926527
--- /dev/null
+++ b/star_lock/aliyun_face_plugin/ios/Products/BioAuthEngine.framework/Headers/APBDeviceInfo.h
@@ -0,0 +1,34 @@
+//
+// APBDeviceInfo.h
+// BioAuthEngine
+//
+// Created by 晗羽 on 28/02/2018.
+// Copyright © 2018 DTF. All rights reserved.
+//
+
+#import
+#import
+
+@interface APBDeviceInfo : NSObject
+
+@property(nonatomic,strong)NSString* dtfDeviceToken;
+
++ (instancetype)getInstance;
+
+//获取语言类型
+- (NSInteger)languageCode;
+
+- (NSString *)languageName;
+
+//在某些未初始化设备指纹的地方提供初始化接口
+- (void)initDeviceInfo;
+
+//获取apdidtoken
+- (NSString *)getApdidToken;
+
+
+- (BOOL)loadDylib;
+
+- (UIViewController *)currentVC;
+
+@end
diff --git a/star_lock/aliyun_face_plugin/ios/Products/BioAuthEngine.framework/Headers/APBEvent.h b/star_lock/aliyun_face_plugin/ios/Products/BioAuthEngine.framework/Headers/APBEvent.h
new file mode 100644
index 00000000..c200789d
--- /dev/null
+++ b/star_lock/aliyun_face_plugin/ios/Products/BioAuthEngine.framework/Headers/APBEvent.h
@@ -0,0 +1,43 @@
+//
+// APBEvent.h
+// BioAuthEngine
+//
+// Created by yukun.tyk on 11/26/15.
+// Copyright © 2015 DTF. All rights reserved.
+//
+
+#import
+
+@class APBCommand;
+
+extern NSString *const kKeepUploadPageKey; //extInfo key: 生物识别产品是否要保持上传界面,默认不保持
+
+/**
+ * task可以响应的事件类型
+ */
+typedef NS_ENUM(NSInteger, APBEventType) {
+ EVENT_QUIT = 100, //退出
+ EVENT_CLOSE_UPLOADPAGE = 101, //业务方关闭上传界面
+ EVENT_BIS_RETURN = 102, //bis服务器返回
+ EVENT_SYSTEM_INTERRUPT = 200, //系统中断
+ EVENT_SYSTEM_INTERRUPT_RESUME = 201, //系统中断恢复
+ EVENT_GLOBAL_TIMEOUT = 202, //全局超时
+ EVENT_TASK_TIMEOUT = 203, //task超时
+ EVENT_ALERT_APPEAR = 204, //alert框显示
+ EVENT_ALERT_DISAPPEAR = 205, //alert框退出
+ EVENT_ABNORMAL_CLOSE = 206, //异常退出
+ EVENT_SYSTEM_ENTER_FOREGROUND = 207, //后台返回前台
+};
+
+
+@interface APBEvent : NSObject
+
+@property(nonatomic, assign, readonly) APBEventType eventType;
+@property(nonatomic, strong, readonly) NSDictionary *params;
+
+- (instancetype)initWithEventType:(APBEventType)eventType
+ withParam:(NSDictionary *)params;
+
++ (instancetype)eventWithCommand:(APBCommand *)command;
+
+@end
diff --git a/star_lock/aliyun_face_plugin/ios/Products/BioAuthEngine.framework/Headers/APBGatewayFacade.h b/star_lock/aliyun_face_plugin/ios/Products/BioAuthEngine.framework/Headers/APBGatewayFacade.h
new file mode 100755
index 00000000..412fc3cb
--- /dev/null
+++ b/star_lock/aliyun_face_plugin/ios/Products/BioAuthEngine.framework/Headers/APBGatewayFacade.h
@@ -0,0 +1,27 @@
+//
+// APBGatewayFacade.h
+// BioAuthEngine
+//
+// Created by richard on 26/02/2018.
+// Copyright © 2018 com..iphoneclient.DTF. All rights reserved.
+//
+
+#import
+
+typedef void (^apRpcCompletionBlock)(BOOL success, NSObject *result);
+
+@interface APBGatewayFacade : NSObject
+
+
+/**
+ * rpc结果回调
+ *
+ * @param success 网络交互是否成功(不代表服务端返回的结果)
+ * @param result 服务端返回的结果
+ */
+-(void)request:(id)bisUploadGwRequest
+ withConfig:(NSDictionary *)configDict
+completionBlock:(apRpcCompletionBlock)blk;
+
+@end
+
diff --git a/star_lock/aliyun_face_plugin/ios/Products/BioAuthEngine.framework/Headers/APBLogger.h b/star_lock/aliyun_face_plugin/ios/Products/BioAuthEngine.framework/Headers/APBLogger.h
new file mode 100644
index 00000000..46cacd28
--- /dev/null
+++ b/star_lock/aliyun_face_plugin/ios/Products/BioAuthEngine.framework/Headers/APBLogger.h
@@ -0,0 +1,43 @@
+//
+// APBLogger.h
+// BioAuthEngine
+//
+// Created by yukun.tyk on 12/8/15.
+// Copyright © 2015 DTF. All rights reserved.
+//
+
+#import
+#import
+
+
+
+extern NSString *const kDebugNotiName; //log信息发送的通知名称
+
+
+#define __FILE_NAME__ (strrchr(__FILE__, '/') ? strrchr(__FILE__, '/') + 1 : __FILE__)
+
+#ifdef DEBUG //debug
+// std::cout<<"\n[BIOAUTH]:" << [[NSString stringWithFormat:fmt, ##__VA_ARGS__]cStringUsingEncoding:NSUTF8StringEncoding] \
+// <<", function:" << __PRETTY_FUNCTION__ << ", file:" << __FILE_NAME__ << ", line:" << __LINE__ << ", date:" << \
+// __DATE__ << ", time:" <<__TIME__<
+
+@interface APBProxy : NSProxy
+
+/**
+ The proxy target.
+ */
+@property (nonatomic, weak, readonly) id target;
+
+/**
+ Creates a new weak proxy for target.
+
+ @param target Target object.
+
+ @return A new proxy object.
+ */
+- (instancetype)initWithTarget:(id)target;
+
+/**
+ Creates a new weak proxy for target.
+
+ @param target Target object.
+
+ @return A new proxy object.
+ */
++ (instancetype)proxyWithTarget:(id)target;
+
+@end
diff --git a/star_lock/aliyun_face_plugin/ios/Products/BioAuthEngine.framework/Headers/APBRequest.h b/star_lock/aliyun_face_plugin/ios/Products/BioAuthEngine.framework/Headers/APBRequest.h
new file mode 100644
index 00000000..33a2b979
--- /dev/null
+++ b/star_lock/aliyun_face_plugin/ios/Products/BioAuthEngine.framework/Headers/APBRequest.h
@@ -0,0 +1,24 @@
+//
+// APBRequest.h
+// BioAuthEngine
+//
+// Created by yukun.tyk on 11/9/15.
+// Copyright © 2015 DTF. All rights reserved.
+//
+
+#import
+@class UIViewController;
+
+extern NSString *const kKeepUploadPageKey; //extInfo key: 生物识别产品是否要保持上传界面,默认不保持
+
+@interface APBRequest : NSObject
+
+@property(nonatomic, weak, readonly)UIViewController *vc; //显示的viewController
+@property(nonatomic, copy, readonly)NSString *protocol; //服务端下发的配置参数
+@property(nonatomic, strong, readonly)NSDictionary *extInfo; //扩展业务参数
+
+- (instancetype)initWithViewController:(UIViewController *)vc
+ protocolInfo:(NSString *)protocol
+ extInfo:(NSDictionary *)ext;
+
+@end
diff --git a/star_lock/aliyun_face_plugin/ios/Products/BioAuthEngine.framework/Headers/APBResponse.h b/star_lock/aliyun_face_plugin/ios/Products/BioAuthEngine.framework/Headers/APBResponse.h
new file mode 100644
index 00000000..3dc20aa1
--- /dev/null
+++ b/star_lock/aliyun_face_plugin/ios/Products/BioAuthEngine.framework/Headers/APBResponse.h
@@ -0,0 +1,65 @@
+//
+// APBResponse.h
+// BioAuthEngine
+//
+// Created by yukun.tyk on 11/9/15.
+// Copyright © 2015 DTF. All rights reserved.
+//
+
+#import
+
+/**
+ 结果码定义
+ */
+typedef enum {
+ APB_RESULT_SUCCESS = 500, //操作成功(不弹框)
+ APB_RESULT_SUCCESS_VALIDATE_UPLOAD = 501, //操作成功(不弹框),合并上传
+ APB_RESULT_SUCCESS_VALIDATE_OCRUPLOAD = 502, //EKYC OCR识别
+ APB_RESULT_SUCCESS_VALIDATE_OCRUPLOAD_CONFIRM = 503, //EKYC OCR确认
+
+ APB_RESULT_CAMERA_PERMISSION_DENIED = 100, //无摄像头权限(弹框)
+ APB_RESULT_CAMERA_DEVICE_UNSUPPORTED = 101, //摄像头不支持(弹框)
+ APB_RESULT_CAMERA_CPU_UNSUPPORTED = 102, //CPU不支持(弹框)
+ APB_RESULT_DEVICE_UNSUPPORTED = 103, //设备不支持(弹框)
+ APB_RESULT_UNDEFINED_ERROR = 104, //其他异常(不弹框)
+
+ APB_RESULT_CAMERA_INIT_FAILED = 200, //摄像头初始化失败(不弹框)
+ APB_RESULT_INVALID_ARGUMENT = 201, //无效的业务参数(不弹框)
+ APB_RESULT_INTERRUPT = 202, //操作中断(弹框)
+ APB_RESULT_TIMEOUT = 203, //操作超时(弹框)
+ APB_RESULT_RESOURCE_ABSENCE = 204, //缺少资源文件(不弹框)
+ APB_RESULT_SYSTEM_EXCEPT = 205, //系统异常(不弹框)
+ APB_RESULT_ENGINE_EXCEPT = 206, //框架内部错误(不弹框)
+ APB_RESULT_NETWORK_TIMEOUT = 207, //网络超时(弹框)
+ APB_RESULT_SERVER_FAIL = 208, //服务端错误(弹框)
+ APB_RESULT_RETRY_LIMIT = 209, //重试次数达到上限(弹框)
+ APB_RESULT_AUTH_REJECT = 210, //用户拒绝人脸授权(弹框)
+ APB_RESULT_NETWORK_FAIL = 211, //网络出错
+
+ APB_RESULT_USE_PASSWORD = 300, //用户选择账密登录(弹框)
+ APB_RESULT_OTHER_VERIFICATION = 303, //其他核身方式
+ APB_RESULT_LOCALVERIFY_FAIL = 304, //本地比对失败
+}APBResultType;
+
+@interface APBResponse : NSObject
+
+@property(nonatomic, assign)APBResultType resultType; //结果码
+@property(nonatomic, copy)NSString *failReason; //失败原因
+@property(nonatomic, copy)NSString *token; //bis token
+@property(nonatomic, strong)NSMutableDictionary *successResult; //成功结果
+@property (nonatomic,copy) NSString* retCodeSub ;
+@property (nonatomic,copy) NSString* retMessageSub ;
+
+- (instancetype)initWithResultType:(APBResultType)type
+ failReason:(NSString *)reason
+ token:(NSString *)token
+ retCodeSub:(NSString *)retCodeSub
+ retMessageSub:(NSString *)retMessageSub
+ successResult:(NSMutableDictionary *)result;
+
+- (instancetype)initWithResultType:(APBResultType)type
+ failReason:(NSString *)reason
+ token:(NSString *)token
+ successResult:(NSMutableDictionary *)result;
+
+@end
diff --git a/star_lock/aliyun_face_plugin/ios/Products/BioAuthEngine.framework/Headers/APBTaskContext.h b/star_lock/aliyun_face_plugin/ios/Products/BioAuthEngine.framework/Headers/APBTaskContext.h
new file mode 100644
index 00000000..3760d6c3
--- /dev/null
+++ b/star_lock/aliyun_face_plugin/ios/Products/BioAuthEngine.framework/Headers/APBTaskContext.h
@@ -0,0 +1,31 @@
+//
+// APBTaskContext.h
+// BioAuthEngine
+//
+// Created by yukun.tyk on 11/27/15.
+// Copyright © 2015 DTF. All rights reserved.
+//
+
+#import
+#import "APBResponse.h"
+
+/**
+ 任务状态定义
+ */
+typedef enum {
+ STATE_NOT_RUNNING, //未运行
+ STATE_RUNNING, //运行态
+ STATE_FINISHED, //任务结束
+}APBTaskState;
+
+@interface APBTaskContext : NSObject
+
+@property(nonatomic, assign)APBTaskState state; //任务状态
+@property(nonatomic, assign)APBResultType resultCode; //任务结果码
+@property(nonatomic, copy)NSString *failReason; //任务失败原因
+@property(nonatomic, strong)NSMutableDictionary *successResult; //任务成功结果
+
+@property (nonatomic,strong) NSString* retCodeSub ; //产品结果明细,不影响决策
+@property (nonatomic,strong) NSString* retMessageSub ; //retMessageSub对应的文案
+
+@end
diff --git a/star_lock/aliyun_face_plugin/ios/Products/BioAuthEngine.framework/Headers/APBToygerBehavlogManager.h b/star_lock/aliyun_face_plugin/ios/Products/BioAuthEngine.framework/Headers/APBToygerBehavlogManager.h
new file mode 100644
index 00000000..a4c8888e
--- /dev/null
+++ b/star_lock/aliyun_face_plugin/ios/Products/BioAuthEngine.framework/Headers/APBToygerBehavlogManager.h
@@ -0,0 +1,44 @@
+//
+// APFBehavlogManager.h
+// APFaceDetectBiz
+//
+// Created by yukun.tyk on 9/8/16.
+// Copyright © 2016 DTF. All rights reserved.
+//
+
+#import
+
+@class BisBehavLog, BisBehavTask;
+
+@interface APBToygerBehavlogManager : NSObject
+
+/**
+ * @param config 配置参数,各种id和token
+ */
+- (instancetype)initWithConfig:(NSDictionary *)config;
+
+/**
+ * 添加行为日志
+ *
+ * @param task 任务
+ */
+- (void)addTask:(BisBehavTask *)task;
+
+/**
+ * clearTask
+ *
+ *
+ */
+- (void)clearTask;
+/**
+ * 创建行为日志
+ *
+ * @param invtp 触发类型
+ * @param retry 重试次数
+ *
+ * @return 行为日志
+ */
+- (BisBehavLog *)generateLogWithInvokeType:(NSString *)invtp
+ withRetry:(NSInteger)retry;
+
+@end
diff --git a/star_lock/aliyun_face_plugin/ios/Products/BioAuthEngine.framework/Headers/APBToygerBioBisConfigManager.h b/star_lock/aliyun_face_plugin/ios/Products/BioAuthEngine.framework/Headers/APBToygerBioBisConfigManager.h
new file mode 100644
index 00000000..4f6ed596
--- /dev/null
+++ b/star_lock/aliyun_face_plugin/ios/Products/BioAuthEngine.framework/Headers/APBToygerBioBisConfigManager.h
@@ -0,0 +1,45 @@
+//
+// APBioBisConfigManager.h
+// APFaceDetectBiz
+//
+// Created by 晗羽 on 1/7/16.
+// Copyright © 2016 DTF. All rights reserved.
+//
+
+#import
+#import "APBToygerRemoteConfig.h"
+
+@interface APBToygerBioBisConfigManager : NSObject
+/**
+ * 初始化biscfg
+ *
+ * @param biscfg pb/json格式
+ *
+ * @return 生成一个配置对象
+ */
+- (instancetype)initWithBisConfig:(NSString *)biscfg;
+
+- (instancetype)initWithBisDocConfig:(NSString *)biscfg;
+/**
+ * bisToken
+ *
+ * @return 服务端下放的bistoken,每次人脸识别服务端的ID
+ */
+- (NSString * )bisToken;
+
+- (NSString * )ioscfg;
+
+- (NSString * )iosvoicecfg;
+
+- (APBToygerSoluCfg *)solucfg;
+
+- (APBToygerRemoteConfig *)bisConfig;
+
+- (int) sampleMode;
+
+- (BOOL) isLogin;
+
+- (NSString *) apBioSecPublicKey;
+
++ (NSDictionary *)getDictfrom:(NSString *) jsonStr;
+@end
diff --git a/star_lock/aliyun_face_plugin/ios/Products/BioAuthEngine.framework/Headers/APBToygerDataCenter.h b/star_lock/aliyun_face_plugin/ios/Products/BioAuthEngine.framework/Headers/APBToygerDataCenter.h
new file mode 100644
index 00000000..65428bc1
--- /dev/null
+++ b/star_lock/aliyun_face_plugin/ios/Products/BioAuthEngine.framework/Headers/APBToygerDataCenter.h
@@ -0,0 +1,129 @@
+//
+// APFDataCenter.h
+// APFaceDetectBiz
+//
+// Created by yukun.tyk on 9/8/16.
+// Copyright © 2016 DTF. All rights reserved.
+//
+
+#import
+#import
+
+@class BisBehavTask;
+
+@protocol APBToygerDataCenterDelegate
+
+/**
+ * 收到response的回调
+ * @param success rpc是否成功
+ * @param retCode 结果码
+ * @param msg 结果信息
+ * @param ext 扩展信息
+ */
+- (void)didFinishUploadWithSuccess:(BOOL)success
+ retCode:(NSString *)retCode
+ retMessage:(NSString *)msg
+ extInfo:(NSString *)ext;
+@end
+
+
+@interface APBToygerDataCenter : NSObject
+
+@property (nonatomic, copy) NSString *pubkey;
+/**
+ * 初始化
+ *
+ * @param config 配置参数
+ */
+- (instancetype)initWithConfig:(NSDictionary *)config;
+
+
+
+#ifdef SUPPORT_PB
+
+/**
+ * 添加采集数据
+ *
+ * @param monitorImage 监控照片
+ * @param panoImage 全景图,若该参数指定,将替换之前的全景图
+ */
+- (void)addMonitorImage:(UIImage *)monitorImage
+ replacePanoImage:(NSData *)panoImage
+ andCypherKeyData:(NSData *)cypherKey;
+
+#else
+
+/**
+ * 添加采集数据
+ *
+ * @param monitorImage 监控照片
+ * @param panoImage 全景图,若该参数指定,将替换之前的全景图
+ */
+- (void)addMonitorImage:(UIImage *)monitorImage
+ replacePanoImage:(NSString *)panoImage
+ andCypherKeyData:(NSString *)cypherKey;
+
+#endif
+
+/**
+ * 清除采集数据
+ *
+ * @param monitorImage 监控照片
+ * @param panoImage 全景图,
+ */
+- (void)clearMonitorImage:(BOOL)monitor
+ panoImage:(BOOL)pano;
+
+/**
+ * 添加行为日志
+ *
+ * @param task 任务
+ */
+- (void)addBehavTask:(BisBehavTask *)task;
+
+/**
+ * clearTask
+ *
+ *
+ */
+- (void)clearTask;
+/**
+ * clear
+ *
+ *
+ */
+- (void)clear;
+
+- (BOOL)hasFaceData;
+
+/**
+ * 建立上传数据request
+ *
+ * @param monitor 是否上传监控照片
+ * @param behav 是否上传行为日志
+ * @param pano 是否上传全景图
+ * @param type 触发类型
+ * @param retry 重试次数
+ */
+- (APBBisUploadGwRequest *)buildUploadRequestWithMonitorImage:(BOOL)monitor
+ behavLog:(BOOL)behav
+ panoImage:(BOOL)pano
+ invokeType:(NSString *)type
+ retryCnt:(NSInteger)retry;
+
+- (APBBisUploadGwRequest *)buildUploadRequestWithRetryCnt:(NSInteger)retry;
+
+- (APBBisUploadGwRequest *)buildUploadRequestWithContent:(NSData *)data
+ cypherKey:(NSData *)cypherKeyData
+ invokeType:(NSString *)type
+ retryCnt:(NSInteger)retry;
+
+- (NSString *)rsaImage:(NSString *)pubkey image:(UIImage *)image ;
+
+
+/**
+ * 设置delegate
+ */
+- (void)setDelegate:(id)delegate;
+
+@end
diff --git a/star_lock/aliyun_face_plugin/ios/Products/BioAuthEngine.framework/Headers/APBToygerRemoteConfig.h b/star_lock/aliyun_face_plugin/ios/Products/BioAuthEngine.framework/Headers/APBToygerRemoteConfig.h
new file mode 100644
index 00000000..9c766777
--- /dev/null
+++ b/star_lock/aliyun_face_plugin/ios/Products/BioAuthEngine.framework/Headers/APBToygerRemoteConfig.h
@@ -0,0 +1,188 @@
+//
+// APFRemoteConfig.h
+// AppArch
+//
+// Created by yukun.tyk on 8/29/16.
+// Copyright © 2016 DTF. All rights reserved.
+//
+
+#import
+#import
+
+
+@class APBToygerSceneEnv, APBToygerVideo, APFRemoteConfig, APBToygerCollect, APBDragonflyLivenessConfig,APBGeminiLivenessConfig;
+@class APBToygerNavigatePage, APBToygerAlgorithm, APBToygerTips;
+
+@interface APBToygerSoluCfg: NSObject
+
+@property(nonatomic, copy) NSArray *order;
+
+@property(nonatomic, strong) APBToygerNavigatePage *navi;
+
+@end
+
+/**
+ * 协议配置
+ */
+@interface APBToygerRemoteConfig : NSObject
+
+@property(nonatomic, strong)APBToygerSceneEnv *sceneEnv;
+@property(nonatomic, strong)APBToygerNavigatePage *navi;
+@property(nonatomic, copy) NSDictionary *suitable;
+@property(nonatomic, strong)APBToygerCollect *coll;
+@property(nonatomic, copy) NSDictionary *upload;
+@property(nonatomic, copy) NSDictionary *algorithm;
+@property(nonatomic, copy) NSArray *scanAlgorithm;
+@property(nonatomic, strong)APBToygerTips * faceTips;
+@property(nonatomic, assign)NSInteger env;
+@property(nonatomic, assign)NSInteger ui;
+@property(nonatomic, copy)NSString *sdkVersion;
+@property(nonatomic, strong)APBToygerVideo * video;
+@property(nonatomic, copy)NSString *verifyMode;
+@property(nonatomic, copy)NSString *token;
+
++(APBToygerRemoteConfig *)defaultConfig;
++ (void)loadFromJSON:(NSString *)json toObject:(NSObject*) obj;
+@end
+
+/**
+ * 场景配置
+ */
+@interface APBToygerSceneEnv : NSObject
+
+@property(nonatomic, copy)NSString *sceneCode;
+@property(nonatomic, copy)NSString *sceneType;
+
++(APBToygerSceneEnv *)defaultConfig;
+
+@end
+
+/**
+ * 引导页配置
+ */
+@interface APBToygerNavigatePage : NSObject
+
+@property(nonatomic, assign)BOOL enable;
+@property(nonatomic, copy)NSString *url;
+
++ (APBToygerNavigatePage *)defaultConfig;
+
+@end
+
+/**
+ * 采集场景配置
+ */
+@interface APBToygerCollect : NSObject
+
+@property(nonatomic, assign)NSInteger retry;
+@property(nonatomic, assign)CGFloat minangle;
+@property(nonatomic, assign)CGFloat maxangle;
+@property(nonatomic, assign)CGFloat near;
+@property(nonatomic, assign)CGFloat far;
+@property(nonatomic, assign)NSInteger minlight;
+@property(nonatomic, assign)NSInteger time;
+@property(nonatomic, assign)NSInteger light;
+@property(nonatomic, assign)NSInteger imageIndex;
+@property(nonatomic, assign)BOOL uploadLivePic;
+@property(nonatomic, assign)NSInteger uploadMonitorPic;
+@property(nonatomic, assign)BOOL progressbar;
+@property(nonatomic, assign)BOOL uploadBestPic;
+@property(nonatomic, assign)BOOL uploadPoseOkPic;
+@property(nonatomic, assign)BOOL uploadBigPic;
+@property(nonatomic, assign)BOOL authorization;
+@property(nonatomic, assign)NSInteger mineDscore;
+@property(nonatomic, assign)NSInteger mineVideo;
+@property(nonatomic, strong)NSArray *actionMode;
+@property(nonatomic, assign) NSInteger pageNo;
+@property(nonatomic, copy) NSString *docType;
+@property(nonatomic, assign) NSInteger retryLimit;
+@property(nonatomic, assign) NSInteger scanTimeout;
+@property(nonatomic, copy) NSString *uiType;
+@property(nonatomic, copy) NSString *docInputMode;
+@property(nonatomic, assign) CGFloat docUIRatio;
+@property(nonatomic, copy) NSString *multiLangVer;
+
++ (APBToygerCollect *)defaulConfig;
+
+@end
+
+
+
+/**
+ * 视频设置
+ */
+@interface APBToygerVideo : NSObject
+
+@property(nonatomic, assign)NSInteger width;
+@property(nonatomic, assign)NSInteger height;
+@property(nonatomic, assign)NSInteger duration;
+@property(nonatomic, assign)NSInteger bitrate;
+@property(nonatomic, assign)NSInteger fps;
+@property(nonatomic, assign)BOOL enable; ;
+
++(APBToygerVideo *)defaultConfig;
+
+@end
+
+
+
+@interface APBToygerAlertConfig : NSObject
+
+@property(nonatomic, copy)NSString * title;
+@property(nonatomic, copy)NSString * message;
+@property(nonatomic, copy)NSString * leftButtonText;
+@property(nonatomic, copy)NSString * rightButtonText;
+@property(nonatomic, assign)NSInteger returnCode;
+
+
+@end
+
+@interface APBToygerTips : NSObject
+
+//required
+@property(nonatomic, strong)APBToygerAlertConfig * timeoutAlert;
+@property(nonatomic, strong)APBToygerAlertConfig * failAlert;
+@property(nonatomic, strong)APBToygerAlertConfig * limitAlert;
+@property(nonatomic, strong)APBToygerAlertConfig * networkErrorAlert;
+@property(nonatomic, strong)APBToygerAlertConfig * interruptAlert;
+
+@property (nonatomic, copy) NSString *sceneText;
+@property (nonatomic, copy) NSString *bottomText;
+@property (nonatomic, copy) NSString *topText_rectwidth;
+@property (nonatomic, copy) NSString *topText_noface;
+@property (nonatomic, copy) NSString *topText_face_too_more;
+@property (nonatomic, copy) NSString *topText_blur;
+@property (nonatomic, copy) NSString *topText_light;
+@property (nonatomic, copy) NSString *topText_pitch;
+@property (nonatomic, copy) NSString *topText_yaw;
+@property (nonatomic, copy) NSString *topText_quality;
+@property (nonatomic, copy) NSString *topText_integrity;
+@property (nonatomic, copy) NSString *topText_max_rectwidth;
+@property (nonatomic, copy) NSString *topText_stay;
+@property (nonatomic, copy) NSString *topText_openness;
+@property (nonatomic, copy) NSString *topText_blink;
+@property (nonatomic, copy) NSString *topText_left_yaw;
+@property (nonatomic, copy) NSString *topText_right_yaw;
+@property (nonatomic, copy) NSString *topText_mouth_open;
+@property (nonatomic, copy) NSString *brandTip;
+@property (nonatomic, copy) NSString *stopScanTip;
+
+
+@property (nonatomic, copy) NSString *garfield_guideTitle;
+@property (nonatomic, copy) NSString *garfield_guideMsg;
+
+//optional
+
+@property(nonatomic, strong)APBToygerAlertConfig * unsurpportAlert;
+@property(nonatomic, strong)APBToygerAlertConfig * systemVersionErrorAlert;
+@property(nonatomic, strong)APBToygerAlertConfig * systemErrorAlert;
+@property(nonatomic, strong)APBToygerAlertConfig * cameraNoPermissionAlert;
+@property(nonatomic, strong)APBToygerAlertConfig * exitAlert;
+@property(nonatomic, strong)APBToygerAlertConfig * authorizationAlert;
+@property(nonatomic, strong)APBToygerAlertConfig * failNoRetryAlert;
+
++(APBToygerTips *)defaultConfig;
+
+@end
+
+
diff --git a/star_lock/aliyun_face_plugin/ios/Products/BioAuthEngine.framework/Headers/BioAuthCommonSetting.h b/star_lock/aliyun_face_plugin/ios/Products/BioAuthEngine.framework/Headers/BioAuthCommonSetting.h
new file mode 100644
index 00000000..c6457b05
--- /dev/null
+++ b/star_lock/aliyun_face_plugin/ios/Products/BioAuthEngine.framework/Headers/BioAuthCommonSetting.h
@@ -0,0 +1,432 @@
+//
+// BioAuthCommonSetting.h
+// BioAuthEngine
+//
+// Created by shouyi.www on 2017/5/19.
+// Copyright © 2017年 DTF. All rights reserved.
+//
+
+#ifndef BioAuthCommonSetting_h
+#define BioAuthCommonSetting_h
+
+typedef NS_ENUM(NSUInteger, BioAuthAlertType) {
+ BioAuthALert_Unknown,
+ BioAuthAlert_Unsupport,
+ BioAuthAlert_WrongSystemVersion,
+ BioAuthAlert_SystemError,
+ BioAuthAlert_NoCameraPermission,
+ BioAuthAlert_Exit,
+ BioAuthAlert_TimeOut,
+ BioAuthAlert_Fail,
+ BioAuthAlert_Limit,
+ BioAuthAlert_NetworkError,
+ BioAuthAlert_Interrupt,
+};
+
+static NSString *const kBioAuthTipMoveClose = @"请离近一点";
+static NSString *const kBioAuthTipAdjustGesture = @"请调整姿势";
+static NSString *const kBioAuthTipMoveAway = @"请离远一点";
+static NSString *const kBioAuthTipKeepStill = @"请保持不动";
+static NSString *const kBioAuthStatusOk = @"Okay";
+static NSString *const kBioAuthStatusTooFar = @"too far";
+static NSString *const kBioAuthStatusTooClose = @"too close";
+static NSString *const kBioAuthStatusNoEye = @"no eye";
+
+static NSString *const kBioAuthEyeStatus = @"eyestatus";
+static NSString *const kBioAuthGyroStatus = @"gyrostatus";
+static NSString *const kBioAuthEVVer = @"evVer";
+static NSString *const kBioAuthBVer = @"bEva";
+static NSString *const kBioAuthFEVer = @"feVer";
+static NSString *const kBioAuthEyeVerify = @"eyeverify";
+static NSString *const kBioAuthBisAction = @"bis_action";
+static NSString *const kBioAuthDetectEndTimeCost = @"kBioAuthDetectEndTimeCost";
+static NSString *const kBioAuthLiveBodyStartTime = @"kBioAuthLiveBodyStartTime";
+static NSString *const kBioAuthMonitorLoadDefaultConfig = @"loadDefaultConfig";
+
+static NSString *const kBioAuthParamNetworkSuccess = @"networkSuccess";
+static NSString *const kBioAuthParamServerReturnCode = @"serverReturnCode";
+static NSString *const kBioAuthParamNetworkResult = @"networkResult";
+static NSString *const kBioAuthParamSceneCode = @"scenecode";
+static NSString *const kBioAuthParamLivenessLevel = @"livenesslevel";
+static NSString *const kBioAuthParamFail = @"failed";
+static NSString *const kBioAuthParamDiagnosticLogging = @"DiagnosticLogging";
+static NSString *const kBioAuthParamEyeScore = @"eyescore";
+static NSString *const kBioAuthParamHasFace = @"hasface";
+static NSString *const kBioAuthParamPicsScore = @"picscore";
+static NSString *const kBioAuthParamFaceScore = @"facescore";
+static NSString *const kBioAuthParamIKnown = @"我知道了";
+static NSString *const kBioAuthParamDeviceModelError = @"errorDeviceModel";
+static NSString *const kBioAuthParamLightDetection = @"lightdetection";
+static NSString *const kBioAuthParamLight = @"light";
+static NSString *const kBioAuthParamFace = @"face";
+static NSString *const kBioAuthParamQuality = @"quality";
+static NSString *const kBioAuthParamEyeDistance = @"eyedistance";
+static NSString *const kBioAuthParamFaceFarOrNear = @"faceFarorNear";
+static NSString *const kBioAuthParamFGROAngle = @"fgyroangle";
+static NSString *const kBioAuthParamOpenPage = @"openPage";
+static NSString *const kBioAuthParamServerFail = @"serverFail";
+static NSString *const kBioAuthParamNetworkFail = @"networkFail";
+static NSString *const kBioAuthParamNetworkError1006 = @"NetworkError1006";
+static NSString *const kBioAuthParamFaceFail = @"faceFail";
+static NSString *const kBioAuthParamUploadImageDataNil = @"uploadImageDataNil";
+static NSString *const kBioAuthParamAlertViewTitle = @"kBioAuthParamAlertViewTitle";
+static NSString *const kBioAuthParamAlertViewMessage = @"kBioAuthParamAlertViewMessage";
+static NSString *const kBioAuthParamAlertViewFirstButtonTitle = @"kBioAuthParamAlertViewFirstButtonTitle";
+static NSString *const kBioAuthParamAlertViewSecondButtonTitle = @"kBioAuthParamAlertViewSecondButtonTitle";
+static NSString *const kBioAuthParamAlertViewFirstCallback = @"kBioAuthParamAlertViewFirstCallback";
+static NSString *const kBioAuthParamAlertViewSecondCallback = @"kBioAuthParamAlertViewSecondCallback";
+static NSString *const kBioAuthParamAlertViewLogReason = @"kBioAuthParamAlertViewLogReason";
+
+static NSString *const kBioAuthParamInterrupt = @"interrupt";
+static NSString *const kBioAuthParamCancel = @"cancel";
+static NSString *const kBioAuthParamLoadAlgorithmErr = @"loadAlgorithmErr";
+static NSString *const kBioAuthParamErrorMicriphone = @"errorMicrophone";
+static NSString *const kBioAuthParamVidCnt = @"vidcnt";
+static NSString *const kBioAuthParamFQuality = @"fquality";
+static NSString *const kBioAuthParamFCToken = @"fcToken";
+static NSString *const kBioAuthParamF = @"f";
+static NSString *const kBioAuthParamFC = @"fc";
+//static NSString *const kBioAuthFaceUrlPrefix = @"prefs://";
+
+static NSString *const kBioAuthEVAssetsBundle = @"EyePrintAssets.bundle";
+
+static NSString *const kBioAuthDirDocuments = @"Documents";
+static NSString *const kBioAuthDirBioAuth = @"BioAuth";
+static NSString *const kBioAuthDirAssetsFile = @"EyeVerify_Asset_Files";
+static NSString *const kBioAuthFailReasonEyeDetector = @"初始化eyeDetector失败";
+
+static NSString *const kBioAuthFailReasonCreateTaskFail = @"创建眼纹检测任务失败";
+static NSString *const kBioAuthFailReasonCreateGyroTaskFail = @"创建陀螺仪检测任务失败";
+static NSString *const kBioAuthFailReasonFailToGetScanTask = @"扫脸任务无法获取scanTask";
+static NSString *const kBioAuthFailReasonViewControllerFail = @"无法获取viewController";
+static NSString *const kBioAuthFailReasonNoCameraPermission = @"没有摄像头权限";
+static NSString *const kBioAuthFailReasonWrongSystemVersion = @"操作系统版本太低";
+static NSString *const kBioAuthFailReasonUnsupportedDevice = @"不支持的设备";
+
+static NSString *const kBioAuthTipSystemNotSupport = @"当前系统不支持刷脸";
+static NSString *const kBioAuthTipWrongSysVersion = @"刷脸仅在iOS8及以上版本可用";
+static NSString *const kBioAuthTipCameraNoPermission = @"无法启用相机";
+static NSString *const kBioAuthTipOpenCameraPermissionPath = @"请到“设置-隐私-相机”开启权限";
+static NSString *const kBioAuthTipCameraPermissionOpenNow = @"立即开启";
+static NSString *const kBioAuthTipQuit = @"退出";
+static NSString *const kBioAuthTipOk = @"确定";
+static NSString *const kBioAuthTipCancel = @"取消";
+static NSString *const kBioAuthTipOneMoreTime = @"再试一次";
+static NSString *const kBioAuthTipMakeSureToQuit = @"确定退出么?";
+static NSString *const kBioAuthTipOneFaceToPass = @"露个脸就能通过";
+static NSString *const kBioAuthTipTimeOut = @"操作超时";
+static NSString *const kBioAuthTipFaceFrontMakePassMoreEasier = @"提示:正对手机,更容易成功";
+static NSString *const kBioAuthTipFaceScanFail = @"刷脸失败";
+static NSString *const kBioAuthTipOperationFail = @"本次操作失败";
+static NSString *const kBioAuthTipNetworkFail = @"网络不给力";
+static NSString *const kBioAuthTipInterrupt = @"验证中断";
+
+
+static NSString *const kAFETimeoutMessage = @"kTimeoutMessage";
+
+static NSString *const kBioAuthUnsupportedMedelMessage = @"kUnsupportedMedelMessage";
+static NSString *const kAFEUnsupportedSystemMessage = @"kUnsupportedSystemMessage";
+
+static NSString *const kAFENoCameraPermissionOpen = @"kNoCameraPermissionOpen";
+static NSString *const kAFENoCameraPermissionCancel = @"kNoCameraPermissionCancel";
+static NSString *const kAEFNoCameraPermissionTitle = @"kNoCameraPermissionTitle";
+static NSString *const kAFENoCameraPermissionDetail = @"kNoCameraPermissionDetail";
+
+static NSString *const kAFELocalizedNetworkError = @"kNetworkErrorMessage";
+
+
+
+static NSString *const kAFELocalizedFaceFailTitle = @"kFaceFailTitle";
+static NSString *const kAFELocalizedFaceFailMsg = @"kFaceFailMessage";
+static NSString *const kAFELocalizedCancelTitle = @"kCancelTitle";
+static NSString *const kAFELocalizedCancelLoginMsg = @"kCancelLoginMessage";
+static NSString *const kAFELocalizedCancelSampleMsg = @"kCancelSampleMessage";
+
+static NSString *const kCherryAglErrorTips = @"kCherryAglErrorTips";
+static NSString *const kCherryOtherLoginButton = @"kCherryOtherLoginButton";
+static NSString *const kCherryLoginHomeEvent = @"kCherryLoginHomeEvent";
+static NSString *const kCherrySampleHomeEvent = @"kCherrySampleHomeEvent";
+static NSString *const kCherryExitButton = @"kCherryExitButton";
+static NSString *const kCherryOpenButton = @"kCherryOpenButton";
+static NSString *const kCherryRetryButton = @"kCherryRetryButton";
+static NSString *const kContextRetryLimit = @"kRetryLimit";
+static NSString *const kCherryTimeout = @"kCherryTimeout";
+static NSString *const kCherryTipMessage = @"kCherryTipMessage";
+static NSString *const kCherryDetectTask = @"cherryDetectTask";
+static NSString *const kCherryAdjustPosTip = @"kcherryAdjustPosTip";
+static NSString *const kCherryNofaceTip = @"kCherryNofaceTip";
+static NSString *const kCherryCancelLogin = @"kCherryCancelLogin";
+static NSString *const kCherryCancelSample = @"kCherryCancelSample";
+static NSString *const kCherryCancelSampleMessage = @"kCherryCancelSampleMessage";
+
+static NSString *const kAFEStatusUpdate = @"statusupdate";
+
+static NSString *const kSceneRetryLimit = @"retryLimit";
+static NSString *const kAFERetryLimit = @"retryLimit";
+
+static NSString *const kCherryUnderExposure = @"kCherryUnderExposure";
+static NSString *const kCherryFaceTooSmall = @"kCherryFaceTooSmall";
+static NSString *const kCherryFaceIncomplete = @"kCherryFaceIncomplete";
+static NSString *const kCherryYawFail = @"kCherryYawFail";
+static NSString *const kCherryTremble = @"kCherryTremble";
+
+static NSString *const kCherryCancleButton = @"kCherryCancleButton";
+static NSString *const kCherryEnterButton = @"kCherryEnterButton";
+static NSString *const kIKnowButton = @"kIKnowButton";
+static NSString *const kNoMicPermissionTitle = @"kNoMicPermissionTitle";
+static NSString *const kNoMicPermissionMsg = @"kNoMicPermissionMsg";
+
+static NSString *const kSceneCircularViewFail = @"AFECircularViewFail";
+
+static NSString *const kCherryDetectFlagBlink = @"kCherryDetectFlagBlink";
+static NSString *const kCherryDetectFlagPosQuality = @"kCherryDetectFlagPosQuality";
+static NSString *const kCherryDetectFlagPosCond = @"kCherryDetectFlagPosCond";
+
+static NSString *const kAFENetworkType = @"networkType";
+static NSString *const kBioAuthParamSensor = @"sensor";
+static NSString *const kBioAuthParamTotalSteps = @"tsteps";
+static NSString *const kBioAuthNotifiUploadTaskBeginNotiName = @"afeuploadtaskbegin";
+static NSString *const kBioAuthParamAlertShowKey = @"alert";
+static NSString *const kBioAuthParamCaptureView = @"captureView";
+static NSString *const kBioAuthParamScanView = @"scanview";
+static NSString *const kBioAuthPramBizInfoForKey = @"biz";
+static NSString *const kBioAuthParamStepsUploaded = @"upsteps";
+static NSString *const kBioAuthParamEnvStatus = @"envstatus";
+static NSString *const kBioAuthParamRetryNum = @"retry";
+static NSString *const kBioAuthParamCurrentTransactionSteps = @"transactionSteps";
+static NSString *const kBioAuthParamSound = @"sound";
+static NSString *const kBioAuthParamUID = @"UID";
+static NSString *const kBioAuthParamAction = @"SCENE_ID";
+static NSString *const kBioAuthParamCurrentView = @"currentView";
+
+static NSString * const kAPFParentViewControllerKey = @"parentViewController";
+static NSString * const kAPFCurrentViewControllerKey = @"currentViewController";
+
+static NSString * const kAPFCurrentRetryCntKey = @"currentRetryCnt";
+static NSString * const kAPFSoundStatusKey = @"soundStatus";
+static NSString * const kAPFIsLoginModeKey = @"isLoginMode";
+static NSString * const kAPFBisConfigModelKey = @"APFBisConfigModel";
+static NSString * const kAPFBisTokenKey = @"bis_token";
+static NSString * const kAPFUploadViewPic = @"kUploadViewPic";
+static NSString * const kAPFAcionListKey = @"kActionList";
+static NSString * const kAPFPresentTimeKey = @"kPresentTime";
+
+static NSString *const kBioAuthApdidKey = @"APDID";
+static NSString *const kBioAuthTokenidKey = @"TOKEN_ID";
+static NSString *const kBioAuthSceneIdKey = @"sceneId";
+static NSString *const kBioAuthSceneNameKey = @"SCENE_NAME";
+static NSString *const kBioAuthAppidKey = @"appID";
+static NSString *const kBioAuthExtInfo = @"extInfo";
+static NSString *const kBioAuthParamType = @"type";
+static NSString *const kBioAuthParamSampleMode = @"samplemode";
+static NSString *const kBioAuthParamPubKey = @"pubkey";
+static NSString *const kBioAuthParamPermissionKey = @"audioPermissionKey";
+static NSString *const kBioAuthParamBizInfoKey = @"bizinfo";
+static NSString *const kBioAuthParamBestImage = @"bestimage";
+static NSString *const kBioAuthParamImageQuality = @"bestimagequality";
+static NSString *const kBioAuthParamMineCount = @"minecount";
+static NSString *const kBioAuthParamLoggingLevel = @"LoggerLevel";
+static NSString *const kBioAuthParamLevelHigh = @"level1";
+static NSString *const kBioAuthParamLevelMedium = @"level2";
+static NSString *const kBioAuthParamLevelLow = @"level3";
+
+static NSString *const kBioAuthParamNLSAppKey = @"121312323a123-ios";
+static NSString *const kBioAuthParamAsrRequest = @"asr_usr_id";
+static NSString *const kBioAuthParamNLSSVCUrl = @"ws://speechapi.m.taobao.com";
+static NSString *const kBioAuthParamFppVer = @"fppVer";
+static NSString *const kBioAuthParamFVer = @"fVer";
+static NSString *const kBioAuthParamFaceDetect = @"facedetect";
+static NSString *const kBioAuthParamProduct = @"product";
+static NSString *const kBioAuthParamCherry = @"cherry";
+static NSString *const kBioAuthParamStock = @"stock";
+static NSString *const kBioAuthEngine = @"BioAuthEngine";
+static NSString *const kBioAuthFaceNavigation = @"faceNavigation";
+static NSString *const kBioAuthTypeHTML = @"htm";
+static NSString *const kBioAuthTypeBundle = @"bundle";
+
+static NSString *const kAPFWaveUploadKey = @"waveUploadKey";
+static NSString *const kAPFCameraViewKey = @"cameraViewKey";
+
+static NSString *const kAFELocalizedLoginFailTooManyTimes = @"kLoginFailTooManyTimesMessage";
+static NSString *const kAFELoginFailTooManyTimesMessage = @"kLoginFailTooManyTimesMessage";
+
+static NSString *const kAFELocalizedLock = @"kLockMessage";
+static NSString *const kAFELockMessage = @"kLockMessage";
+
+static NSString *const kAFELocalizedRetryTitle = @"kRetryTitle";
+static NSString *const kAFERetryTitle = @"kRetryTitle";
+
+static NSString *const kAFELocalizedPassWdTitle = @"kUsePasswordTitle";
+static NSString *const kAFEUsePasswordTitle = @"kUsePasswordTitle";
+
+static NSString *const kAFELocalizedExitTitle = @"kExitTitle";
+static NSString *const kAFEExitTitle = @"kExitTitle";
+
+static NSString *const kAFELocalizedIKnowTitle = @"kIKnowTitle";
+static NSString *const kAFEIKnowTitle = @"kIKnowTitle";
+
+static NSString *const kBioAuthParamTimeout = @"timeout";
+static NSString *const kBioAuthParamClickXBack = @"clickXback";
+static NSString *const kBioAuthParamSystemInterrupt = @"systemInterrupt";
+static NSString *const kBioAuthParamProcessInterrupt = @"processInterrupt";
+static NSString *const kBioAuthParamCameraPermission = @"cameraPermission";
+static NSString *const kBioAuthParamCameraOpenFail = @"cameraOpenFail";
+static NSString *const kBioAuthParamErrorSystemVersion = @"errorSystemVersion";
+static NSString *const kBioAuthParamReason = @"reason";
+static NSString *const kBioAuthParamMoniton = @"motion";
+static NSString *const kBioAuthParamFrameMoniton = @"frameMotion";
+static NSString *const kBioAuthParamChoose = @"choose";
+static NSString *const kBioAuthParamTimeCost = @"timecost";
+static NSString *const kBioAuthParamReturnCode = @"returnCode";
+static NSString *const kBioAuthParamFrontCamera = @"frontCamera";
+static NSString *const kBioAuthParamBackCamera = @"backCamera";
+static NSString *const kBioAuthParamMemory = @"memory";
+static NSString *const kBioAuthParamProcessorNum = @"processorNum";
+static NSString *const kBioAuthParamTotalStorage = @"totalStorage";
+static NSString *const kBioAuthParamAvailableStorage = @"availableStorage";
+static NSString *const kBioAuthParamBisToken = @"bistoken";
+static NSString *const kBioAuthParamAlgorithmIntTime = @"inttime";
+static NSString *const kBioAuthParamAlgorithmName = @"name";
+static NSString *const kBioAuthParamUploadRequest = @"uploadrequest";
+static NSString *const kBioAuthParamBisCfg = @"biscfg";
+static NSString *const kBioAuthParamUserId = @"USER_ID";
+static NSString *const kBioAuthParamBioType = @"bioType";
+static NSString *const kBioAuthParamLogType = @"logType";
+static NSString *const kBioAuthParamUIVersion = @"ui_version";
+static NSString *const kBioAuthFailReasonUserQuit = @"用户主动退出";
+static NSString *const kBioAuthVerifyId = @"verifyId";
+static NSString *const kBioAuthParamToygerInit = @"toygerInit";
+static NSString *const kBioAuthParamToygerFileState = @"toygerFileState";
+static NSString *const kBioAuthFailInsufficientDisk = @"手机存储空间不足";
+static NSString *const kBioAuthFailNoPermissionRecording = @"没有录音权限";
+
+#pragma mark - 埋点相关 -
+
+static NSString *const kBioAuthMonitorAlertAppear = @"AlertAppear";
+static NSString *const kBioAuthMonitorAlertAppearUCID = @"UC-YWRLSB-161114-21";
+
+static NSString *const kBioAuthMonitorAlertClose = @"AlertChoose";
+static NSString *const kBioAuthMonitorAlertCloseUCID = @"UC-YWRLSB-161114-22";
+
+static NSString *const kBioAuthMonitorDetectionStart = @"EnterDetectionStart";
+static NSString *const kBioAuthMonitorDetectionStartUCID = @"UC-YWRLSB-161114-07";
+
+static NSString *const kBioAuthMonitorDetectionEnd = @"EnterDetectionEnd";
+static NSString *const kBioAuthMonitorDetectionEndUCID = @"UC-YWRLSB-161114-08";
+
+static NSString *const kBioAuthMonitorDetectionCondStart = @"detectCondStart";
+static NSString *const kBioAuthMonitorDetectionCondStartUCID = @"UC-YWRLSB-161114-09";
+
+static NSString *const kBioAuthMonitorSensorSlice = @"sensorSlice";
+static NSString *const kBioAuthMonitorSensorSliceUCID = @"UC-YWRLSB-161114-20";
+
+static NSString *const kBioAuthMonitorPoseStart = @"poseStart";
+static NSString *const kBioAuthMonitorPoseStartUCID = @"UC-YWRLSB-161114-11";
+
+static NSString *const kBioAuthMonitorLiveBodyStart = @"livebodyStart";
+static NSString *const kBioAuthMonitorLiveBodyStartUCID = @"UC-YWRLSB-161114-13";
+
+static NSString *const kBioAuthMonitorLiveBodyEnd = @"livebodyEnd";
+static NSString *const kBioAuthMonitorLiveBodyEndUCID = @"UC-YWRLSB-161114-14";
+
+static NSString *const kBioAuthMonitorPromptCopyPoint = @"promptCopyPoint";
+static NSString *const kBioAuthMonitorPromptCopyPointUCID = @"UC-YWRLSB-161114-17";
+
+static NSString *const kBioAuthParamEvent = @"event";
+
+static NSString *const kBioAuthMonitorPoseCheckEnd = @"poseCheckEnd";
+static NSString *const kBioAuthMonitorPoseCheckEndUCID = @"UC-YWRLSB-161114-28";
+
+static NSString *const kBioAuthMonitorAlgorithm = @"Algorithm";
+static NSString *const kBioAuthMonitorAlgorithmUCID = @"UC-YWRLSB-161114-27";
+
+static NSString *const kBioAuthMonitorFromH5 = @"fromH5";
+
+static NSString *const kBioAuthMonitorEnterGuidePage = @"enterGuidePage";
+static NSString *const kBioAuthMonitorEnterGuidePageUCID = @"UC-YWRLSB-161114-02";
+
+static NSString *const kBioAuthMonitorExitGuidePage = @"exitGuidePage";
+static NSString *const kBioAuthMonitorExitGuidePageUCID = @"UC-YWRLSB-161114-03";
+
+static NSString *const kBioAuthMonitorClickStartCapture = @"clickStartCapture";
+static NSString *const kBioAuthMonitorClickStartCaptureForSuitable = @"suitable";
+static NSString *const kBioAuthMonitorClickStartCaptureForSuitableError = @"suitableError";
+static NSString *const kBioAuthMonitorClickStartCaptureUCID = @"UC-YWRLSB-161114-04";
+
+static NSString *const kBioAuthMonitorEntrySDK = @"entrySDK";
+static NSString *const kBioAuthMonitorEntrySDKUCID = @"UC-YWRLSB-161114-01";
+
+static NSString *const kBioAuthMonitorCallbackVerifySystem = @"callbackVerifySystem";
+static NSString *const kBioAuthMonitorCallbackVerifySystemUCID = @"UC-YWRLSB-161114-23";
+
+static NSString *const kBioAuthMonitorExitSDK = @"exitSDK";
+static NSString *const kBioAuthMonitorExitSDKUCID = @"UC-YWRLSB-161114-24";
+
+static NSString *const kBioAuthMonitorFaceMine = @"facemine";
+static NSString *const kBioAuthMonitorFaceMineUCID = @"UC-DXSPRLSB-161206-10";
+
+static NSString *const kBioAuthMonitorBrightness = @"brightness";
+static NSString *const kBioAuthMonitorBrightnessUCID = @"UC-YWRLSB-161207-01";
+
+static NSString *const kBioAuthLoadLocalGuidePage = @"loadLocalGuidePage";
+static NSString *const kBioAuthLoadLocalGuidePageUCID = @"UC-YWRLSB-160422-02";
+
+static NSString *const kBioAuthUploadEnd = @"uploadEnd";
+static NSString *const kBioAuthUploadEndUCID = @"UC-YWRLSB-161114-16";
+
+static NSString *const kBioAuthuploadAvarriable = @"uploadAvarriable";
+static NSString *const kBioAuthuploadAvarriableUCID = @"UC-YWRLSB-161114-25";
+
+static NSString *const kBioAuthUploadStart = @"uploadStart";
+static NSString *const kBioAuthUploadStartUCID = @"UC-YWRLSB-161114-15";
+
+static NSString *const kBioAuthDetectCondEnd = @"detectCondEnd";
+static NSString *const kBioAuthDetectCondEndUCID = @"UC-YWRLSB-161114-10";
+
+static NSString *const kBioAuthDetectFaceSuccess = @"detectFaceSuccess";
+static NSString *const kBioAuthDetectFaceSuccessUCID = @"UC-YWRLSB-161114-28";
+
+static NSString *const kBioAuthDetectEyeSuccess = @"detectEyeSuccess";
+static NSString *const kBioAuthDetectEyeSuccessUCID = @"UC-YWRLSB-161114-29";
+
+static NSString *const kBioAuthMonitorEyeLivebodyDetectStart = @"eyeLivebodyDetectStart";
+static NSString *const kBioAuthMonitorEyeLivebodyDetectStartUCID = @"UC-YWRLSB-161114-30";
+
+static NSString *const kBioAuthMonitorEyeLivebodyDetectEnd = @"eyeLivebodyDetectEnd";
+static NSString *const kBioAuthMonitorEyeLivebodyDetectEndUCID = @"UC-YWRLSB-161114-31";
+
+static NSString *const kBioAuthMonitorEyeSlice = @"eyeSlice";
+static NSString *const kBioAuthMonitorEyeSliceUCID = @"UC-YWRLSB-161114-19";
+static NSString *const kBioAuthCardFace = @"cardface";
+
+#pragma mark - 埋点相关 -
+
+static NSString *const kBioAuthMonitorFcEntrySDK = @"fcEntrySDK";
+static NSString *const kBioAuthMonitorFcEntrySDKUCID = @"UC-RZHY-170118-01";
+
+static NSString *const kBioAuthMonitorFcGetParameter = @"fcGetParameters";
+static NSString *const kBioAuthMonitorFcGetParameterUCID = @"UC-RZHY-170118-02";
+
+static NSString *const kBioAuthMonitorFcFaceCallbackBisSystem = @"fcFaceCallbackBisSystem";
+static NSString *const kBioAuthMonitorFcFaceCallbackBisSystemUCID = @"UC-RZHY-170118-27";
+
+static NSString *const kBioAuthMonitorFcFaceGetServerResult = @"fcFaceGetServerResult";
+static NSString *const kBioAuthMonitorFcFaceGetServerResultUCID = @"UC-RZHY-170118-28";
+
+static NSString *const kBioAuthMonitorFcCallbackVerifySystem = @"fcCallbackVeritySystem";
+static NSString *const kBioAuthMonitorFcCallbackVerifySystemUCID = @"UC-RZHY-170118-29";
+
+static NSString *const kBioAuthFcExitSDK = @"fcExitSDK";
+static NSString *const kBioAuthFcExitSDKUCID = @"UC-RZHY-170118-30";
+
+static NSString *const kBioAuthValidateRequestKey = @"validateRequest";
+static NSString *const kBioAuthMergeValidateKey = @"mergeValidate";
+
+#pragma mark - 网络相关 -
+static NSString *const kAPBGWOperationType = @"oprationType"; //NSString, oprationType
+static NSString *const kAPBGWReturnType = @"returnType"; //NSString, returnType
+static NSString *const kAPBGWGatewayURL = @"gatewayURL"; //NSString, gatewayURL
+static NSString *const kAPBGWBackupURL = @"backupURL"; //NSString, backupUrl
+static NSString *const kAPBGWHeadConfig = @"headConfig";
+#endif /* BioAuthCommonSetting_h */
+
diff --git a/star_lock/aliyun_face_plugin/ios/Products/BioAuthEngine.framework/Headers/BioAuthEngine.h b/star_lock/aliyun_face_plugin/ios/Products/BioAuthEngine.framework/Headers/BioAuthEngine.h
new file mode 100644
index 00000000..2caac330
--- /dev/null
+++ b/star_lock/aliyun_face_plugin/ios/Products/BioAuthEngine.framework/Headers/BioAuthEngine.h
@@ -0,0 +1,58 @@
+//
+// BioAuthEngine.h
+// BioAuthEngine
+//
+// Created by richard on 20/09/2017.
+// Copyright © 2017 DTF. All rights reserved.
+//
+
+#ifndef BioAuthEngine_h
+#define BioAuthEngine_h
+
+#import
+#import
+#import
+#import
+
+#import
+#import
+
+#import
+#import
+#import
+#import
+#import
+#import
+
+#import
+#import
+
+#import
+#import
+#import
+#import
+#import
+#import
+#import
+#import
+#import
+#import
+#endif /* BioAuthEngine_h */
+
+
+
+
+
+#import
+#import
+#import
+#import
+#import
+#import
+#import
+
+//! Project version number for BioAuthEngine.
+FOUNDATION_EXPORT double BioAuthEngineVersionNumber;
+
+//! Project version string for BioAuthEngine.
+FOUNDATION_EXPORT const unsigned char BioAuthEngineVersionString[];
diff --git a/star_lock/aliyun_face_plugin/ios/Products/BioAuthEngine.framework/Headers/BioAuthFacade.h b/star_lock/aliyun_face_plugin/ios/Products/BioAuthEngine.framework/Headers/BioAuthFacade.h
new file mode 100644
index 00000000..5c3e95df
--- /dev/null
+++ b/star_lock/aliyun_face_plugin/ios/Products/BioAuthEngine.framework/Headers/BioAuthFacade.h
@@ -0,0 +1,67 @@
+//
+// BioAuthFacade.h
+// BioAuthAPI
+//
+// Created by yukun.tyk on 12/7/15.
+// Copyright © 2015 DTF. All rights reserved.
+//
+
+#import
+#import "APBRequest.h"
+#import "APBResponse.h"
+#import "APBCommand.h"
+
+/**
+ * 生物认证结果回调处理
+ *
+ * @param response 生物认证结果
+ */
+typedef void (^BioAuthCallback) (APBResponse *response);
+
+/**
+ * 执行命令结束回调
+ *
+ * @param success 命令执行是否成功
+ * @param reason 保留参数
+ */
+typedef void (^BioAuthExecCallback) (BOOL success, NSDictionary *reason);
+
+@interface BioAuthFacade : NSObject
+
+/**
+ * 唤起生物认证之前获取框架meta数据
+ */
++ (NSString *)getBioMetaInfo;
+
+/**
+ * 触发下载资源文件
+ */
++ (void)preLoad;
+
+/**
+ * 申请生物认证
+ *
+ * @param request 生物认证请求
+ * @param callback 生物认证结果回调处理
+ */
+- (void)authWithRequest:(APBRequest *)request withCallback:(BioAuthCallback)callback;
+
+/**
+ * 让正在进行中的生物认证因子执行某种操作
+ *
+ * @param command 操作码
+ * @param callback 命令执行回调
+ */
+- (void)exec:(APBCommand *)command withCompletionCallback:(BioAuthExecCallback)callback;
+
+/**
+ * 当前是否正在执行认证任务
+ */
+- (BOOL)isBusy;
+
+/**
+ * 生物认证类型版本号
+ */
+- (NSString *)version;
+
+@end
diff --git a/star_lock/aliyun_face_plugin/ios/Products/BioAuthEngine.framework/Headers/DTFBaseViewController.h b/star_lock/aliyun_face_plugin/ios/Products/BioAuthEngine.framework/Headers/DTFBaseViewController.h
new file mode 100644
index 00000000..71c8635e
--- /dev/null
+++ b/star_lock/aliyun_face_plugin/ios/Products/BioAuthEngine.framework/Headers/DTFBaseViewController.h
@@ -0,0 +1,22 @@
+//
+// APFViewController.h
+// APFaceDetectBiz
+//
+// Created by 晗羽 on 8/25/16.
+// Copyright © 2016 DTF. All rights reserved.
+//
+
+#import
+#import "APBTaskContext.h"
+
+@interface DTFBaseViewController : UIViewController
+
+@property(nonatomic, assign) BOOL isClose;
+@property(nonatomic, strong) NSString *platformInfo;
+@property(nonatomic, strong) UIActivityIndicatorView *activityIndicatorView;
+@property(nonatomic, weak) APBTaskContext *context;
+
+- (void)addWebGuideView:(UIView *)guideView;
+- (void)showLoadingView;
+- (void)dismissLoadingView;
+@end
diff --git a/star_lock/aliyun_face_plugin/ios/Products/BioAuthEngine.framework/Headers/DTFFaceView.h b/star_lock/aliyun_face_plugin/ios/Products/BioAuthEngine.framework/Headers/DTFFaceView.h
new file mode 100644
index 00000000..fe9668d7
--- /dev/null
+++ b/star_lock/aliyun_face_plugin/ios/Products/BioAuthEngine.framework/Headers/DTFFaceView.h
@@ -0,0 +1,30 @@
+//
+// DTFFaceView.h
+// MultiFactorFacade
+//
+// Created by mengbingchuan on 2022/6/22.
+// Copyright © 2022 DTF. All rights reserved.
+//
+
+#import
+#import "DTFFaceViewProtocol.h"
+
+typedef NS_ENUM(NSInteger, DTFAuthScene) {
+ DTFAuthSceneFace = 1, //刷脸
+ DTFAuthSceneMultiFactor = 2, //意愿
+};
+
+@interface DTFFaceView : UIView
+
+@property(nonatomic, assign) DTFAuthScene authScene;
+@property(nonatomic, strong) NSString *platformInfo;
+@property(nonatomic, assign) BOOL isSuitable;
+
+- (instancetype)initWithAuthScene:(DTFAuthScene)authScene platformInfo:(NSString *)platformInfo isSuitable:(BOOL)isSuitable;
+
+- (instancetype)initWithAuthScene:(DTFAuthScene)authScene;
+
+- (void)setScreenRotation:(BOOL)isRotation;
+
+- (void)setPlayBtnIcon;
+@end
diff --git a/star_lock/aliyun_face_plugin/ios/Products/BioAuthEngine.framework/Headers/DTFFaceViewProtocol.h b/star_lock/aliyun_face_plugin/ios/Products/BioAuthEngine.framework/Headers/DTFFaceViewProtocol.h
new file mode 100644
index 00000000..a1782622
--- /dev/null
+++ b/star_lock/aliyun_face_plugin/ios/Products/BioAuthEngine.framework/Headers/DTFFaceViewProtocol.h
@@ -0,0 +1,59 @@
+//
+// DTFFaceViewProtocol.h
+// BioAuthEngine
+//
+// Created by mengbingchuan on 2022/8/29.
+// Copyright © 2022 DTF. All rights reserved.
+//
+
+#import
+#import
+#import
+
+@protocol DTFFaceViewProtocol;
+
+@protocol DTFFaceViewDelegate
+
+- (void)viewExit:(id)view;
+
+- (void)playBtn:(UIButton *)btn;
+
+@end
+
+@protocol DTFFaceViewProtocol
+
+@property(nonatomic, weak) id delegate;
+
+- (void)setPreviewLayer:(AVCaptureVideoPreviewLayer *)previewLayer;
+
+- (void)setScreenRotation:(BOOL)isRotation;
+
+- (void)setPlayBtnIcon;
+
+- (void)faceDectectComplete;
+
+- (void)handleFaceStateChange:(ToygerMessage)state
+ stateTips:(NSString *)tips
+ actionGuide:(NSString *)guide
+ progress:(CGFloat)progress;
+
+- (UIView *)view;
+
+@optional
+
+/**
+ * color 炫彩时,设置View的背景色
+ */
+- (void)setPhotinusColor:(UIColor *)color;
+
+/**
+ * 设置是否开启适老化
+ */
+- (void)setSuitableType:(BOOL)isSuitable;
+/**
+ * image 模糊化的人脸图,用于做结束时loading
+ */
+- (void)showBlurImage:(UIImage *)image;
+
+@end
+
diff --git a/star_lock/aliyun_face_plugin/ios/Products/BioAuthEngine.framework/Headers/DTFTextLayer.h b/star_lock/aliyun_face_plugin/ios/Products/BioAuthEngine.framework/Headers/DTFTextLayer.h
new file mode 100644
index 00000000..333dfe52
--- /dev/null
+++ b/star_lock/aliyun_face_plugin/ios/Products/BioAuthEngine.framework/Headers/DTFTextLayer.h
@@ -0,0 +1,19 @@
+//
+// DTFTextLayer.h
+// BioAuthEngine
+//
+// Created by 王伟伟 on 2017/12/5.
+// Copyright © 2017年 DTF. All rights reserved.
+//
+
+#import
+#import
+#import
+
+@interface DTFTextLayer : CATextLayer
+
+@property (nonatomic, copy) NSAttributedString *attrStr;
+
+- (CGSize)stringSize;
+
+@end
diff --git a/star_lock/aliyun_face_plugin/ios/Products/BioAuthEngine.framework/Headers/DTFUIElementManager.h b/star_lock/aliyun_face_plugin/ios/Products/BioAuthEngine.framework/Headers/DTFUIElementManager.h
new file mode 100644
index 00000000..6f0c5644
--- /dev/null
+++ b/star_lock/aliyun_face_plugin/ios/Products/BioAuthEngine.framework/Headers/DTFUIElementManager.h
@@ -0,0 +1,22 @@
+//
+// DTFUIElementManager.h
+// BioAuthEngine
+//
+// Created by richard on 08/08/2017.
+// Copyright © 2017 DTF. All rights reserved.
+//
+
+#import
+
+
+@interface DTFUIElementManager : NSObject
+
++ (UIView *)generateUIViewWithFrame:(CGRect)frame andBackGroundColor:(UIColor *)backGroundColor andAlpha:(float)alpha;
+
++ (UILabel *)generateUIlabelWithFrame:(CGRect)frame andColor:(UIColor *)color andFont:(UIFont*)font andAlpha:(float)alpha andBackGroundColor:(UIColor *)backGroundColor andLineBreakMode:(NSLineBreakMode)breakMode andAlignment:(NSTextAlignment) alignment;
+
++ (UIImageView *)generateUIImageViewWithFrame:(CGRect)frame andImageName:(NSString *)imageName andContentMode:(UIViewContentMode)contentMode;
+
++ (UIImage *)generateUIImageWithName:(NSString *)imageName;
+
+@end
diff --git a/star_lock/aliyun_face_plugin/ios/Products/BioAuthEngine.framework/Headers/DTFUploadWaveLayer.h b/star_lock/aliyun_face_plugin/ios/Products/BioAuthEngine.framework/Headers/DTFUploadWaveLayer.h
new file mode 100755
index 00000000..73e6e190
--- /dev/null
+++ b/star_lock/aliyun_face_plugin/ios/Products/BioAuthEngine.framework/Headers/DTFUploadWaveLayer.h
@@ -0,0 +1,18 @@
+//
+// APFUploadWaveView.h
+// selfieFaceInfo
+//
+// Created by 晗羽 on 11/3/16.
+// Copyright © 2016 com.antworshop7. All rights reserved.
+//
+
+#import
+#import
+
+@interface DTFUploadWaveLayer : CALayer
+
+- (void)setMaskImage:(UIImage *)image;
+- (void)startWave;
+- (void)stopWave;
+
+@end
diff --git a/star_lock/aliyun_face_plugin/ios/Products/BioAuthEngine.framework/Headers/DTFViewProviderProtocol.h b/star_lock/aliyun_face_plugin/ios/Products/BioAuthEngine.framework/Headers/DTFViewProviderProtocol.h
new file mode 100644
index 00000000..223e6102
--- /dev/null
+++ b/star_lock/aliyun_face_plugin/ios/Products/BioAuthEngine.framework/Headers/DTFViewProviderProtocol.h
@@ -0,0 +1,16 @@
+//
+// FaceViewProviderProtocol.h
+// BioAuthEngine
+//
+// Created by mengbingchuan on 2022/8/29.
+// Copyright © 2022 DTF. All rights reserved.
+//
+
+#import
+#import "DTFFaceViewProtocol.h"
+
+@protocol DTFViewProviderProtocol
+
+- (id)viewForFace;
+
+@end
diff --git a/star_lock/aliyun_face_plugin/ios/Products/BioAuthEngine.framework/Headers/IBioAuthFactor.h b/star_lock/aliyun_face_plugin/ios/Products/BioAuthEngine.framework/Headers/IBioAuthFactor.h
new file mode 100644
index 00000000..6717f23e
--- /dev/null
+++ b/star_lock/aliyun_face_plugin/ios/Products/BioAuthEngine.framework/Headers/IBioAuthFactor.h
@@ -0,0 +1,69 @@
+//
+// IBioAuthFactor.h
+// BioAuthEngine
+//
+// Created by yukun.tyk on 11/9/15.
+// Copyright © 2015 DTF. All rights reserved.
+//
+
+#import
+@protocol IBioAuthTask;
+@class APBRequest, APBResponse;
+
+
+/**
+ * globalConfig key
+ * 全局超时,值为CGFloat,若设定了该值,则框架可以在相应时间到达后,将全局超时事件封装成APBEvent dispatch给当时运行的task
+ * 即使设定了全局超时,全局计时器默认关闭,需要task在globalInfo中将kGlobalTimerSwitchKey开关设置为YES后才开始计时
+ */
+extern NSString *const kGlobalTimeoutKey;
+
+/**
+ * 远程生物认证因子接口
+ */
+@protocol IBioAuthFactor
+
+/**
+ * 生物认证因子名称,框架根据该名称反射调用到具体生物认证因子
+ */
+@property(nonatomic, copy, readonly)NSString *factorName;
+
+/**
+ * 框架调用该方法来实例化认证因子
+ *
+ * @param request 调用方的认证请求
+ */
+- (instancetype)initWithRequest:(APBRequest *)request;
+
+/**
+ * 获取远程生物认证task队列
+ */
+- (NSArray> *)getTasks;
+
+/**
+ * 获取生物验证全局配置(全局超时等)
+ */
+- (NSMutableDictionary *)getGlobalConfig;
+
+/**
+ * 框架最终返回response之前,由相应认证因子最终处理repsonse
+ */
+- (void)finalizeResponse:(APBResponse *)response;
+
+/**
+ * sdk版本号
+ */
++ (NSString *)getVersion;
+
+@optional
+/**
+ * 重启之前调用
+ */
+- (void)onEngineWillRestart:(NSMutableDictionary *)pipeInfo;
+
+/**
+ * 获取生物认证产品元数据
+ */
++ (NSDictionary *)getMetaInfo;
+
+@end
diff --git a/star_lock/aliyun_face_plugin/ios/Products/BioAuthEngine.framework/Headers/IBioAuthTask.h b/star_lock/aliyun_face_plugin/ios/Products/BioAuthEngine.framework/Headers/IBioAuthTask.h
new file mode 100644
index 00000000..1819bd2c
--- /dev/null
+++ b/star_lock/aliyun_face_plugin/ios/Products/BioAuthEngine.framework/Headers/IBioAuthTask.h
@@ -0,0 +1,64 @@
+//
+// IBioAuthTask.h
+// BioAuthEngine
+//
+// Created by yukun.tyk on 11/4/15.
+// Copyright © 2015 DTF. All rights reserved.
+//
+
+#import
+#import
+#import
+#import
+
+@class APBTaskContext;
+
+/**
+ * pipeInfo key
+ * value为commandBlock,task可以调用并要求框架执行相应APBBackwardCommand命令
+ */
+extern NSString *const kTaskCommandBlockKey;
+
+/**
+ * taskConfig key
+ * task超时,value为CGFloat,如果task设置了该值,框架将开始task计时器,并在时间到达后,将task超时封装成APBEvent发送给当前task
+ */
+extern NSString *const kTaskTimeoutKey;
+
+typedef void (^commandBlock)(APBBackwardCommand *command);
+
+@protocol IBioAuthTask
+
+@property(nonatomic, copy, readonly) NSString *taskName; //任务名称
+@property(nonatomic, strong, readonly) APBTaskContext *context; //任务上下文
+
+/**
+ * 开始执行任务队列
+ */
+- (void)invokeWithPipeInfo:(NSMutableDictionary *)pipeInfo;
+
+/**
+ * 处理中断事件
+ *
+ * @param event 事件
+ * @param callback 事件处理结果回调
+ */
+- (void)processEvent:(APBEvent *)event
+withCompletionCallback:(BioAuthExecCallback)callback;
+
+/**
+ * 获取任务配置(超时等)
+ */
+- (NSDictionary *)getConfig;
+
+/**
+ * 重置任务
+ */
+- (void)reset;
+
+/**
+ * 获取当前管道信息,框架负责传递给下一个task
+ */
+- (NSMutableDictionary *)pipeInfo;
+
+@end
diff --git a/star_lock/aliyun_face_plugin/ios/Products/BioAuthEngine.framework/Headers/NSTimer+bioAuth.h b/star_lock/aliyun_face_plugin/ios/Products/BioAuthEngine.framework/Headers/NSTimer+bioAuth.h
new file mode 100644
index 00000000..e4d30758
--- /dev/null
+++ b/star_lock/aliyun_face_plugin/ios/Products/BioAuthEngine.framework/Headers/NSTimer+bioAuth.h
@@ -0,0 +1,19 @@
+//
+// NSTimer+bioAuth.h
+// BioAuthEngine
+//
+// Created by 王伟伟 on 2017/8/23.
+// Copyright © 2017年 DTF. All rights reserved.
+//
+
+#import
+
+@interface NSTimer (bioAuth)
+
+@property(nonatomic, strong)NSNumber *remained;
+@property(nonatomic, strong)NSNumber *paused;
+
+- (void)pause;
+- (void)resume;
+
+@end
diff --git a/star_lock/aliyun_face_plugin/ios/Products/BioAuthEngine.framework/Headers/UIImage+bioAuth.h b/star_lock/aliyun_face_plugin/ios/Products/BioAuthEngine.framework/Headers/UIImage+bioAuth.h
new file mode 100644
index 00000000..fb393fe2
--- /dev/null
+++ b/star_lock/aliyun_face_plugin/ios/Products/BioAuthEngine.framework/Headers/UIImage+bioAuth.h
@@ -0,0 +1,22 @@
+//
+// UIImage+bioAuth.h
+// BioAuthEngine
+//
+// Created by 王伟伟 on 2017/8/23.
+// Copyright © 2017年 DTF. All rights reserved.
+//
+
+#import
+#import
+
+@interface UIImage (bioAuth)
+
++ (nullable UIImage *)bioAuth_imageWithColor:(UIColor *_Nullable)color size:(CGSize)size;
+
+#pragma mark - Resize -
+- (nullable UIImage *)bioAuth_SubRect:(CGRect)r;
+- (nullable UIImage *)bioAuth_GaussiamBlur;
++ (nullable UIImage *)bioAuth_imageWithCVPixelBuffer:(CVPixelBufferRef _Nullable )buffer;
++ (nullable UIImage *)bioAuth_imageWithCMSampleBuffer:(CMSampleBufferRef _Nullable )samplebuffer;
+- (nullable UIImage *)bioAuth_imageByResizeToSize:(CGSize)size contentMode:(UIViewContentMode)contentMode;
+@end
diff --git a/star_lock/aliyun_face_plugin/ios/Products/BioAuthEngine.framework/Info.plist b/star_lock/aliyun_face_plugin/ios/Products/BioAuthEngine.framework/Info.plist
new file mode 100644
index 00000000..5c8b7ecd
Binary files /dev/null and b/star_lock/aliyun_face_plugin/ios/Products/BioAuthEngine.framework/Info.plist differ
diff --git a/star_lock/aliyun_face_plugin/ios/Products/DTFIdentityManager.framework/DTFIdentityManager b/star_lock/aliyun_face_plugin/ios/Products/DTFIdentityManager.framework/DTFIdentityManager
new file mode 100644
index 00000000..76618e89
Binary files /dev/null and b/star_lock/aliyun_face_plugin/ios/Products/DTFIdentityManager.framework/DTFIdentityManager differ
diff --git a/star_lock/aliyun_face_plugin/ios/Products/DTFIdentityManager.framework/Headers/DTFIdentityManager.h b/star_lock/aliyun_face_plugin/ios/Products/DTFIdentityManager.framework/Headers/DTFIdentityManager.h
new file mode 100644
index 00000000..d07253e3
--- /dev/null
+++ b/star_lock/aliyun_face_plugin/ios/Products/DTFIdentityManager.framework/Headers/DTFIdentityManager.h
@@ -0,0 +1,25 @@
+//
+// DTFIdentityManager.h
+// DTFIdentityManager
+//
+// Created by mengbingchuan on 2022/11/23.
+// Copyright © 2022 DTF. All rights reserved.
+//
+
+#import
+#import "ZimRpcManager.h"
+#import
+
+//version 2.3.2
+
+NS_ASSUME_NONNULL_BEGIN
+
+typedef void (^ZIMCallback)(ZIMResponse *response);
+
+@interface DTFIdentityManager : NSObject
+
++ (DTFIdentityManager *)sharedInstance;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/star_lock/aliyun_face_plugin/ios/Products/DTFIdentityManager.framework/Headers/DTFIdentityPublicApi.h b/star_lock/aliyun_face_plugin/ios/Products/DTFIdentityManager.framework/Headers/DTFIdentityPublicApi.h
new file mode 100755
index 00000000..5bf77d3f
--- /dev/null
+++ b/star_lock/aliyun_face_plugin/ios/Products/DTFIdentityManager.framework/Headers/DTFIdentityPublicApi.h
@@ -0,0 +1,15 @@
+//
+// DTFIdentityPublicApi.h
+// DTFIdentityManager
+//
+// Created by richard on 22/11/2017.
+// Copyright © 2017 DTF. All rights reserved.
+//
+
+#ifndef DTFIdentityPublicApi_h
+#define DTFIdentityPublicApi_h
+
+#import
+#import
+
+#endif /* DTFIdentityPublicApi_h */
diff --git a/star_lock/aliyun_face_plugin/ios/Products/DTFIdentityManager.framework/Headers/DTFSdk.h b/star_lock/aliyun_face_plugin/ios/Products/DTFIdentityManager.framework/Headers/DTFSdk.h
new file mode 100755
index 00000000..c42026b1
--- /dev/null
+++ b/star_lock/aliyun_face_plugin/ios/Products/DTFIdentityManager.framework/Headers/DTFSdk.h
@@ -0,0 +1,44 @@
+//
+// DTFSdk.h
+// DTFIdentityManager
+//
+// Created by richard on 22/11/2017.
+// Copyright © 2017 DTF. All rights reserved.
+//
+
+#import
+
+@interface DTFSdk : NSObject
+
+/*初始化接口,尽可能早调用
+ */
++ (void)init;
+
+/* IPV6的初始化接口 只有你的网络环境强制要求是IPV6的时候,才调用initIPv6。
+ */
++ (void)initIPv6;
+
++ (NSString *)getVersion;
+
++ (void)preload:(NSDictionary *)param completion:(void (^)(BOOL success))completion;
+
+/*同步获取设备指纹token
+1)SDK初始化后需要经过一段时间计算才能获取到deviceToken,建议间隔3秒以上;
+2)deviceToken短期有效,不能长期缓存使用,不能作为设备唯一标识。
+*@param session 要获取的session缓冲区
+*@param lenth session缓冲区的长度,此值应不小于384 比如:char session[384] = {0};
+*@return 0表示成功,其他表示失败
+*/
++(int) getSession:(char *) session : (const int) lenth DEPRECATED_MSG_ATTRIBUTE("use getMobileSession instead");
+
+
+/*同步获取设备指纹token
+1)SDK初始化后需要经过一段时间计算才能获取到deviceToken,建议间隔3秒以上;
+2)如果没有获取到token,返回的内容是@"",没有内容的字符串。
+ */
++(NSString*)getMobileSession;
+
+//获取无线保镖基本数据。
++ (NSDictionary*) getSecurityInfo DEPRECATED_MSG_ATTRIBUTE("won't use any more");;
+
+@end
diff --git a/star_lock/aliyun_face_plugin/ios/Products/DTFIdentityManager.framework/Headers/ZimJSApiHandler.h b/star_lock/aliyun_face_plugin/ios/Products/DTFIdentityManager.framework/Headers/ZimJSApiHandler.h
new file mode 100755
index 00000000..5173191e
--- /dev/null
+++ b/star_lock/aliyun_face_plugin/ios/Products/DTFIdentityManager.framework/Headers/ZimJSApiHandler.h
@@ -0,0 +1,14 @@
+//
+// ZimJSApiAdapter.h
+// DTFIdentityManager
+//
+// Created by 晗羽 on 25/07/2017.
+// Copyright © 2017 DTF. All rights reserved.
+//
+
+#import
+typedef void (^ZIMJSApilCallbackBlock)(id responseData);
+
+@interface ZimJSApiHandler: NSObject
+- (void)handler:(NSDictionary *)data contextInfo:(NSDictionary *)context callback:(ZIMJSApilCallbackBlock)callbac;
+@end
diff --git a/star_lock/aliyun_face_plugin/ios/Products/DTFIdentityManager.framework/Headers/ZimRpcManager.h b/star_lock/aliyun_face_plugin/ios/Products/DTFIdentityManager.framework/Headers/ZimRpcManager.h
new file mode 100755
index 00000000..09e9243e
--- /dev/null
+++ b/star_lock/aliyun_face_plugin/ios/Products/DTFIdentityManager.framework/Headers/ZimRpcManager.h
@@ -0,0 +1,58 @@
+//
+// ZIMRpcManager.h
+// DTFIdentityManager
+//
+// Created by richard on 26/02/2018.
+// Copyright © 2018 com. DTF.iphoneclient.DTF. All rights reserved.
+//
+
+#import
+#import
+#import
+
+/**
+ * rpc结果回调
+ *
+ * @param success 网络交互是否成功(不代表服务端返回的结果)
+ * @param result 服务端返回的结果
+ */
+
+@interface ZimRpcManager : NSObject
+
+@property(nonatomic, weak) id rpcDelegate;
+
+//代理模式
+//- (void)doValidateRequetViaDelegate:(ZimValidateRequest * )request withcompletionBlock:(rpcCompletionBlock)blk;
+
+/**
+ * zim init request
+ *
+ * @param request 初始化请求
+ * @param blk 网络请求结果回调处理,result为ZimInitResponse
+ */
+- (void)doFastUploadInitRequest:(NSDictionary * )request withcompletionBlock:(DTFRpcCompletionBlock)blk;
+/**
+ * zim validate request
+ *
+ * @param request validate请求
+ * @param blk 网络请求结果回调处理,result为ZimValidateResponse
+ */
+- (void)doFastUploadValidateRequest:(ZimValidateRequest * )request withcompletionBlock:(DTFRpcCompletionBlock)blk;
+
+
+//OCR接口
+- (void) doSendOCRContent:(NSString*)certifyId idSide:(NSString*)side withImage:(NSData*)imageData withcompletionBlock:(rpcCompletionBlock)blk;
+
+//EKYC OCR接口
+- (void)doSendEKYCOCRContent:(NSDictionary*)params withcompletionBlock:(DTFRpcCompletionBlock)blk ;
+
+//EKYC OCR确认接口
+- (void)doSendEKYCOCRContentConfrim:(NSDictionary*)params withcompletionBlock:(DTFRpcCompletionBlock)blk ;
+
+// SMS 请求接口
+- (void)getSMSCode:(NSDictionary*)serviceParameters completionBlock:(DTFRpcCompletionBlock)blk;
+
+// SMS 验证接口
+- (void)verifySMSCode:(NSDictionary*)serviceParameters completionBlock:(DTFRpcCompletionBlock)blk;
+
+@end
diff --git a/star_lock/aliyun_face_plugin/ios/Products/DTFIdentityManager.framework/Info.plist b/star_lock/aliyun_face_plugin/ios/Products/DTFIdentityManager.framework/Info.plist
new file mode 100644
index 00000000..8ef8a5fa
Binary files /dev/null and b/star_lock/aliyun_face_plugin/ios/Products/DTFIdentityManager.framework/Info.plist differ
diff --git a/star_lock/aliyun_face_plugin/ios/Products/DTFIdentityManager.framework/Modules/module.modulemap b/star_lock/aliyun_face_plugin/ios/Products/DTFIdentityManager.framework/Modules/module.modulemap
new file mode 100644
index 00000000..6f1003ed
--- /dev/null
+++ b/star_lock/aliyun_face_plugin/ios/Products/DTFIdentityManager.framework/Modules/module.modulemap
@@ -0,0 +1,6 @@
+framework module DTFIdentityManager {
+ umbrella header "DTFIdentityManager.h"
+
+ export *
+ module * { export * }
+}
diff --git a/star_lock/aliyun_face_plugin/ios/Products/DTFIdentityManager.framework/en.lproj/InfoPlist.strings b/star_lock/aliyun_face_plugin/ios/Products/DTFIdentityManager.framework/en.lproj/InfoPlist.strings
new file mode 100644
index 00000000..3967e063
Binary files /dev/null and b/star_lock/aliyun_face_plugin/ios/Products/DTFIdentityManager.framework/en.lproj/InfoPlist.strings differ
diff --git a/star_lock/aliyun_face_plugin/ios/Products/DTFUtility.framework/DTFUtility b/star_lock/aliyun_face_plugin/ios/Products/DTFUtility.framework/DTFUtility
new file mode 100644
index 00000000..1e5cace4
Binary files /dev/null and b/star_lock/aliyun_face_plugin/ios/Products/DTFUtility.framework/DTFUtility differ
diff --git a/star_lock/aliyun_face_plugin/ios/Products/DTFUtility.framework/Headers/APBSystem.h b/star_lock/aliyun_face_plugin/ios/Products/DTFUtility.framework/Headers/APBSystem.h
new file mode 100644
index 00000000..3a4ca130
--- /dev/null
+++ b/star_lock/aliyun_face_plugin/ios/Products/DTFUtility.framework/Headers/APBSystem.h
@@ -0,0 +1,18 @@
+//
+// APBSystem.h
+// BioAuthService
+//
+// Created by yukun.tyk on 12/14/15.
+// Copyright © 2015 DTF. All rights reserved.
+//
+
+#import
+
+@interface APBSystem : NSObject
+
++ (double)systemVer;
+
++ (NSString *)modelString;
+
+
+@end
diff --git a/star_lock/aliyun_face_plugin/ios/Products/DTFUtility.framework/Headers/APBUtils.h b/star_lock/aliyun_face_plugin/ios/Products/DTFUtility.framework/Headers/APBUtils.h
new file mode 100644
index 00000000..a2412ff8
--- /dev/null
+++ b/star_lock/aliyun_face_plugin/ios/Products/DTFUtility.framework/Headers/APBUtils.h
@@ -0,0 +1,111 @@
+//
+// APBUtils.h
+// BioAuthEngine
+//
+// Created by richard on 27/08/2017.
+// Copyright © 2017 DTF. All rights reserved.
+//
+
+#import
+#import
+#include
+#include
+
+#define SCREEN_WIDTH [[UIScreen mainScreen]bounds].size.width //屏幕宽度
+#define SCREEN_HEIGHT [[UIScreen mainScreen]bounds].size.height //屏幕高度
+
+//获取document目录
+#define DOCUMENT_PATH [NSHomeDirectory() stringByAppendingPathComponent:@"Documents"]
+
+//资源文件目录
+#define ASSET_PATH [DOCUMENT_PATH stringByAppendingPathComponent:@"BioAuth"]
+
+//返回不为nil的string
+#define NONE_NIL_STRING(str) (str ? str : @"")
+
+
+#define SafeRelease(obj) if(obj){obj=nil;}
+
+//主线程同步操作
+#define SYNC_MAINTHREAD_BEGIN [APBUtils APBMainThread:^{
+#define SYNC_MAINTHREAD_END }];
+
+//pipeInfo线程安全操作
+static NSString *const kAPBPipeInfoMutexToken = @"";
+static id __apb_thread_safe_object_for_key(NSMutableDictionary *pipeInfo, NSString *key){
+ id ret;
+ @synchronized(kAPBPipeInfoMutexToken){
+ if ([pipeInfo isKindOfClass:[NSMutableDictionary class]] && [pipeInfo objectForKey: key]) {
+ ret = [pipeInfo objectForKey:key];
+ }
+ }
+ return ret;
+}
+
+//从pipeInfo中获取Object,线程安全
+#define THREAD_SAFE_OBJECT_FOR_KEY(pipeInfo, key) __apb_thread_safe_object_for_key(pipeInfo, key)
+
+//向pipeInfo中添加或修改Object,线程安全
+#define THREAD_SAFE_SET_OBJECT_FOR_KEY(pipeInfo, key, value) \
+ @synchronized(kAPBPipeInfoMutexToken){ \
+ if ([pipeInfo isKindOfClass:[NSMutableDictionary class]] && key && value) { \
+ [pipeInfo setObject:value forKey:key];}}
+
+//删除PipeInfo中某个Object,线程安全
+#define THREAD_SAFE_REMOVE_OBJECT_FOR_KEY(pipeInfo, key) \
+ @synchronized(kAPBPipeInfoMutexToken){ \
+ if ([pipeInfo isKindOfClass:[NSMutableDictionary class]] && [pipeInfo objectForKey: key]) { \
+ [pipeInfo removeObjectForKey: key];}}
+
+//将dict中对应value增加1
+#define INCREASE_BY_ONE(pipeInfo, key){ \
+ NSInteger num = [[pipeInfo objectForKey:key]integerValue]+1; \
+THREAD_SAFE_SET_OBJECT_FOR_KEY(pipeInfo, key, [NSNumber numberWithInteger:num]);}
+
+//将dict中对应value减1
+#define DECREASE_BY_ONE(pipeInfo, key){ \
+ NSInteger num = [[pipeInfo objectForKey:key]integerValue]-1; \
+THREAD_SAFE_SET_OBJECT_FOR_KEY(pipeInfo, key, [NSNumber numberWithInteger:--num]);}
+
+#define LOCK(locker, ...) dispatch_semaphore_wait(locker, DISPATCH_TIME_FOREVER); \
+__VA_ARGS__; \
+dispatch_semaphore_signal(locker);
+
+@interface APBUtils : NSObject
+
++ (NSString *)MD5WithData:(NSData *)data;
+
++ (NSString *)randomString:(NSInteger)len;
+
++ (BOOL)isWifi;
+
+/**
+ * 主线程同步操作,请调用宏版本
+ */
++ (void)APBMainThread:(dispatch_block_t)block;
+
++ (NSDictionary *)dictionaryWithJsonString:(NSString *)jsonString;
+
++ (NSString*)convertToJSONString:(NSDictionary *)infoDict;
+
++ (NSString *)currentLanguage;
+
++ (NSString *)localizedStringForKey:(NSString *)key inBundle:(NSString *)bundle;
+
++ (NSString *)localizedStringForKey:(NSString *)key;
+
++ (long long)getTotalDiskSize;
+
++ (long long)getAvailableDiskSize;
+
++ (NSString*)deviceVersion;
+
++ (NSString *)osVersion;
+
++ (NSString *)appName;
+
++ (NSString *)appVersion;
+
++ (CMVideoDimensions)maxResolution:(AVCaptureDevicePosition) position;
+
+@end
diff --git a/star_lock/aliyun_face_plugin/ios/Products/DTFUtility.framework/Headers/CameraService.h b/star_lock/aliyun_face_plugin/ios/Products/DTFUtility.framework/Headers/CameraService.h
new file mode 100644
index 00000000..656d16ab
--- /dev/null
+++ b/star_lock/aliyun_face_plugin/ios/Products/DTFUtility.framework/Headers/CameraService.h
@@ -0,0 +1,194 @@
+//
+// CameraService.h
+// DTFCameraService
+//
+// Created by Tommy Li on 2017/8/23.
+// Copyright © 2017年 EyeVerify. All rights reserved.
+//
+
+#import
+#import
+
+#if defined(__cplusplus)
+ #define DTF_EXPORT extern "C"
+#else
+ #define DTF_EXPORT extern
+#endif
+
+
+/// NSString keys that are used to specify configuration in DTFCameraService initialization.
+typedef NSString* const DTFCameraInitKey;
+
+/// NSString keys that are used to change configurations of DTFCameraService;
+typedef NSString* const DTFCameraConfigKey;
+
+/**
+ Funtion type signature that is used for -takePicture: callbacks after a still image is captured.
+
+ @param imageDataSampleBuffer The sample buffer of the still image. It is nil if any error occurred.
+ @param error NSError that indicates any error during the capture process. It is nil if no error occurred.
+ */
+typedef void(^DTFCameraTakePhotoCompletion)(CMSampleBufferRef imageDataSampleBuffer, NSError *error);
+
+/// Initialization Key for specifying device position during initialization. Associated value must be a AVCaptureDevicePosition.
+DTF_EXPORT DTFCameraInitKey DTFCameraInitKeyCaptureDevicePosition;
+
+/// Initialization Key for specifying quality preset during initialization. Associated value must be a AVCaptureSessionPreset.
+DTF_EXPORT DTFCameraInitKey DTFCameraInitKeySessionPreset;
+
+/// Initialization Key for specifying video orientation during initialization. Associated value must be a AVCaptureVideoOrientation.
+DTF_EXPORT DTFCameraInitKey DTFCameraInitKeyVideoOutputOrientation;
+
+/// Initialization Key for specifying video mode during initialization. Associated value must be a DTFCameraMode
+DTF_EXPORT DTFCameraInitKey DTFCameraInitKeyMode;
+
+/**
+ Configuration Key for specifying focus point of interest. Associated value must be a CGPoint (converted to an NSString).
+
+ Note that the associated value will be directly applied to camera without transformations, so regarding valid inputs please review focusPointOfInterest of AVCaptureDevice;
+ */
+DTF_EXPORT DTFCameraConfigKey DTFCameraConfigKeyFocusPointOfInterest;
+
+/// Error domain name for DTFCameraService
+DTF_EXPORT NSString *const kDTFCameraErrorDomain;
+
+
+/// Error codes used by DTFCameraService to indicate the type of errors occured.
+typedef NS_ENUM(NSInteger, DTFCameraErrorCode) {
+
+ /// Error code indicates that an invalid preset string is given during initialization.
+ DTFCameraUnsupportedPreset,
+
+ /// Error code indicates that no devices are available with the specified configuration.
+ DTFCameraNotAvailable,
+
+ /// Error code indicates that the capture session has failed.
+ DTFCameraSessionFailure,
+};
+
+/// Modes that DTFCameraService supports
+typedef NS_ENUM(NSInteger, DTFCameraMode) {
+
+ /// Video
+ DTFCameraModeVideo,
+
+ /// Still Image
+ DTFCameraModeStillImage
+
+};
+
+
+/**
+ A structure that stores camera configuration for associated camera service
+ */
+typedef struct camera_configuration_t{
+ /// Focus Point of Interest
+ CGPoint focusPointOfInterest;
+}camera_configuration;
+
+
+/**
+ Delegate to comply in order to receive camera output.
+ */
+@protocol DTFCameraServiceDelegate
+
+@optional
+/**
+ This function will be called by DTFCameraService to pass capture device output to the delegate.
+
+ Implement this optional function and call -setDelegate: if you have set DTFCameraModeVideo and wish to receive output.
+
+ @param captureOutput Output source that triggered this delegation.
+ @param sampleBuffer A CMSampleBuffer output from said output source.
+ @param connection The AVCaptureConnection related to the output.
+ */
+- (void)cameraControllerCaptureOutput:(AVCaptureOutput *)captureOutput
+ didOutputSampleBuffer:(CMSampleBufferRef)sampleBuffer
+ fromConnection:(AVCaptureConnection *)connection;
+
+@end
+
+/**
+ Main interface of DTFCameraService.
+ */
+@interface DTFCameraService : NSObject
+
+/// Property that allows inspections the current configuration of DTFCameraService
+@property(nonatomic, assign, readonly)camera_configuration configuration;
+
+/// Preview layer of the capture session. Add this layer as a sublayer to a view to inspect the device output.
+@property(nonatomic, strong) AVCaptureVideoPreviewLayer *previewLayer;
+
+/// Get current video output size
+@property (nonatomic, assign, readonly) CGSize videoOutputSize;
+
+
+/**
+ Do not use default NSObject initializer. Use initWithConfig:error: instead.
+ */
+- (instancetype)init NS_UNAVAILABLE;
+
+/**
+ Initialize the camera service.
+
+ If DTFCameraInitKeyCaptureDevicePosition is not specified in config, AVCaptureDevicePositionFront will be used as camera position.
+
+ If DTFCameraInitKeySessionPreset is not specified in config, AVCaptureSessionPresetHigh will be used as quality preset.
+
+ If DTFCameraInitKeyVideoOutputOrientation is not specified in config, output orientation will not be set. Video will be AVCaptureVideoOrientationLandscapeRight, and StillImage will be AVCaptureVideoOrientationPortrait.
+
+ If DTFCameraInitKeyMode is not specified in config, DTFCameraModeVideo will be used as video output.
+
+ @param config An NSDictionary that contains configuration keys and associated values to specify initialization requirements.
+ @param errPtr An optional error receiver for initialization failures. Use nil if error information is not needed.
+ @return If initialization is successful, a instance of DTFCameraService is returned. Anything failture during initialization would cause this initialzer to return nil.
+ */
+- (instancetype)initWithConfig:(NSDictionary *)config error:(NSError **)errPtr;
+
+/**
+ Set delegate that DTFCameraService can service
+
+ @param delegate An instance of class that implements DTFCameraServiceDelegate
+ */
+- (void)setDelegate:(id) delegate;
+
+/**
+ Change one configuration value in camera_configuration.
+
+ @param key Configuration key
+ @param value Properly formatted in-range value as a string
+ @return YES if configuration was successfully changed. NO otherwise.
+ */
+- (BOOL)changeConfiguration:(NSString *)key
+ desiredValue:(NSString *)value;
+
+- (BOOL)setWhiteBalanceMode:(AVCaptureWhiteBalanceMode)mode;
+
+- (BOOL)setExposureMode:(AVCaptureExposureMode)mode;
+
+/**
+ Start the capture session.
+
+ The capture session needs to be started manually. This is a synchronous operation.
+ */
+- (void)startCameraCompletion:(void (^)(void))completionBlock;
+
+/**
+ Stop the capture session.
+
+ This is a synchronous operation.
+ */
+- (void)stopCamera;
+
+/**
+ Capture a still image asynchronously.
+
+ @param completion Completion delegate when the capture process finishes. For required parameters see DTFCameraTakePhotoCompletion.
+ */
+- (void)takePicture:(DTFCameraTakePhotoCompletion)completion;
+
+//切换闪光灯状态
+- (void)flashOff;
+
+- (void)flashOn;
+@end
diff --git a/star_lock/aliyun_face_plugin/ios/Products/DTFUtility.framework/Headers/DTFBeanService.h b/star_lock/aliyun_face_plugin/ios/Products/DTFUtility.framework/Headers/DTFBeanService.h
new file mode 100644
index 00000000..4ad9d03b
--- /dev/null
+++ b/star_lock/aliyun_face_plugin/ios/Products/DTFUtility.framework/Headers/DTFBeanService.h
@@ -0,0 +1,30 @@
+//
+// DTFBeanService.h
+// DTFUtility
+//
+// Created by mengbingchuan on 2023/6/8.
+// Copyright © 2023 com.alipay.iphoneclient.zoloz. All rights reserved.
+//
+
+#import
+//#import "DTFRPCProxyProtocol.h"
+#import "DTFFaceIdentityProtocol.h"
+#import "DTFNFCIdentityProtocol.h"
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface DTFBeanService : NSObject
+
+//@property(nonatomic, strong) id rpcProxy;
+@property(nonatomic, strong) id faceIdentity;
+@property(nonatomic, strong) id nfcIdentity;
+
++ (DTFBeanService *)sharedInstance;
+
+- (void)setup;
+
+- (void)setupNFC;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/star_lock/aliyun_face_plugin/ios/Products/DTFUtility.framework/Headers/DTFConfiguration.h b/star_lock/aliyun_face_plugin/ios/Products/DTFUtility.framework/Headers/DTFConfiguration.h
new file mode 100644
index 00000000..d7e6201e
--- /dev/null
+++ b/star_lock/aliyun_face_plugin/ios/Products/DTFUtility.framework/Headers/DTFConfiguration.h
@@ -0,0 +1,47 @@
+//
+// DTFConfiguration.h
+// DTFSensorServices
+//
+// Created by sanyuan.he on 2020/2/25.
+// Copyright © 2020 DTF. All rights reserved.
+//
+
+#import
+#import
+#import