zouling 1 неделя назад
Родитель
Сommit
a577d5862d
100 измененных файлов с 3721 добавлено и 50 удалено
  1. 12 0
      1.txt
  2. BIN
      2f3220e0979706b15b10bd15bf3dced3.keystore
  3. 3 1
      App.vue
  4. 38 0
      api/common.js
  5. 10 2
      api/login.js
  6. 76 0
      api/mine/register.js
  7. 1 1
      api/system/dict/data.js
  8. 1 1
      api/system/dict/type.js
  9. 3 3
      api/system/user.js
  10. 35 0
      api/work/card.js
  11. 32 0
      api/work/index.js
  12. 111 0
      components/box/list.vue
  13. 27 33
      components/footer/footer.vue
  14. 59 0
      components/swiper/banner.vue
  15. 82 0
      components/swiper/notice.vue
  16. 65 0
      components/tabs/index.vue
  17. 176 0
      components/toptab/phonebtn.vue
  18. 3 2
      config.js
  19. 101 0
      hybrid/html/face.html
  20. 1 0
      hybrid/html/js/jquery.min.js
  21. 5 0
      hybrid/html/js/vue.min.js
  22. 0 0
      hybrid/html/js/web-office-sdk-solution-v2.0.6.umd.js
  23. 29 7
      manifest.json
  24. BIN
      nativeplugins/AP-FaceDetectModule/android/APSecuritySDK-DeepSec-7.0.1.20220813.jiagu.aar
  25. BIN
      nativeplugins/AP-FaceDetectModule/android/Android-AliyunFaceGuard-10038.aar
  26. BIN
      nativeplugins/AP-FaceDetectModule/android/aliyun-base-2.2.8.1-20230721163000.aar
  27. BIN
      nativeplugins/AP-FaceDetectModule/android/aliyun-facade-2.2.8.1-20230721163000.aar
  28. BIN
      nativeplugins/AP-FaceDetectModule/android/aliyun-face-2.2.8.1-20230721163000.aar
  29. BIN
      nativeplugins/AP-FaceDetectModule/android/aliyun-faceaudio-2.2.8.1-20230721163000.aar
  30. BIN
      nativeplugins/AP-FaceDetectModule/android/aliyun-facelanguage-2.2.8.1-20230721163000.aar
  31. BIN
      nativeplugins/AP-FaceDetectModule/android/aliyun-nfc-2.2.8.1-20230721163000.aar
  32. BIN
      nativeplugins/AP-FaceDetectModule/android/aliyun-ocr-2.2.8.1-20230721163000.aar
  33. BIN
      nativeplugins/AP-FaceDetectModule/android/aliyun-photinus-2.2.8.1-20230721163000.aar
  34. BIN
      nativeplugins/AP-FaceDetectModule/android/aliyun-wishverify-2.2.8.1-20230721163000.aar
  35. BIN
      nativeplugins/AP-FaceDetectModule/android/uniplugin_module-release.aar
  36. 68 0
      nativeplugins/AP-FaceDetectModule/ios/APBToygerFacade.bundle/en.strings
  37. 59 0
      nativeplugins/AP-FaceDetectModule/ios/APBToygerFacade.bundle/id.strings
  38. 59 0
      nativeplugins/AP-FaceDetectModule/ios/APBToygerFacade.bundle/ja.strings
  39. 59 0
      nativeplugins/AP-FaceDetectModule/ios/APBToygerFacade.bundle/ko.strings
  40. 68 0
      nativeplugins/AP-FaceDetectModule/ios/APBToygerFacade.bundle/zh-HK.strings
  41. 68 0
      nativeplugins/AP-FaceDetectModule/ios/APBToygerFacade.bundle/zh-Hans.strings
  42. 68 0
      nativeplugins/AP-FaceDetectModule/ios/APBToygerFacade.bundle/zh-Hant.strings
  43. BIN
      nativeplugins/AP-FaceDetectModule/ios/APBToygerFacade.framework/APBToygerFacade
  44. 76 0
      nativeplugins/AP-FaceDetectModule/ios/APBToygerFacade.framework/Headers/APBToygerBaseTask.h
  45. 19 0
      nativeplugins/AP-FaceDetectModule/ios/APBToygerFacade.framework/Headers/APBToygerCherryDetectTask.h
  46. 26 0
      nativeplugins/AP-FaceDetectModule/ios/APBToygerFacade.framework/Headers/APBToygerCherryUploadTask.h
  47. 36 0
      nativeplugins/AP-FaceDetectModule/ios/APBToygerFacade.framework/Headers/APBToygerFacade.h
  48. 130 0
      nativeplugins/AP-FaceDetectModule/ios/APBToygerFacade.framework/Headers/APBToygerFacadeDefine.h
  49. 25 0
      nativeplugins/AP-FaceDetectModule/ios/APBToygerFacade.framework/Headers/APBToygerPresentTask.h
  50. 27 0
      nativeplugins/AP-FaceDetectModule/ios/APBToygerFacade.framework/Headers/APBToygerUploadTask.h
  51. 61 0
      nativeplugins/AP-FaceDetectModule/ios/APBToygerFacade.framework/Headers/APBToygerUtils.h
  52. 34 0
      nativeplugins/AP-FaceDetectModule/ios/APBToygerFacade.framework/Headers/APBToygerViewController.h
  53. BIN
      nativeplugins/AP-FaceDetectModule/ios/APBToygerFacade.framework/Info.plist
  54. 6 0
      nativeplugins/AP-FaceDetectModule/ios/APBToygerFacade.framework/Modules/module.modulemap
  55. BIN
      nativeplugins/AP-FaceDetectModule/ios/APBToygerFacadeSuitable.bundle/voiceUrl_angle.mp3
  56. BIN
      nativeplugins/AP-FaceDetectModule/ios/APBToygerFacadeSuitable.bundle/voiceUrl_away.mp3
  57. BIN
      nativeplugins/AP-FaceDetectModule/ios/APBToygerFacadeSuitable.bundle/voiceUrl_blink.mp3
  58. BIN
      nativeplugins/AP-FaceDetectModule/ios/APBToygerFacadeSuitable.bundle/voiceUrl_closer.mp3
  59. BIN
      nativeplugins/AP-FaceDetectModule/ios/APBToygerFacadeSuitable.bundle/voiceUrl_integrity.mp3
  60. BIN
      nativeplugins/AP-FaceDetectModule/ios/APBToygerFacadeSuitable.bundle/voiceUrl_left_yaw.mp3
  61. BIN
      nativeplugins/AP-FaceDetectModule/ios/APBToygerFacadeSuitable.bundle/voiceUrl_light.mp3
  62. BIN
      nativeplugins/AP-FaceDetectModule/ios/APBToygerFacadeSuitable.bundle/voiceUrl_right_yaw.mp3
  63. BIN
      nativeplugins/AP-FaceDetectModule/ios/APBToygerFacadeSuitable.bundle/voiceUrl_stay.mp3
  64. BIN
      nativeplugins/AP-FaceDetectModule/ios/APPSecuritySDK.framework/APPSecuritySDK
  65. BIN
      nativeplugins/AP-FaceDetectModule/ios/APPSecuritySDK.framework/APPSecuritySDKCore-Info.plist
  66. 122 0
      nativeplugins/AP-FaceDetectModule/ios/APPSecuritySDK.framework/Headers/APDID.h
  67. 41 0
      nativeplugins/AP-FaceDetectModule/ios/APPSecuritySDK.framework/Headers/APDeviceColor.h
  68. 32 0
      nativeplugins/AP-FaceDetectModule/ios/APPSecuritySDK.framework/Headers/APDynamic.h
  69. 21 0
      nativeplugins/AP-FaceDetectModule/ios/APPSecuritySDK.framework/Headers/APRiskConfigReportRequest.h
  70. 19 0
      nativeplugins/AP-FaceDetectModule/ios/APPSecuritySDK.framework/Headers/APRiskConfigReportResponse.h
  71. 20 0
      nativeplugins/AP-FaceDetectModule/ios/APPSecuritySDK.framework/Headers/APRiskConfigServiceProtocol.h
  72. 14 0
      nativeplugins/AP-FaceDetectModule/ios/APPSecuritySDK.framework/Headers/APRiskFileUploadProtocol.h
  73. 21 0
      nativeplugins/AP-FaceDetectModule/ios/APPSecuritySDK.framework/Headers/APRiskLoggerProtocol.h
  74. 30 0
      nativeplugins/AP-FaceDetectModule/ios/APPSecuritySDK.framework/Headers/APRiskRPCProtocol.h
  75. 29 0
      nativeplugins/AP-FaceDetectModule/ios/APPSecuritySDK.framework/Headers/APRiskRemoteLoggerProtocol.h
  76. 68 0
      nativeplugins/AP-FaceDetectModule/ios/APPSecuritySDK.framework/Headers/APRiskReportRequest.h
  77. 65 0
      nativeplugins/AP-FaceDetectModule/ios/APPSecuritySDK.framework/Headers/APRiskReportResponse.h
  78. 20 0
      nativeplugins/AP-FaceDetectModule/ios/APPSecuritySDK.framework/Headers/APRiskRpcConfiguration.h
  79. 21 0
      nativeplugins/AP-FaceDetectModule/ios/APPSecuritySDK.framework/Headers/APRiskSyncHandlerProtocol.h
  80. 28 0
      nativeplugins/AP-FaceDetectModule/ios/APPSecuritySDK.framework/Headers/APRiskSyncServiceProtocol.h
  81. 41 0
      nativeplugins/AP-FaceDetectModule/ios/APPSecuritySDK.framework/Headers/APSecRDS.h
  82. 48 0
      nativeplugins/AP-FaceDetectModule/ios/APPSecuritySDK.framework/Headers/APSecStore.h
  83. 113 0
      nativeplugins/AP-FaceDetectModule/ios/APPSecuritySDK.framework/Headers/APSecureSdk.h
  84. 56 0
      nativeplugins/AP-FaceDetectModule/ios/APPSecuritySDK.framework/Headers/APSign.h
  85. 234 0
      nativeplugins/AP-FaceDetectModule/ios/APPSecuritySDK.framework/Headers/ASSCommon.h
  86. 37 0
      nativeplugins/AP-FaceDetectModule/ios/APPSecuritySDK.framework/Headers/ASSDynamicManager.h
  87. 39 0
      nativeplugins/AP-FaceDetectModule/ios/APPSecuritySDK.framework/Headers/ASSLogger.h
  88. 28 0
      nativeplugins/AP-FaceDetectModule/ios/APPSecuritySDK.framework/Headers/ASSSecureInfo.h
  89. 77 0
      nativeplugins/AP-FaceDetectModule/ios/APPSecuritySDK.framework/Headers/ASSSecureOpenSdk.h
  90. 29 0
      nativeplugins/AP-FaceDetectModule/ios/APPSecuritySDK.framework/Headers/ASSSgomInfoOpen.h
  91. 40 0
      nativeplugins/AP-FaceDetectModule/ios/APPSecuritySDK.framework/Headers/ASSTokenResult.h
  92. 101 0
      nativeplugins/AP-FaceDetectModule/ios/APPSecuritySDK.framework/Headers/AntSecurityManager.h
  93. BIN
      nativeplugins/AP-FaceDetectModule/ios/APPSecuritySDK.framework/Info.plist
  94. BIN
      nativeplugins/AP-FaceDetectModule/ios/APPSecuritySDK.framework/_CodeSignature/CodeDirectory
  95. BIN
      nativeplugins/AP-FaceDetectModule/ios/APPSecuritySDK.framework/_CodeSignature/CodeRequirements
  96. BIN
      nativeplugins/AP-FaceDetectModule/ios/APPSecuritySDK.framework/_CodeSignature/CodeRequirements-1
  97. 559 0
      nativeplugins/AP-FaceDetectModule/ios/APPSecuritySDK.framework/_CodeSignature/CodeResources
  98. 0 0
      nativeplugins/AP-FaceDetectModule/ios/APPSecuritySDK.framework/_CodeSignature/CodeSignature
  99. BIN
      nativeplugins/AP-FaceDetectModule/ios/APPSecuritySDK.framework/en.lproj/InfoPlist.strings
  100. 9 0
      nativeplugins/AP-FaceDetectModule/ios/APPSecuritySDK.framework/module.map

+ 12 - 0
1.txt

@@ -0,0 +1,12 @@
+包名:zxy.prevent_drowning
+
+
+证书别名:__uni__0951fa1
+证书私钥密码:2Lx6HK2L
+
+MD5: 0F:E3:95:82:84:3A:C2:75:98:8B:9E:D2:9B:E8:87:F0
+SHA1: A9:71:C0:F0:1C:07:E6:3B:D3:79:71:FC:8C:40:27:F3:EC:09:F3:CF
+SHA256: EE:1A:5B:83:93:E7:6F:61:AD:1C:E0:D9:AF:C7:FA:8B:C4:BF:4C:94:F7:11:66:42:FB:BF:D4:84:BF:26:C6:2A
+
+高德key:
+

BIN
2f3220e0979706b15b10bd15bf3dced3.keystore


+ 3 - 1
App.vue

@@ -113,5 +113,7 @@ const baseUrl = config.baseUrl
 </script>
 
 <style lang="scss">
-  @import '@/static/scss/index.scss'
+  @import '@/static/scss/index.scss';
+  @import "@/static/style.css";
+  @import "@/static/rich.css";
 </style>

+ 38 - 0
api/common.js

@@ -0,0 +1,38 @@
+import request from '@/utils/request'
+// 系统通知-列表 system:notice:list
+export function getNoticeList(data) {
+  return request({
+    'url': '/system/notice/list',
+    'method': 'get',
+	'data':data
+  })
+}
+// 系统通知-详情 system:notice:query
+export function getNoticeQuery(data) {
+  return request({
+    'url': '/system/notice/'+data,
+    'method': 'get',
+  })
+}
+// 待办提醒-列表 system:remind:list
+export function getRemindList(data) {
+  return request({
+    'url': '/remind/list',
+    'method': 'get',
+	'data':data
+  })
+}
+// 待办提醒-详情 system:remind:query
+export function getRemindDet(data) {
+  return request({
+    'url': '/remind/'+data,
+    'method': 'get',
+  })
+}
+// banbber图
+export function getbannerList(data) {
+  return request({
+    url: '/banner/listNoPage',
+    method: 'get',
+  })
+}

+ 10 - 2
api/login.js

@@ -1,12 +1,12 @@
 import request from '@/utils/request'
 
 // 登录方法
-export function login(username, password, code, uuid) {
+export function login(username, password, code, uuid,type) {
   const data = {
     username,
     password,
     code,
-    uuid
+    uuid,type
   }
   return request({
     'url': '/login',
@@ -57,3 +57,11 @@ export function getCodeImg() {
     timeout: 20000
   })
 }
+// 发送短信验证码
+export function sendSmsOnly(data) {
+  return request({
+    'url': '/sendSms/sendLoginSms',
+    'method': 'POST',
+	data:data
+  })
+}

+ 76 - 0
api/mine/register.js

@@ -0,0 +1,76 @@
+import request from '@/utils/request'
+
+
+// 字典值yzdqId
+export function getDictionaryFn(data) {
+  return request({
+    url: '/system/dict/data/type/'+data,
+    method: 'get',
+	type:true
+  })
+}
+// 参数设置
+export function getconfigKeyFn(data) {
+  return request({
+    url: '/system/config/scoreWatermark/'+data,
+    method: 'get',
+	type:true
+  })
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+// // 流程发起时获取下一节点
+// export function getflowableNextRegFn(data) {
+//   return request({
+//     'url': '/flowable/task/nextFlowNodeByStart',
+//     'method': 'post',
+// 	data:data
+//   })
+// }
+// // 发起流程
+// export function getflowableRegFn(id,data) {
+//   return request({
+//     'url': '/flowable/definition/start/'+id,
+//     'method': 'post',
+// 	data:data
+//   })
+// }
+
+// //获取流程定义列表
+// export function getflowlistFn(data) {
+//   return request({
+//     'url': '/flowable/definition/list',
+//     'method': 'get',
+// 	'data':data
+//   })
+// }
+// //获取自己发起的流程
+// export function getflowMyFn(data) {
+//   return request({
+//     'url': '/flowable/task/myProcess',
+//     'method': 'get',
+// 	'data':data
+//   })
+// }

+ 1 - 1
api/system/dict/data.js

@@ -38,7 +38,7 @@ export function addData(data) {
 export function updateData(data) {
   return request({
     url: '/system/dict/data',
-    method: 'put',
+    method: 'post',
     data: data
   })
 }

+ 1 - 1
api/system/dict/type.js

@@ -30,7 +30,7 @@ export function addType(data) {
 export function updateType(data) {
   return request({
     url: '/system/dict/type',
-    method: 'put',
+    method: 'post',
     data: data
   })
 }

+ 3 - 3
api/system/user.js

@@ -8,8 +8,8 @@ export function updateUserPwd(oldPassword, newPassword) {
     newPassword
   }
   return request({
-    url: '/system/user/profile/updatePwd',
-    method: 'put',
+    url: '/system/user/profile/updatePwd?oldPassword='+oldPassword+'&newPassword='+newPassword,
+    method: 'post',
     data: data
   })
 }
@@ -34,7 +34,7 @@ export function findVersion(data) {
 export function updateUserProfile(data) {
   return request({
     url: '/system/user/profile',
-    method: 'put',
+    method: 'post',
     data: data
   })
 }

+ 35 - 0
api/work/card.js

@@ -0,0 +1,35 @@
+import request from '@/utils/request'
+//身份证识别
+export function getOcrIdCard(data) {
+  return request({
+    'url': '/ocr/ocrIdCard',
+    'method': 'post',
+	'data':data
+  })
+}
+
+
+//人脸识别阿里云金融级实人认证
+export function getOcrFn(data) {
+  return request({
+    'url': '/ocr/ocrSampleAliYun',
+    'method': 'post',
+	'data':data
+  })
+}
+//人脸识别阿里云金融级实人认证H5
+export function getOcrHFn(data) {
+  return request({
+    'url': '/ocr/ocrSampleAliYunH',
+    'method': 'post',
+	'data':data
+  })
+}
+//人脸识别百度V4版本H5
+// export function getOcrH5Fn(data) {
+//   return request({
+//     'url': '/idCard/h',
+//     'method': 'post',
+// 	'data':data
+//   })
+// }

+ 32 - 0
api/work/index.js

@@ -0,0 +1,32 @@
+import request from '@/utils/request'
+
+// 新闻信息-列表manage:news:list
+export function getNewsList(data) {
+  return request({
+    'url': '/manage/news/list',
+    'method': 'get',
+	'data':data
+  })
+}
+// 新闻信息-详情manage:news:query
+export function getNewsQuery(data) {
+  return request({
+    'url': '/manage/news/'+data,
+    'method': 'get',
+  })
+}
+// banner-不分页列表manage:banner:list
+export function getBannerListNoPage(data) {
+  return request({
+    'url': '/manage/banner/listNoPage',
+    'method': 'get',
+	'data':data
+  })
+}
+// banner-详情manage:banner:query
+export function getBannerQuery(data) {
+  return request({
+    'url': '/manage/banner/'+data,
+    'method': 'get',
+  })
+}

+ 111 - 0
components/box/list.vue

@@ -0,0 +1,111 @@
+<template>
+<view>
+	<block v-if="datainfo.length>0">
+		<!-- 新闻 -->
+		<block v-if="type=='article'">
+			<view class="newlist" v-for="(ite,idx) in datainfo" :key="idx" @click="getDetail(ite.newsId)">
+				<view class="over tit">{{ite.newsTitle}}</view>
+				<view class="txt overtwo mb10" v-if="ite.newsContent"><rich-text :nodes="filterImages(ite.newsContent)"></rich-text></view>
+				<view class="nfoot flexc">
+					<image :src="look"></image>
+					<text>{{ite.viewsNum}}</text>
+					<view class="flex1"></view>
+					<text>{{ite.releaseTime||KaTime(ite.createTime)}}</text>
+				</view>
+			</view>
+		</block>
+		<!-- 视频 -->
+		<block v-if="type=='avideo'">
+			<view class="newlist" v-for="(ite,idx) in datainfo" :key="idx">
+				<video v-if="ite.newUrl[0]" id="myVideo" :src="baseUrl+ite.newUrl[0]"  controls></video>
+				<view class="tit">{{ite.newsTitle}}</view>
+				<view class="nfoot flexc">
+					<image :src="look"></image>
+					<text>{{ite.viewsNum}}</text>
+					<view class="flex1"></view>
+					<text>{{ite.releaseTime||KaTime(ite.createTime)}}</text>
+				</view>
+			</view>
+		</block>
+		<view class="shax" v-if="wtdt">{{wtdt}}</view>
+	</block>
+	
+	<!-- 无数据 -->
+	<view class="nodata" v-else>
+		<image :src="noiconpimg"></image>
+		<view>暂无数据</view>
+	</view>
+</view>
+</template>
+
+<script>
+	import { checkPermi, checkRole } from "@/utils/permission"; // 权限判断函数
+	import config from '@/config'
+	export default{
+		props:{
+			datainfo: {
+				type: Array,
+				default () {
+					return []
+				}
+			},
+			wtdt:{
+				type:String,
+				default () {
+					return ''
+				}
+			},
+			type:{
+				type:String,
+				default () {
+					return 0
+				}
+			},
+		},
+		data(){
+			return{
+				noiconpimg:require("@/static/images/nodata.png"),
+				look:require("@/static/images/home/look.png"),
+				baseUrl:config.baseUrl,
+			}
+		},
+		mounted() {
+			
+		},
+		methods:{
+			checkPermi, checkRole,
+			getDetail(e){
+				this.$emit('getDetail',e)
+			},
+			// 过滤掉图片
+			filterImages(html) {
+			    if (!html) return '';
+			    return html.replace(/<img[^>]*>/gi, '');
+			},
+			KaTime(val){
+				if(val){
+					return val.substring(0,10)
+				}
+			}
+		}
+	}
+</script>
+
+<style lang="scss" scoped>
+// 新闻
+.newlist{width: 100%;background: #FFFFFF;border-radius: 20rpx;margin-bottom: 20rpx;padding: 20rpx 26rpx;
+	.tit{font-weight: bold;font-size: 30rpx;color: #161A1E;margin-bottom: 16rpx;}
+	.txt{font-weight: 500;font-size: 24rpx;color: #666666;}
+	.nfoot{
+		image{width: 24rpx;height: 16rpx;margin-right: 10rpx;}
+		text{font-weight: 500;font-size:24rpx;color: #949695;}
+	}
+	video{width: 100%;height: 342rpx;margin-bottom: 16rpx;}
+}
+
+// 无数据
+.nodata{display: flex;flex-direction: column;align-items: center;padding-top: 48rpx;
+	image{width: 336rpx;height: 284rpx;margin-bottom: 26rpx;}
+	view{font-size: 24rpx;color: #666666;font-weight: 500;}	
+}
+</style>

+ 27 - 33
components/footer/footer.vue

@@ -2,20 +2,22 @@
 	<view>
 		
 	
-	<view style="height: 100rpx;"></view>
-    <view class="com_footer">
-		<block v-for="(item,k) in footlist" :key="k">
-			<!-- v-if="!item.limit||item.limit&&checkPermi([item.limit])" -->
-			<view class="in_item"   @click="gotopage(item)">
-				<view class="im_imgs">
-					<image class="in_img" :class="item.img" v-if="active == item.module" :src="item.icon_checked" mode="scaleToFill"></image>
-					<image class="in_img" :class="item.img" v-else :src="item.icon_nochecked" mode="scaleToFill"></image>
+	<!-- <view style="height: 150rpx;"></view> -->
+	<view class="footbg">
+		<view class="com_footer">
+			<block v-for="(item,k) in footlist" :key="k">
+				<!-- v-if="!item.limit||item.limit&&checkPermi([item.limit])" -->
+				<view class="in_item"   @click="gotopage(item)">
+					<view class="im_imgs">
+						<image class="in_img" :class="item.img" v-if="active == item.module" :src="item.icon_checked" mode="scaleToFill"></image>
+						<image class="in_img" :class="item.img" v-else :src="item.icon_nochecked" mode="scaleToFill"></image>
+					</view>
+					<view class="in_txt" v-if="active == item.module" :style="'color: #'+color_checked">{{item.title}}</view>
+					<view class="in_txt" v-else :style="'color: #'+color_nochecked">{{item.title}}</view>
 				</view>
-				<view class="in_txt" v-if="active == item.module" :style="'color: #'+color_checked">{{item.title}}</view>
-				<view class="in_txt" v-else :style="'color: #'+color_nochecked">{{item.title}}</view>
-			</view>
-		</block>
-    </view>
+			</block>
+		</view>
+	</view>
 	</view>
 </template>
 
@@ -30,13 +32,11 @@
 				active :'',
 				footlist:[
 					// limit:'system:camera:video',
-					// {module:'home',title:'首页',img:"imga",icon_checked:require('@/static/images/tabbar/home_.png'),icon_nochecked:require('@/static/images/tabbar/home.png')},
-					// {module:'health',title:'康养',img:"imgb",icon_checked:require('@/static/images/tabbar/health_.png'),icon_nochecked:require('@/static/images/tabbar/health.png')},
-					// {module:'goods',title:'商圈',img:"imgc",icon_checked:require('@/static/images/tabbar/store_.png'),icon_nochecked:require('@/static/images/tabbar/store.png')},
-					// {module:'mine',title:'我的',img:"imgd",icon_checked:require('@/static/images/tabbar/mine_.png'),icon_nochecked:require('@/static/images/tabbar/mine.png')},
+					{module:'home',title:'首页',img:"imga",icon_checked:require('@/static/images/tabbar/home_.png'),icon_nochecked:require('@/static/images/tabbar/home.png')},
+					{module:'mine',title:'我的',img:"imga",icon_checked:require('@/static/images/tabbar/mine_.png'),icon_nochecked:require('@/static/images/tabbar/mine.png')},
 					],
-				color_checked :'272727',
-				color_nochecked :'666666',
+				color_checked :'2B73FF',
+				color_nochecked :'838383',
             }
         },
 		mounted() {
@@ -51,10 +51,6 @@
 				let link = e.link, module = e.module, def = e.default, title = e.title;
 				if(module == 'home'){
 					this.$tab.reLaunch('/pages/index/index')
-				}else if(module == 'health'){
-					this.$tab.reLaunch('/pages/health/index')
-				}else if(module == 'goods'){
-					this.$tab.reLaunch('/pages/goods/index')
 				}else if(module == 'mine'){
 					this.$tab.reLaunch('/pages/mine/index')
 				}
@@ -67,16 +63,14 @@
 
 
 <style type="text/css" lang="scss" scoped>
-    .com_footer{ display: flex;position: fixed;box-sizing: border-box;z-index: 4;width: 100%;height: 100rpx;bottom: 0;left: 0;background-color: #fff;overflow: hidden;box-shadow: 0px 0px 16rpx 0px rgba(87,87,87,0.41);}
-	.com_footer .in_item{ display: block;flex: 1;padding: 12rpx 0 0 0;overflow: hidden; }
-	.com_footer .in_img{ display: block;width: 44rpx;height: 44rpx;margin: 0 auto; }
-	.com_footer .in_txt{ font-size: 24rpx;color: #999;text-align: center; font-weight: bold;}
-	.com_footer .in_txt_on{ color: #20AD20; }
-	.im_imgs{width: 48rpx;height: 48rpx;display: flex;align-items: center;justify-content: center;margin: 0 auto;}
+	// background: #E2EDFF;
+	.footbg{position: fixed;z-index: 4;bottom: 0;left: 0;right: 0;padding: 20rpx 172rpx 30rpx;display: flex;align-items: center;justify-content: center;}
+    .com_footer{ display: flex;box-sizing: border-box;background-color: #fff;box-shadow: 0px 0px 16rpx 4rpx #D2DFF3;height: 100rpx;border-radius: 50rpx;flex: 1;
+		.in_item{ display: block;flex: 1;padding: 12rpx 0 0 0;overflow: hidden; }
+		.in_txt{ font-size: 20rpx;color: #838383;text-align: center; font-weight: bold;}
+	}
+	.im_imgs{width: 48rpx;height: 48rpx;display: flex;align-items: center;justify-content: center;margin: 0 auto 2rpx;}
 	.in_img{
-		&.imga{width: 44rpx;height: 42rpx;}
-		&.imgb{width: 44rpx;height: 40rpx;}
-		&.imgc{width: 44rpx;height: 44rpx;}
-		&.imgd{width: 42rpx;height: 44rpx;}
+		&.imga{width: 48rpx;height: 46rpx;}
 	}
 </style>

+ 59 - 0
components/swiper/banner.vue

@@ -0,0 +1,59 @@
+<template>
+  <view>
+	  <!-- 轮播图 circular-->
+	  <block v-if="list&&list.length>1">
+		  <swiper :style="'height:'+height+'rpx;'"  class="swiper" circular :indicator-color="incolorh" :indicator-active-color="activecolorh" :indicator-dots="indicatorDotsh" :autoplay="autoplayh">
+		  	<swiper-item v-for="(ite,idx) in list" :key="idx">
+		  		<image :src="baseUrl+ite" class="bannerimg"></image>
+		  	</swiper-item>
+		  </swiper>
+	  </block>
+	  <view class="swiper" :style="'height:'+height+'rpx;'" v-else>
+		  <image :src="baseUrl+list[0]" class="bannerimg"></image>
+	  </view>
+  </view>
+</template>
+
+<script>
+	import config from '@/config'
+  export default {
+	props:{
+		list:{
+			type: Array,
+			default () {
+				return []
+			}			  
+		},
+		height:{
+			type: [String,Number],
+			default () {
+				return '342'
+			}
+		}
+	},
+	data(){
+		return{
+			banner:require('@/static/images/home/banner.png'),
+			autoplayh:false,
+			incolorh:'#E6E6E6',
+			activecolorh:'#A7A7A7',
+			indicatorDotsh: true,
+			baseUrl:config.baseUrl,
+		}
+	},
+    onLoad: function() {
+		
+    },
+	methods:{
+		
+	}
+  }
+</script>
+<style lang="scss" scoped>
+.swiper{
+	width: 100%;border-radius: 10rpx;overflow: hidden;
+	image{width: 100%;height: 100%;}
+}
+.swiper /deep/ .uni-swiper-dot{width: 10rpx;height: 10rpx;}
+// .swiper /deep/ .uni-swiper-dot-active{width: 24rpx;height: 10rpx;}
+</style>

+ 82 - 0
components/swiper/notice.vue

@@ -0,0 +1,82 @@
+<template>
+  <view v-if="noticelist.length">
+	  <view class="hswip" >
+			<!--  -->
+			<swiper class="swiper" indicator-dots="true" :indicator-color="nactiveColor" :indicator-active-color="activeColor" circular :autoplay="autoplay" :interval="interval" :duration="duration" vertical='true'>
+				<swiper-item v-for="(ite,idx) in noticelist" :key="">
+					<view class="flexc swipers" @click="getDetail(ite.noticeId)">
+						<view class="cir"></view>
+						<!-- <view class="tit over">您的孩子 <text>{{ite.tit}}</text> 疑似在河中游泳,请尽快确认是…</view> -->
+						<view class="tit over">{{ite.noticeTitle}}</view>
+						<!-- <view class="time">{{ite.publishTime}}</view> -->
+					</view>
+				</swiper-item>
+			</swiper>
+	  		
+	  </view>
+  </view>
+</template>
+
+<script>
+  export default {
+	  props:{
+	  	autoplay: {
+	  		type: Boolean,
+	  		default () {
+	  			return false
+	  		}
+	  	},
+	  	confdat:{},
+		activeColor:{
+			type:String,
+			default () {
+				return '#90BFFF'
+			}
+		},
+		nactiveColor:{
+			type:String,
+			default () {
+				return '#F0F0F0'
+			}
+		},
+		noticelist:{
+			type: Array,
+			default () {
+				return []
+			}
+		}
+	  },
+	data(){
+		return{
+            interval: 2000,
+            duration: 500
+		}
+	},
+	methods:{
+		 getRoad(){
+		 	console.log(1)
+		 },
+		 getDetail(e){
+			 this.$emit('getNoticeDet',e)
+		 }
+	},
+	onLoad: function() {
+    }
+  }
+</script>
+
+<style lang="scss" scoped>
+.hswip /deep/ .uni-swiper-dots-vertical{right: 14rpx;}
+.hswip /deep/  .uni-swiper-dot{width: 10rpx; height: 10rpx;margin-bottom: 14rpx;}
+// width: 100%;background: #ffffff;border-radius: 20rpx;
+.hswip{position: relative;width: 100%;padding: 0 12rpx;
+	.swiper{flex: 1;height: 88rpx;z-index: 1;
+	.swipers{height: 88rpx;padding: 0 60rpx 0 12rpx;box-sizing: border-box;}
+		.tit{flex: 1;font-weight: 500;font-size: 26rpx;color: #000000;
+			text{color: #3575FD;padding: 0 6rpx;}
+		}
+		.time{font-weight: 500;font-size: 22rpx;color: #AAAAAA;}
+		.cir{width: 10rpx;height: 10rpx;background: #EE474B;border-radius: 50%;margin-right: 16rpx;}
+	}
+}
+</style>

+ 65 - 0
components/tabs/index.vue

@@ -0,0 +1,65 @@
+<template>
+	<view class="listtopb flexc" >
+		<block v-for="(ite,idx) in tablist" :key='idx'>
+			<view class="tit" :style="'height:'+height+'rpx'" :class="tabval==ite.dictValue?'act':''" @click="getTab(ite.dictValue)" >
+				{{ite.dictLabel}}
+			</view>	
+		</block>
+	</view>
+</template>
+
+<script>
+	import { checkPermi, checkRole } from "@/utils/permission"; // 权限判断函数
+	export default{
+		props:{
+			tablist:{
+				type: Array,
+				default () {
+					return []
+				}
+			},
+			height:{
+				type: Number,
+				default () {
+					return 80
+				}
+			},
+			tabval:{
+				type: [String,Number],
+				default () {
+					return ''
+				}
+			}
+		},
+		data(){
+			return{
+				// :0,
+			}
+		},
+		mounted() {
+			
+		},
+		methods:{
+			checkPermi, checkRole,
+			getTab(val){
+				this.$emit('getCheck',val)
+			},
+			getroleFn(){
+				this.$emit('getroleFn')
+			},
+		}
+	}
+</script>
+
+<style lang="scss">
+	.listtopb{width: 100%;overflow: auto;
+		 .tit{display: flex;justify-content: center;position: relative;align-items: center;
+font-weight: 500;font-size: 30rpx;color: #626669;height: 80rpx;padding: 0 26rpx;
+			&.act{font-weight: bold;font-size: 34rpx;color: #161A1E;
+			 &::after{content: '';width: 36rpx;height: 6rpx;background: #0053FF;
+border-radius: 4rpx;position: absolute;left: 50%;margin-left: -17rpx;bottom: 0rpx;}
+			
+			}
+		 }
+	}
+</style>

+ 176 - 0
components/toptab/phonebtn.vue

@@ -0,0 +1,176 @@
+<template>
+  <view>
+	  <view class="box_hei" @click="getClose" v-if="type">
+	  	<view @click.stop="btns"  class="hei_box">
+	  		<view class="box_top">
+	  			<view class="box_title">
+	  				<view>
+	  					智能校管家 申请使用
+	  				</view>
+	  			</view>
+	  			<view class="box_nameq">你的手机号码</view>
+	  		</view>
+	  		<!-- <view class="boxs"></view> -->
+	  		<view class="box_btns">
+	  			<view @click="getClose" class="box_btn box_btn1">拒绝</view>
+	  			<button class="box_btn box_btn2" open-type="getPhoneNumber" @getphonenumber="getPhoneNumber">允许</button>
+	  		</view>
+	  	</view>
+	  </view>
+  </view>
+</template>
+
+<script>
+	// import tabSearch from "@/components/toptab/search.vue"
+	import {getweChatOpenid} from "@/api/login.js"
+  export default {
+	  props:{
+		type:{
+			type:Boolean,
+			default () {
+				return true
+			}
+		},
+	  },
+	data(){
+		return{
+			// sucimg:require("@/static/images/mine/success.png") 
+		}
+	},
+	methods:{
+		getClose(){
+			this.$emit("getClose")
+		},
+		btns(){
+			
+		},
+		async getPhoneNumber(e){
+			const {iv,encryptedData} = e.detail;
+			var that=this;
+			uni.login({
+			    provider: 'weixin',
+			    success: (res) => {
+			        // 获取用户信息
+					if(res.code) {
+						var params={
+							iv: iv,
+							encryptedData: encryptedData,
+							code : res.code,
+						}
+						// 登录还是注册
+						that.$emit("getPhoneNumber",params)
+						
+					}
+			    }
+			})			
+		}, 
+	},
+	onLoad: function() {
+    }
+  }
+</script>
+
+<style lang="scss" scoped>
+.box_hei{
+		width: 100%;
+		height: 100%;
+		background: rgba(0,0,0,.8);
+		position: fixed;
+		top: 0;
+		left: 0;
+		z-index: 3;
+		.hei_box{
+			background: #fff;
+			border-radius:22upx 22upx 0 0;
+			height: 440upx;
+			padding: 52upx 28upx 104upx;
+			position: absolute;
+			bottom:0;
+			width: 100%;
+			box-sizing: border-box;
+			.box_top{
+				padding: 0 18upx 62upx;
+				.box_title{
+					display: flex;
+					justify-content: space-between;
+					font-size: 30upx;
+					margin-bottom: 30upx;
+					view{
+						display: flex;
+						align-items: center;
+						color: #333333;
+					}
+					.img{
+						margin-right: 14upx;
+						width: 180upx;
+						height: 48upx;
+					}
+					.imgs{
+						width: 40upx;
+						height: 40upx;
+					}
+				}
+				.box_nameq{
+					color: #333333;
+					font-size: 44upx;
+					font-weight: bold;
+				}
+			}
+			.box_phone{
+				height: 106upx;
+				display: flex;
+				align-items: center;
+				justify-content: space-between;
+				font-size: 28upx;
+				color: #A6A6A6;
+				border-bottom: 1upx solid #EBEBEB;
+				border-top: 1upx solid #EBEBEB;
+				view{
+					display: flex;
+					align-items: center;
+				}
+				.img{
+					width: 26upx;
+					height: 22upx;
+				}
+				span{
+					color: #333333;
+					font-size: 32upx;
+					padding-right: 18upx;
+					font-weight: bold;
+				}
+			}
+			.box_qita{
+				height: 106upx;
+				font-size: 28upx;
+				color: #7CA4FC;
+				line-height: 106upx;
+			}
+			.boxs{
+				height: 50upx;
+			}
+			.box_btns{
+				margin-top: 10upx;
+				display: flex;
+				justify-content: space-between;
+				.box_btn{
+					width: 324upx;
+					height: 82upx;
+					font-size: 32upx;
+					display: flex;
+					align-items: center;
+					justify-content: center;
+					border-radius: 4upx;
+				}
+				.box_btn1{
+					background: #F3F3F3;
+					color: #33B925;
+				}
+				.box_btn2{
+					background: #37962B;
+					color: #FFFFFF;
+				}
+			}
+		}
+	}
+</style>

+ 3 - 2
config.js

@@ -1,7 +1,8 @@
 // 应用全局配置
 module.exports = {
-  baseUrl: 'https://vue.ruoyi.vip/prod-api',
-  // baseUrl: 'http://localhost:8080',
+  // baseUrl: 'https://vue.ruoyi.vip/prod-api',
+  baseUrl: 'http://192.168.101.245:8056',
+  // baseUrl: 'http://192.168.101.86:8056',
   // 应用信息
   appInfo: {
     // 应用名称

+ 101 - 0
hybrid/html/face.html

@@ -0,0 +1,101 @@
+<!DOCTYPE html>
+<html lang="zh">
+	<head>
+		<meta charset="UTF-8">
+		<!-- <meta name="viewport" content="width=device-width, initial-scale=1.0"> -->
+		<meta name="viewport"
+			content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no, viewport-fit=cover" />
+		<title>实人认证</title>
+		<script type="text/javascript" src="https://cn-shanghai-aliyun-cloudauth.oss-cn-shanghai.aliyuncs.com/web_sdk_js/jsvm_all.js" ></script>
+		
+		<script type="text/javascript" src="js/vue.min.js"></script>
+		<script type="text/javascript" src="js/jquery.min.js"></script>
+		<script type="text/javascript" src="../../config.js"></script>
+	</head>
+	<style>
+		body{background-color: #ffffff;}
+		.tit{font-size: 14px;text-align: center;padding-top: 100px;}
+	</style>
+	<body>
+		<div id="content">
+			<div class="tit">正在跳转,请稍后~ </div>
+		</div>
+	</body>
+	<script>
+		let _this;
+		var vm = new Vue({
+			el: '#content',
+			data: {
+				metaInfo: '',
+				baseUrl: 'https://rzdbh.qs163.cn/prod-api'
+				// baseUrl: 'http://47.99.82.249:5017/prod-api'
+				// baseUrl: 'http://192.168.101.245:8056'
+			},
+			mounted() {
+				let query = this.getQuery('data')
+				if (!query) {
+					alert('参数不存在')
+					return
+				}
+				query = JSON.parse(query)
+				var metaInfo = window.getMetaInfo();
+				this.metaInfo = JSON.stringify(metaInfo)
+				this.init(query)
+			},
+			methods: {
+				getQuery(name) {
+					let reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)");
+					let r = window.location.search.substr(1).match(reg);
+					if (r != null) {
+						// 对参数值进行解码
+						return decodeURIComponent(r[2]);
+					}
+					return null;
+				},
+				init(item) {
+					var that = this;
+					var header={
+					    'Authorization':  'Bearer ' + item.token,
+					}
+					var params = {
+						idCard: item.idCard,
+						realName: item.realName,
+						expirationDate: item.expirationDate,
+						phonenumber: item.phonenumber,
+						address: item.address,
+						front: item.front,
+						back: item.back,
+						userId: item.userId,
+						metaInfo: this.metaInfo,
+						returnUrl:item.returnUrl,
+					}
+					var baseUrl = this.baseUrl;
+					$.ajax({
+						url: baseUrl + '/ocr/ocrSampleAliYunH',
+						type: 'post',
+						dataType: 'json',
+						contentType : 'application/json',
+						headers: header,
+						data: JSON.stringify(params),
+						success: function(res) {
+							if (res.code == 200) {
+								var certifyUrl = res.data.certifyUrl;
+								// window.location.href = certifyUrl;
+								var time=setTimeout(function(){
+									window.location.href = certifyUrl
+								},10)
+								
+								// location.href=certifyUrl
+							} else {
+								// that.$message({
+								// 	message: res.msg,
+								// 	type: 'error'
+								// });
+							}
+						}
+					})
+				},
+			}
+		});
+	</script>
+</html>

Разница между файлами не показана из-за своего большого размера
+ 1 - 0
hybrid/html/js/jquery.min.js


Разница между файлами не показана из-за своего большого размера
+ 5 - 0
hybrid/html/js/vue.min.js


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
hybrid/html/js/web-office-sdk-solution-v2.0.6.umd.js


+ 29 - 7
manifest.json

@@ -1,6 +1,6 @@
 {
-    "name" : "若依移动端",
-    "appid" : "__UNI__25A9D80",
+    "name" : "防溺水告警平台",
+    "appid" : "__UNI__0951FA1",
     "description" : "",
     "versionName" : "1.2.0",
     "versionCode" : "100",
@@ -14,7 +14,9 @@
             "autoclose" : true,
             "delay" : 0
         },
-        "modules" : {},
+        "modules" : {
+            "VideoPlayer" : {}
+        },
         "distribute" : {
             "android" : {
                 "permissions" : [
@@ -35,13 +37,33 @@
                     "<uses-permission android:name=\"android.permission.WRITE_SETTINGS\"/>"
                 ]
             },
-            "ios" : {},
-            "sdkConfigs" : {}
+            "ios" : {
+                "dSYMs" : false
+            },
+            "sdkConfigs" : {
+                "ad" : {}
+            }
+        },
+        "nativePlugins" : {
+            "AP-FaceDetectModule" : {
+                "__plugin_info__" : {
+                    "name" : "APFaceDetectPlugin",
+                    "description" : "阿里云金融级实人认证SDK",
+                    "platforms" : "Android,iOS",
+                    "url" : "",
+                    "android_package_name" : "",
+                    "ios_bundle_id" : "",
+                    "isCloud" : false,
+                    "bought" : -1,
+                    "pid" : "",
+                    "parameters" : {}
+                }
+            }
         }
     },
     "quickapp" : {},
     "mp-weixin" : {
-        "appid" : "wxccd7e2a0911b3397",
+        "appid" : "wx694b1ba10320b8bc",
         "setting" : {
             "urlCheck" : false,
             "es6" : false,
@@ -60,7 +82,7 @@
             "port" : 9090,
             "https" : false
         },
-        "title" : "RuoYi-App",
+        "title" : "防溺水告警平台",
         "router" : {
             "mode" : "history",
             "base" : ""

BIN
nativeplugins/AP-FaceDetectModule/android/APSecuritySDK-DeepSec-7.0.1.20220813.jiagu.aar


BIN
nativeplugins/AP-FaceDetectModule/android/Android-AliyunFaceGuard-10038.aar


BIN
nativeplugins/AP-FaceDetectModule/android/aliyun-base-2.2.8.1-20230721163000.aar


BIN
nativeplugins/AP-FaceDetectModule/android/aliyun-facade-2.2.8.1-20230721163000.aar


BIN
nativeplugins/AP-FaceDetectModule/android/aliyun-face-2.2.8.1-20230721163000.aar


BIN
nativeplugins/AP-FaceDetectModule/android/aliyun-faceaudio-2.2.8.1-20230721163000.aar


BIN
nativeplugins/AP-FaceDetectModule/android/aliyun-facelanguage-2.2.8.1-20230721163000.aar


BIN
nativeplugins/AP-FaceDetectModule/android/aliyun-nfc-2.2.8.1-20230721163000.aar


BIN
nativeplugins/AP-FaceDetectModule/android/aliyun-ocr-2.2.8.1-20230721163000.aar


BIN
nativeplugins/AP-FaceDetectModule/android/aliyun-photinus-2.2.8.1-20230721163000.aar


BIN
nativeplugins/AP-FaceDetectModule/android/aliyun-wishverify-2.2.8.1-20230721163000.aar


BIN
nativeplugins/AP-FaceDetectModule/android/uniplugin_module-release.aar


+ 68 - 0
nativeplugins/AP-FaceDetectModule/ios/APBToygerFacade.bundle/en.strings

@@ -0,0 +1,68 @@
+/* 
+  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";

+ 59 - 0
nativeplugins/AP-FaceDetectModule/ios/APBToygerFacade.bundle/id.strings

@@ -0,0 +1,59 @@
+"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";

+ 59 - 0
nativeplugins/AP-FaceDetectModule/ios/APBToygerFacade.bundle/ja.strings

@@ -0,0 +1,59 @@
+"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:刷脸失败次数过多,请稍后再试"="顔認識が頻繁に実行されています。後でもう一度やり直してください";

+ 59 - 0
nativeplugins/AP-FaceDetectModule/ios/APBToygerFacade.bundle/ko.strings

@@ -0,0 +1,59 @@
+"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:刷脸失败次数过多,请稍后再试"="안면 인식이 연속으로 실행되었습니다. 나중에 다시 시도하세요";

+ 68 - 0
nativeplugins/AP-FaceDetectModule/ios/APBToygerFacade.bundle/zh-HK.strings

@@ -0,0 +1,68 @@
+/* 
+  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:刷脸失败次数过多,请稍后再试"="刷臉失敗次數過多,請稍後再試";

+ 68 - 0
nativeplugins/AP-FaceDetectModule/ios/APBToygerFacade.bundle/zh-Hans.strings

@@ -0,0 +1,68 @@
+/* 
+  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:刷脸失败次数过多,请稍后再试"="刷脸失败次数过多,请稍后再试";

+ 68 - 0
nativeplugins/AP-FaceDetectModule/ios/APBToygerFacade.bundle/zh-Hant.strings

@@ -0,0 +1,68 @@
+/* 
+  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:刷脸失败次数过多,请稍后再试"="刷臉失敗次數過多,請稍後再試";

BIN
nativeplugins/AP-FaceDetectModule/ios/APBToygerFacade.framework/APBToygerFacade


+ 76 - 0
nativeplugins/AP-FaceDetectModule/ios/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 <UIKit/UIKit.h>
+#import <Foundation/Foundation.h>
+#import <BioAuthEngine/IBioAuthTask.h>
+#import <BioAuthEngine/APBTaskContext.h>
+#import <BioAuthEngine/APBLogger.h>
+#import <BioAuthEngine/AFEAlertView.h>
+#import <APBToygerFacade/APBToygerUtils.h>
+#import <BioAuthEngine/APBToygerRemoteConfig.h>
+#import <BioAuthEngine/APBToygerBehavlogManager.h>
+//#import "APBToygerDataCenter.h"
+#import <BioAuthEngine/BioAuthCommonSetting.h>
+#import <APBToygerFacade/APBToygerViewController.h>
+
+@class DTFLogMonitor,APBToygerDataCenter;
+
+typedef void (^APFAlertExtraAction)();
+
+@interface APBToygerBaseTask : NSObject <IBioAuthTask>
+
+//协议定义的属性
+@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

+ 19 - 0
nativeplugins/AP-FaceDetectModule/ios/APBToygerFacade.framework/Headers/APBToygerCherryDetectTask.h

@@ -0,0 +1,19 @@
+//
+//  APFCherryDetectTask.h
+//  APBToygerFacade
+//
+//  Created by richard on 01/02/2018.
+//  Copyright © 2018 DTF. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+#import <BioAuthEngine/AFEStatusBar.h>
+#import <APBToygerFacade/APBToygerBaseTask.h>
+#import <BioAuthEngine/BioAuthEngine.h>
+#import <DTFUtility/CameraService.h>
+
+@interface APBToygerCherryDetectTask : APBToygerBaseTask <DTFCameraServiceDelegate, DTFFaceViewDelegate>
+
+@property(nonatomic, assign)BOOL photinusFlags;
+
+@end

+ 26 - 0
nativeplugins/AP-FaceDetectModule/ios/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 <Foundation/Foundation.h>
+#import <APBToygerFacade/APBToygerUploadTask.h>
+#import <BioAuthEngine/APBToygerDataCenter.h>
+
+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 <APBToygerDataCenterDelegate>
+
+- (APBToygerRemoteCommand)remoteCommandFromString:(NSString *)code;
+
+@end

+ 36 - 0
nativeplugins/AP-FaceDetectModule/ios/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 <Foundation/Foundation.h>
+#import <BioAuthEngine/IBioAuthFactor.h>
+
+@interface APBToygerFacade : NSObject <IBioAuthFactor>
+
++(void)setTokenid:(NSString*)info;
++(NSString*)getTokenid;
+
+@end
+
+#import <APBToygerFacade/APBToygerCherryDetectTask.h>
+#import <APBToygerFacade/APBToygerBaseTask.h>
+#import <APBToygerFacade/APBToygerPresentTask.h>
+#import <APBToygerFacade/APBToygerCherryUploadTask.h>
+#import <APBToygerFacade/APBToygerUtils.h>
+#import <APBToygerFacade/APBToygerUploadTask.h>
+#import <APBToygerFacade/APBToygerFacadeDefine.h>
+#import <BioAuthEngine/APBToygerRemoteConfig.h>
+#import <BioAuthEngine/APBToygerBehavlogManager.h>
+#import <BioAuthEngine/APBToygerDataCenter.h>
+#import <APBToygerFacade/APBToygerViewController.h>
+#import <UIKit/UIKit.h>
+
+//! Project version number for APBToygerFacade.
+FOUNDATION_EXPORT double APBToygerFacadeVersionNumber;
+
+//! Project version string for APBToygerFacade.
+FOUNDATION_EXPORT const unsigned char APBToygerFacadeVersionString[];

+ 130 - 0
nativeplugins/AP-FaceDetectModule/ios/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

+ 25 - 0
nativeplugins/AP-FaceDetectModule/ios/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 <APBToygerFacade/APBToygerBaseTask.h>
+#import <DTFUtility/CameraService.h>
+#import <BioAuthEngine/DTFFaceViewProtocol.h>
+/**
+ *  @author Skye Ying, 16-08-26 13:08:04
+ *
+ *  新建VC,启动整个view
+ */
+@interface APBToygerPresentTask : APBToygerBaseTask
+
+@property(nonatomic, strong) id<DTFFaceViewProtocol> faceView;
+
+-(void) postCameraPresentwithCamera:(DTFCameraService *) cameraService;
+
+-(void) presentAnimated: (BOOL)flag completion:(void (^ __nullable)(void))completion;
+
+@end

+ 27 - 0
nativeplugins/AP-FaceDetectModule/ios/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 <APBToygerFacade/APBToygerBaseTask.h>
+
+/**
+ 上传基类,用于下沉多种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

+ 61 - 0
nativeplugins/AP-FaceDetectModule/ios/APBToygerFacade.framework/Headers/APBToygerUtils.h

@@ -0,0 +1,61 @@
+//
+//  APFUtils.h
+//  APFaceDetectBiz
+//
+//  Created by 晗羽 on 8/25/16.
+//  Copyright © 2016 DTF. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+#import <APBToygerFacade/APBToygerFacadeDefine.h>
+
+//#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;
+
++ (UIImage *)imageWithImage:(UIImage *)image scaledToSize:(CGSize)newSize;
+
+@end
+
+
+
+

+ 34 - 0
nativeplugins/AP-FaceDetectModule/ios/APBToygerFacade.framework/Headers/APBToygerViewController.h

@@ -0,0 +1,34 @@
+//
+//  APFViewController.h
+//  APFaceDetectBiz
+//
+//  Created by 晗羽 on 8/25/16.
+//  Copyright © 2016 DTF. All rights reserved.
+//
+
+#import <UIKit/UIKit.h>
+#import <ToygerService/ToygerService.h>
+#import <BioAuthEngine/DTFFaceViewProtocol.h>
+
+NSString *const kAbnormalClose = @"abnormalclose";
+@class APBToygerBaseTask;
+@interface APBToygerViewController : UIViewController
+
+@property(nonatomic, strong) DTFLogMonitor *monitor;
+@property(nonatomic, strong) id<DTFFaceViewProtocol> faceView;
+@property(nonatomic, assign) BOOL isClose;
+@property(nonatomic, strong) NSString *platformInfo;
+@property(nonatomic, weak) APBToygerBaseTask *baseTask;
+
+- (void)startFaceRecognition:(AVCaptureVideoPreviewLayer *)layer;
+- (void)addWebGuideView:(UIView *)guideView;
+- (void)handleFaceStateChange:(ToygerMessage)state
+                    stateTips:(NSString *)tips
+                  actionGuide:(NSString *)guide
+                     progress:(CGFloat)progress;
+- (void)showLoadingView;
+- (void)dismissLoadingView;
+- (void)setPhotinusColor:(UIColor *)color;
+- (void)showBlur:(UIImage *)image;
+
+@end

BIN
nativeplugins/AP-FaceDetectModule/ios/APBToygerFacade.framework/Info.plist


+ 6 - 0
nativeplugins/AP-FaceDetectModule/ios/APBToygerFacade.framework/Modules/module.modulemap

@@ -0,0 +1,6 @@
+framework module APBToygerFacade {
+  umbrella header "APBToygerFacade.h"
+
+  export *
+  module * { export * }
+}

BIN
nativeplugins/AP-FaceDetectModule/ios/APBToygerFacadeSuitable.bundle/voiceUrl_angle.mp3


BIN
nativeplugins/AP-FaceDetectModule/ios/APBToygerFacadeSuitable.bundle/voiceUrl_away.mp3


BIN
nativeplugins/AP-FaceDetectModule/ios/APBToygerFacadeSuitable.bundle/voiceUrl_blink.mp3


BIN
nativeplugins/AP-FaceDetectModule/ios/APBToygerFacadeSuitable.bundle/voiceUrl_closer.mp3


BIN
nativeplugins/AP-FaceDetectModule/ios/APBToygerFacadeSuitable.bundle/voiceUrl_integrity.mp3


BIN
nativeplugins/AP-FaceDetectModule/ios/APBToygerFacadeSuitable.bundle/voiceUrl_left_yaw.mp3


BIN
nativeplugins/AP-FaceDetectModule/ios/APBToygerFacadeSuitable.bundle/voiceUrl_light.mp3


BIN
nativeplugins/AP-FaceDetectModule/ios/APBToygerFacadeSuitable.bundle/voiceUrl_right_yaw.mp3


BIN
nativeplugins/AP-FaceDetectModule/ios/APBToygerFacadeSuitable.bundle/voiceUrl_stay.mp3


BIN
nativeplugins/AP-FaceDetectModule/ios/APPSecuritySDK.framework/APPSecuritySDK


BIN
nativeplugins/AP-FaceDetectModule/ios/APPSecuritySDK.framework/APPSecuritySDKCore-Info.plist


+ 122 - 0
nativeplugins/AP-FaceDetectModule/ios/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 <Foundation/Foundation.h>
+#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

+ 41 - 0
nativeplugins/AP-FaceDetectModule/ios/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 <Foundation/Foundation.h>
+
+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

+ 32 - 0
nativeplugins/AP-FaceDetectModule/ios/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 <Foundation/Foundation.h>
+
+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

+ 21 - 0
nativeplugins/AP-FaceDetectModule/ios/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 <Foundation/Foundation.h>
+
+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

+ 19 - 0
nativeplugins/AP-FaceDetectModule/ios/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 <Foundation/Foundation.h>
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface APRiskConfigReportResponse : NSObject
+
+@property(nonatomic, strong) NSDictionary* resultData;
+
+@end
+
+NS_ASSUME_NONNULL_END

+ 20 - 0
nativeplugins/AP-FaceDetectModule/ios/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 <NSObject>
+
+@required
+- (NSString *)stringValueForKey:(NSString *)key;
+
+- (void)addConfigChangeListener:(id<APRiskSyncHandlerProtocol>)handler forKey:(NSString *)key;
+
+- (void)refreshConfig:(NSDictionary *)tConfigMap from:(NSString *)sourceType;
+
+@end
+

+ 14 - 0
nativeplugins/AP-FaceDetectModule/ios/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 <NSObject>
+
+@required
+- (NSString *)uploadCustomFile:(NSString *)path;
+
+@end

+ 21 - 0
nativeplugins/AP-FaceDetectModule/ios/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 <Foundation/Foundation.h>
+
+NS_ASSUME_NONNULL_BEGIN
+
+@protocol APRiskLoggerProtocol <NSObject>
+
+@required
+
+-(void)print:(NSString *)format, ...NS_REQUIRES_NIL_TERMINATION;
+
+@end
+
+NS_ASSUME_NONNULL_END

+ 30 - 0
nativeplugins/AP-FaceDetectModule/ios/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 <NSObject>
+//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

+ 29 - 0
nativeplugins/AP-FaceDetectModule/ios/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 <NSObject>
+
+@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

+ 68 - 0
nativeplugins/AP-FaceDetectModule/ios/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 <Foundation/Foundation.h>
+
+@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

+ 65 - 0
nativeplugins/AP-FaceDetectModule/ios/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 <Foundation/Foundation.h>
+
+@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

+ 20 - 0
nativeplugins/AP-FaceDetectModule/ios/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 <Foundation/Foundation.h>
+
+@interface APRiskRpcConfiguration : NSObject
+// 超时时间
+@property(nonatomic, assign) int timeout;
+
+// 网关地址
+@property(nonatomic, strong) NSString* gatewayURL;
+
+// workspaceid和appid
+@property(nonatomic, strong) NSDictionary *headers;
+
+@end

+ 21 - 0
nativeplugins/AP-FaceDetectModule/ios/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 <Foundation/Foundation.h>
+
+NS_ASSUME_NONNULL_BEGIN
+
+@protocol APRiskSyncHandlerProtocol <NSObject>
+
+@required
+
+-(void) handleWithBizType: (NSString *) bizType andData: (NSString *) data;
+
+@end
+
+NS_ASSUME_NONNULL_END

+ 28 - 0
nativeplugins/AP-FaceDetectModule/ios/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 <Foundation/Foundation.h>
+#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 <NSObject>
+
+@required
+
+-(void) registerHandler:(id<APRiskSyncHandlerProtocol>)handler;
+-(void) registerSyncBiz;
+
+@end
+
+NS_ASSUME_NONNULL_END

+ 41 - 0
nativeplugins/AP-FaceDetectModule/ios/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 <Foundation/Foundation.h>
+#import <UIKit/UIKit.h>
+
+@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

+ 48 - 0
nativeplugins/AP-FaceDetectModule/ios/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 <Foundation/Foundation.h>
+
+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

+ 113 - 0
nativeplugins/AP-FaceDetectModule/ios/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 <Foundation/Foundation.h>
+
+//初始化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

+ 56 - 0
nativeplugins/AP-FaceDetectModule/ios/APPSecuritySDK.framework/Headers/APSign.h

@@ -0,0 +1,56 @@
+//
+//  APSign.h
+//  APPSecuritySDK-Sign
+//
+//  Created by eric on 2021/2/25.
+//  Copyright © 2021 Alipay. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+
+NS_ASSUME_NONNULL_BEGIN
+
+@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

+ 234 - 0
nativeplugins/AP-FaceDetectModule/ios/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 <Foundation/Foundation.h>
+#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)ipQW983<ll>uitx,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

+ 37 - 0
nativeplugins/AP-FaceDetectModule/ios/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 <Foundation/Foundation.h>
+#import "APDynamicProtocol.h"
+
+@interface ASSDynamicManager : NSObject<APDynamicProtocol>
+
++ (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

+ 39 - 0
nativeplugins/AP-FaceDetectModule/ios/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 <Foundation/Foundation.h>
+#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

+ 28 - 0
nativeplugins/AP-FaceDetectModule/ios/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 <Foundation/Foundation.h>
+
+#define  ASSSecureInfo      ASSSecureInfoCore
+
+@interface ASSSecureInfo : NSObject
+/**
+ *  重打包检测
+ *  返回值:YES表示个人签名;NO表示企业签名
+ *
+ */
++ (BOOL)hasPersonSign;
+
+/**
+ *  越狱检测
+ *  返回值:0表示非越狱;大于0其他值表示越狱
+ *
+ */
++ (uint32_t)checkJB;
+
+@end

+ 77 - 0
nativeplugins/AP-FaceDetectModule/ios/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 <Foundation/Foundation.h>
+#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

+ 29 - 0
nativeplugins/AP-FaceDetectModule/ios/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 <Foundation/Foundation.h>
+
+/**
+* 感知结果类。
+*/
+@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

+ 40 - 0
nativeplugins/AP-FaceDetectModule/ios/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 <Foundation/Foundation.h>
+
+#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

+ 101 - 0
nativeplugins/AP-FaceDetectModule/ios/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 <Foundation/Foundation.h>
+
+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

BIN
nativeplugins/AP-FaceDetectModule/ios/APPSecuritySDK.framework/Info.plist


BIN
nativeplugins/AP-FaceDetectModule/ios/APPSecuritySDK.framework/_CodeSignature/CodeDirectory


BIN
nativeplugins/AP-FaceDetectModule/ios/APPSecuritySDK.framework/_CodeSignature/CodeRequirements


BIN
nativeplugins/AP-FaceDetectModule/ios/APPSecuritySDK.framework/_CodeSignature/CodeRequirements-1


+ 559 - 0
nativeplugins/AP-FaceDetectModule/ios/APPSecuritySDK.framework/_CodeSignature/CodeResources

@@ -0,0 +1,559 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+	<key>files</key>
+	<dict>
+		<key>APPSecuritySDK-Info.plist</key>
+		<data>
+		Po//BA5tM1BE58borc33LNpqXyw=
+		</data>
+		<key>Headers/APDID.h</key>
+		<data>
+		YaNffM20hdQMiNpnIoEPIHF8o+A=
+		</data>
+		<key>Headers/APDeviceColor.h</key>
+		<data>
+		sqZwHJLZ8j2L+9pkCmTqWHaRPoo=
+		</data>
+		<key>Headers/APDynamic.h</key>
+		<data>
+		TBp9H7ZpcLh5hWGFJbObSnR3sSQ=
+		</data>
+		<key>Headers/APRiskConfigReportRequest.h</key>
+		<data>
+		5vPyFFL4v0DrNrSc35DrU0204M4=
+		</data>
+		<key>Headers/APRiskConfigReportResponse.h</key>
+		<data>
+		WODwFqptygg++OMfRxg5nJhV1tM=
+		</data>
+		<key>Headers/APRiskConfigServiceProtocol.h</key>
+		<data>
+		SJJczKTD81Beaeutnk5eh5yYk6s=
+		</data>
+		<key>Headers/APRiskFileUploadProtocol.h</key>
+		<data>
+		LLqKfgEm/gVHeBO+chBoA32ce6w=
+		</data>
+		<key>Headers/APRiskLoggerProtocol.h</key>
+		<data>
+		KaoFaIX0tcWToF7p3GQSPdm1fNI=
+		</data>
+		<key>Headers/APRiskRPCProtocol.h</key>
+		<data>
+		/OdHTVHBuEGxpO5dJbde5mXoV3Q=
+		</data>
+		<key>Headers/APRiskRemoteLoggerProtocol.h</key>
+		<data>
+		L9Ca3T+cAEzjRZxJTwHTaKytgQs=
+		</data>
+		<key>Headers/APRiskReportRequest.h</key>
+		<data>
+		p0bXoJMwS+46ZRrgLqdvbEFjAmI=
+		</data>
+		<key>Headers/APRiskReportResponse.h</key>
+		<data>
+		3pzJU3RgAQBnPg/R2tEjuGJLfvc=
+		</data>
+		<key>Headers/APRiskRpcConfiguration.h</key>
+		<data>
+		ypma2woz2iRq5pghoIkfFTGVm+8=
+		</data>
+		<key>Headers/APRiskSyncHandlerProtocol.h</key>
+		<data>
+		Vum7s9ObS3JRBHwQBG4BUdk6SN8=
+		</data>
+		<key>Headers/APRiskSyncServiceProtocol.h</key>
+		<data>
+		V0kCGcKZFd1gG+a2uuDzVkzj218=
+		</data>
+		<key>Headers/APSecRDS.h</key>
+		<data>
+		ZKM/B2Jcl/et+wyK8FepeewKCi8=
+		</data>
+		<key>Headers/APSecStore.h</key>
+		<data>
+		rEuJJetfP9Aj7GLQd5R3IgSZw/c=
+		</data>
+		<key>Headers/APSecureSdk.h</key>
+		<data>
+		ywtAfrae7i2g9jT6cXJt775tdng=
+		</data>
+		<key>Headers/APSign.h</key>
+		<data>
+		r5sKoLYWS4dLLlNO9xAcWNGi6Cw=
+		</data>
+		<key>Headers/ASSCommon.h</key>
+		<data>
+		lrrlG7ZqNaz4ciXX/i5kj/NnG3A=
+		</data>
+		<key>Headers/ASSDynamicManager.h</key>
+		<data>
+		4Vk+CxCMPtR9isbOl7FqtE5jZuo=
+		</data>
+		<key>Headers/ASSLogger.h</key>
+		<data>
+		WvM9Fp3B5ZaI8D+rnHiUcBTxsdk=
+		</data>
+		<key>Headers/ASSSecureInfo.h</key>
+		<data>
+		C7uQ4VE5uwtF5ws1blMIKLKpfmI=
+		</data>
+		<key>Headers/ASSSecureOpenSdk.h</key>
+		<data>
+		KmdnMxfQN0cqG23Vuu092URfYCs=
+		</data>
+		<key>Headers/ASSSgomInfoOpen.h</key>
+		<data>
+		/AhECuNKFdWPVi1Q6oH8rMN66XM=
+		</data>
+		<key>Headers/ASSTokenResult.h</key>
+		<data>
+		X5xdpK/2lE52tWoVFEg/ZivE9UQ=
+		</data>
+		<key>Headers/AntSecurityManager.h</key>
+		<data>
+		w5tB5gEPNoVoucc6rkAlUnUhzV4=
+		</data>
+		<key>Info.plist</key>
+		<data>
+		w68x5O87CK8wNmDyUsqdFJZmyIM=
+		</data>
+		<key>en.lproj/InfoPlist.strings</key>
+		<dict>
+			<key>hash</key>
+			<data>
+			zmV6UqBSo6r1NOz798vd5O4zTBA=
+			</data>
+			<key>optional</key>
+			<true/>
+		</dict>
+		<key>module.map</key>
+		<data>
+		nJxa72k41Z2wyhSJqqJgUyYvSgA=
+		</data>
+	</dict>
+	<key>files2</key>
+	<dict>
+		<key>APPSecuritySDK-Info.plist</key>
+		<dict>
+			<key>hash</key>
+			<data>
+			Po//BA5tM1BE58borc33LNpqXyw=
+			</data>
+			<key>hash2</key>
+			<data>
+			B2XyqSNoreUIQ8uDojzpys2o9qi8XuLbypPrkCR+l8w=
+			</data>
+		</dict>
+		<key>Headers/APDID.h</key>
+		<dict>
+			<key>hash</key>
+			<data>
+			YaNffM20hdQMiNpnIoEPIHF8o+A=
+			</data>
+			<key>hash2</key>
+			<data>
+			0nNHe4UB7qz6XFIk/QzRt79MyXYVEOukTfqa3YBJYbY=
+			</data>
+		</dict>
+		<key>Headers/APDeviceColor.h</key>
+		<dict>
+			<key>hash</key>
+			<data>
+			sqZwHJLZ8j2L+9pkCmTqWHaRPoo=
+			</data>
+			<key>hash2</key>
+			<data>
+			c/mo/+N/KECjwx+fLMepqE+OqRtyfnn2hHshYhmO9IU=
+			</data>
+		</dict>
+		<key>Headers/APDynamic.h</key>
+		<dict>
+			<key>hash</key>
+			<data>
+			TBp9H7ZpcLh5hWGFJbObSnR3sSQ=
+			</data>
+			<key>hash2</key>
+			<data>
+			tUrg2Z43qGA67I0mIGCqRWU6Gc2I9Yx9mn5e2mu9XQU=
+			</data>
+		</dict>
+		<key>Headers/APRiskConfigReportRequest.h</key>
+		<dict>
+			<key>hash</key>
+			<data>
+			5vPyFFL4v0DrNrSc35DrU0204M4=
+			</data>
+			<key>hash2</key>
+			<data>
+			OMGRtuphIpujn+dr+tCsCMIUw+KV8WQ2zE+bsdDUVCw=
+			</data>
+		</dict>
+		<key>Headers/APRiskConfigReportResponse.h</key>
+		<dict>
+			<key>hash</key>
+			<data>
+			WODwFqptygg++OMfRxg5nJhV1tM=
+			</data>
+			<key>hash2</key>
+			<data>
+			NvTd6RhL7dbwHKHDPiqBqkIc9aWUQLV5SwFFsEorcqg=
+			</data>
+		</dict>
+		<key>Headers/APRiskConfigServiceProtocol.h</key>
+		<dict>
+			<key>hash</key>
+			<data>
+			SJJczKTD81Beaeutnk5eh5yYk6s=
+			</data>
+			<key>hash2</key>
+			<data>
+			RyMjAfHvdfRW5n+MDPHVlPZ6VM0Kr/T2A133j9ytwDQ=
+			</data>
+		</dict>
+		<key>Headers/APRiskFileUploadProtocol.h</key>
+		<dict>
+			<key>hash</key>
+			<data>
+			LLqKfgEm/gVHeBO+chBoA32ce6w=
+			</data>
+			<key>hash2</key>
+			<data>
+			b2wnReDRJkaR7JxbLjLQXdNsfQbd29tkXtSh/5sjuGo=
+			</data>
+		</dict>
+		<key>Headers/APRiskLoggerProtocol.h</key>
+		<dict>
+			<key>hash</key>
+			<data>
+			KaoFaIX0tcWToF7p3GQSPdm1fNI=
+			</data>
+			<key>hash2</key>
+			<data>
+			k2gnCevVtGYZ1cgzxh9FrAlnVnnDzD/3l8lIuDPVuDc=
+			</data>
+		</dict>
+		<key>Headers/APRiskRPCProtocol.h</key>
+		<dict>
+			<key>hash</key>
+			<data>
+			/OdHTVHBuEGxpO5dJbde5mXoV3Q=
+			</data>
+			<key>hash2</key>
+			<data>
+			1v7HTHTTRf+k61+lf5L1URwSh/MFv72gdnHxTodGrJA=
+			</data>
+		</dict>
+		<key>Headers/APRiskRemoteLoggerProtocol.h</key>
+		<dict>
+			<key>hash</key>
+			<data>
+			L9Ca3T+cAEzjRZxJTwHTaKytgQs=
+			</data>
+			<key>hash2</key>
+			<data>
+			BmYD66C5squNiQNaLya1JrWDDCJ9V8w6C+AVGpr8QF4=
+			</data>
+		</dict>
+		<key>Headers/APRiskReportRequest.h</key>
+		<dict>
+			<key>hash</key>
+			<data>
+			p0bXoJMwS+46ZRrgLqdvbEFjAmI=
+			</data>
+			<key>hash2</key>
+			<data>
+			XH1Y2gtlfBaBoOANsxALY7w6fBn81SMhxHKHNVbEFcQ=
+			</data>
+		</dict>
+		<key>Headers/APRiskReportResponse.h</key>
+		<dict>
+			<key>hash</key>
+			<data>
+			3pzJU3RgAQBnPg/R2tEjuGJLfvc=
+			</data>
+			<key>hash2</key>
+			<data>
+			PAxPqKwwsKVZNGSWI01WquBx9DZcg0tTsnYe8/UwlAM=
+			</data>
+		</dict>
+		<key>Headers/APRiskRpcConfiguration.h</key>
+		<dict>
+			<key>hash</key>
+			<data>
+			ypma2woz2iRq5pghoIkfFTGVm+8=
+			</data>
+			<key>hash2</key>
+			<data>
+			xucoo82E5P13oVpu65VVAqbLK11kcVmtbwRCVlEQI5E=
+			</data>
+		</dict>
+		<key>Headers/APRiskSyncHandlerProtocol.h</key>
+		<dict>
+			<key>hash</key>
+			<data>
+			Vum7s9ObS3JRBHwQBG4BUdk6SN8=
+			</data>
+			<key>hash2</key>
+			<data>
+			4wA6oLvZ4U8u4Ff5SSuprJISDBd1X+Zx5MqlV0aGoik=
+			</data>
+		</dict>
+		<key>Headers/APRiskSyncServiceProtocol.h</key>
+		<dict>
+			<key>hash</key>
+			<data>
+			V0kCGcKZFd1gG+a2uuDzVkzj218=
+			</data>
+			<key>hash2</key>
+			<data>
+			oSMsgkxXfg8rdX0ZWmUqRmlTF1fgLfINWgGqYcBeMfI=
+			</data>
+		</dict>
+		<key>Headers/APSecRDS.h</key>
+		<dict>
+			<key>hash</key>
+			<data>
+			ZKM/B2Jcl/et+wyK8FepeewKCi8=
+			</data>
+			<key>hash2</key>
+			<data>
+			N3/Ych+ScRXiaFWFlsCWXqyGbWdqHhBCHpyp0sQFYPc=
+			</data>
+		</dict>
+		<key>Headers/APSecStore.h</key>
+		<dict>
+			<key>hash</key>
+			<data>
+			rEuJJetfP9Aj7GLQd5R3IgSZw/c=
+			</data>
+			<key>hash2</key>
+			<data>
+			R7UHcZTpvTV6HWYJm1bEji6L2ry1wSoCprSTRHEqP0M=
+			</data>
+		</dict>
+		<key>Headers/APSecureSdk.h</key>
+		<dict>
+			<key>hash</key>
+			<data>
+			ywtAfrae7i2g9jT6cXJt775tdng=
+			</data>
+			<key>hash2</key>
+			<data>
+			S8aripi9OWRTxz5CBuWeYoSqMhcgLX2GUUT5Ihnwd8o=
+			</data>
+		</dict>
+		<key>Headers/APSign.h</key>
+		<dict>
+			<key>hash</key>
+			<data>
+			r5sKoLYWS4dLLlNO9xAcWNGi6Cw=
+			</data>
+			<key>hash2</key>
+			<data>
+			b7PZT7wIWrHy7znjbbaE/GJMi8zaIla0fduXvyeUNHE=
+			</data>
+		</dict>
+		<key>Headers/ASSCommon.h</key>
+		<dict>
+			<key>hash</key>
+			<data>
+			lrrlG7ZqNaz4ciXX/i5kj/NnG3A=
+			</data>
+			<key>hash2</key>
+			<data>
+			adc/BhjRDcEbnGdNnfGBsTu2jTNZbT2Csi+oHGqx2oY=
+			</data>
+		</dict>
+		<key>Headers/ASSDynamicManager.h</key>
+		<dict>
+			<key>hash</key>
+			<data>
+			4Vk+CxCMPtR9isbOl7FqtE5jZuo=
+			</data>
+			<key>hash2</key>
+			<data>
+			lMtcIcfdivy04/miLJ4swfqpcY6/+5XYbnQMhMiToRw=
+			</data>
+		</dict>
+		<key>Headers/ASSLogger.h</key>
+		<dict>
+			<key>hash</key>
+			<data>
+			WvM9Fp3B5ZaI8D+rnHiUcBTxsdk=
+			</data>
+			<key>hash2</key>
+			<data>
+			JNJIdG9385MDYXjB+F1Mj1NXHTx8faIKEft1KjkceeI=
+			</data>
+		</dict>
+		<key>Headers/ASSSecureInfo.h</key>
+		<dict>
+			<key>hash</key>
+			<data>
+			C7uQ4VE5uwtF5ws1blMIKLKpfmI=
+			</data>
+			<key>hash2</key>
+			<data>
+			VS1+TQV7GpG7Z2dfhSkfmGi3KjE6cGBUxof1/s+bLPo=
+			</data>
+		</dict>
+		<key>Headers/ASSSecureOpenSdk.h</key>
+		<dict>
+			<key>hash</key>
+			<data>
+			KmdnMxfQN0cqG23Vuu092URfYCs=
+			</data>
+			<key>hash2</key>
+			<data>
+			Xq/bbsjzFy4rMCr4osH17Nif1NZQqxmWKvgRHq4THr0=
+			</data>
+		</dict>
+		<key>Headers/ASSSgomInfoOpen.h</key>
+		<dict>
+			<key>hash</key>
+			<data>
+			/AhECuNKFdWPVi1Q6oH8rMN66XM=
+			</data>
+			<key>hash2</key>
+			<data>
+			j8Lnl+QqgD+rwdHhl7yEh7Op76XuicUYflL4/LNrFXE=
+			</data>
+		</dict>
+		<key>Headers/ASSTokenResult.h</key>
+		<dict>
+			<key>hash</key>
+			<data>
+			X5xdpK/2lE52tWoVFEg/ZivE9UQ=
+			</data>
+			<key>hash2</key>
+			<data>
+			7O9oGJk95fMdxJyn2mOlI1Iqe1vPcmPRvP5Rgj8J9zk=
+			</data>
+		</dict>
+		<key>Headers/AntSecurityManager.h</key>
+		<dict>
+			<key>hash</key>
+			<data>
+			w5tB5gEPNoVoucc6rkAlUnUhzV4=
+			</data>
+			<key>hash2</key>
+			<data>
+			5QS2NUN5NsRJ5dYsLrHlgLY/GLXNwZDSsR5gN4lin6k=
+			</data>
+		</dict>
+		<key>en.lproj/InfoPlist.strings</key>
+		<dict>
+			<key>hash</key>
+			<data>
+			zmV6UqBSo6r1NOz798vd5O4zTBA=
+			</data>
+			<key>hash2</key>
+			<data>
+			kmHsztpgjvF0JW5f3HdMHm49z1M0CcG8OT1JDQHHE/E=
+			</data>
+			<key>optional</key>
+			<true/>
+		</dict>
+		<key>module.map</key>
+		<dict>
+			<key>hash</key>
+			<data>
+			nJxa72k41Z2wyhSJqqJgUyYvSgA=
+			</data>
+			<key>hash2</key>
+			<data>
+			XRW9liRaYf8O2c1bSPVShfimQ3Yfcd1SbIKvIE+sv7c=
+			</data>
+		</dict>
+	</dict>
+	<key>rules</key>
+	<dict>
+		<key>^.*</key>
+		<true/>
+		<key>^.*\.lproj/</key>
+		<dict>
+			<key>optional</key>
+			<true/>
+			<key>weight</key>
+			<real>1000</real>
+		</dict>
+		<key>^.*\.lproj/locversion.plist$</key>
+		<dict>
+			<key>omit</key>
+			<true/>
+			<key>weight</key>
+			<real>1100</real>
+		</dict>
+		<key>^Base\.lproj/</key>
+		<dict>
+			<key>weight</key>
+			<real>1010</real>
+		</dict>
+		<key>^version.plist$</key>
+		<true/>
+	</dict>
+	<key>rules2</key>
+	<dict>
+		<key>.*\.dSYM($|/)</key>
+		<dict>
+			<key>weight</key>
+			<real>11</real>
+		</dict>
+		<key>^(.*/)?\.DS_Store$</key>
+		<dict>
+			<key>omit</key>
+			<true/>
+			<key>weight</key>
+			<real>2000</real>
+		</dict>
+		<key>^.*</key>
+		<true/>
+		<key>^.*\.lproj/</key>
+		<dict>
+			<key>optional</key>
+			<true/>
+			<key>weight</key>
+			<real>1000</real>
+		</dict>
+		<key>^.*\.lproj/locversion.plist$</key>
+		<dict>
+			<key>omit</key>
+			<true/>
+			<key>weight</key>
+			<real>1100</real>
+		</dict>
+		<key>^Base\.lproj/</key>
+		<dict>
+			<key>weight</key>
+			<real>1010</real>
+		</dict>
+		<key>^Info\.plist$</key>
+		<dict>
+			<key>omit</key>
+			<true/>
+			<key>weight</key>
+			<real>20</real>
+		</dict>
+		<key>^PkgInfo$</key>
+		<dict>
+			<key>omit</key>
+			<true/>
+			<key>weight</key>
+			<real>20</real>
+		</dict>
+		<key>^embedded\.provisionprofile$</key>
+		<dict>
+			<key>weight</key>
+			<real>20</real>
+		</dict>
+		<key>^version\.plist$</key>
+		<dict>
+			<key>weight</key>
+			<real>20</real>
+		</dict>
+	</dict>
+</dict>
+</plist>

+ 0 - 0
nativeplugins/AP-FaceDetectModule/ios/APPSecuritySDK.framework/_CodeSignature/CodeSignature


BIN
nativeplugins/AP-FaceDetectModule/ios/APPSecuritySDK.framework/en.lproj/InfoPlist.strings


+ 9 - 0
nativeplugins/AP-FaceDetectModule/ios/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 *
+}

Некоторые файлы не были показаны из-за большого количества измененных файлов