feat:引入人脸识别sdk
No files matched your search
@@ -0,0 +1,78 @@
|
||||
/*
|
||||
en.strings
|
||||
APBToygerFacade
|
||||
|
||||
Created by shouyi.www on 2017/6/1.
|
||||
Copyright © 2017年 DTF. All rights reserved.
|
||||
*/
|
||||
|
||||
"APBToygerFacade:取消"="Cancel";
|
||||
"APBToygerFacade:取消(引导页)"="Cancel";
|
||||
"APBToygerFacade:再试一次"="Try Again";
|
||||
"APBToygerFacade:再试一次(验证中断)"="Try Again";
|
||||
"APBToygerFacade:再试一次(网络中断)"="Try Again";
|
||||
"APBToygerFacade:退出"="Quit";
|
||||
"APBToygerFacade:退出(无法启动相机)"="Quit";
|
||||
"APBToygerFacade:退出(验证中断)"="Quit";
|
||||
"APBToygerFacade:确定"="OK";
|
||||
"APBToygerFacade:确定(引导页)"="OK";
|
||||
"APBToygerFacade:继续"="Continue";
|
||||
"APBToygerFacade:我知道了"="Got it";
|
||||
"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:确定退出吗?(引导页)"="Are you sure to quit face scan?";
|
||||
"APBToygerFacade:露个脸就能通过"="You can succeed by simply showing your face";
|
||||
"APBToygerFacade:露个脸就能通过(引导页)"="You can succeed by simply showing your face";
|
||||
"APBToygerFacade:操作超时"="Time out";
|
||||
"APBToygerFacade:正对手机,更容易成功"="Face straight at the phone and ensure you have enough light";
|
||||
"APBToygerFacade:提示:正对手机,更容易成功"="Face straight at the phone and ensure you have enough light";
|
||||
"APBToygerFacade:本次操作失败"="Sorry, face scan failed";
|
||||
"APBToygerFacade:网络不给力"="Network connection failed";
|
||||
"APBToygerFacade:登录中断"="Login interrupted";
|
||||
"APBToygerFacade:验证中断"="Face scan interrupted";
|
||||
|
||||
|
||||
"APBToygerFacade:刷脸验证"="Face Scan";
|
||||
"APBToygerFacade:请把脸放入框内保持不动"="Put your face into the frame";
|
||||
"APBToygerFacade:靠近一点"="Move closer";
|
||||
"APBToygerFacade:没有检测到脸"="No face";
|
||||
"APBToygerFacade:再清晰一点"="Face not clear";
|
||||
"APBToygerFacade:脸部亮一点"="More light";
|
||||
"APBToygerFacade:请正对手机"="No face";
|
||||
"APBToygerFacade:把脸移入圈内"="No face";
|
||||
"APBToygerFacade:离远一点"="Move farther";
|
||||
"APBToygerFacade:请保持不动"="Stay still";
|
||||
"APBToygerFacade:请注视屏幕"="Open your eyes";
|
||||
"APBToygerFacade:眨眨眼"="Blink";
|
||||
"APBToygerFacade:蚂蚁佐罗提供技术支持"="";
|
||||
|
||||
"APBToygerFacade:选择其他验证方式"="Use a different verification method";
|
||||
"APBToygerFacade:拿起手机眨眨眼"="Blink";
|
||||
"APBToygerFacade:拿起手机向左摇头"="Turn Head Left";
|
||||
"APBToygerFacade:拿起手机向右摇头"="Turn Head Right";
|
||||
"APBToygerFacade:向左摇头"="Turn Head Left";
|
||||
"APBToygerFacade:向右摇头"="Turn Head Right";
|
||||
|
||||
|
||||
"APBToygerFacade:正在处理"="Processing";
|
||||
"APBToygerFacade:首次使用,请开通刷脸"="For the first time use, please enable Face Scan";
|
||||
"APBToygerFacade:立即开通"="Enable";
|
||||
"APBToygerFacade:下次再说"="Later";
|
||||
|
||||
"APBToygerFacade:请把手机正对面部"="Face straight at the phone";
|
||||
"APBToygerFacade:即将开始人脸检测"="Get ready for face recognition";
|
||||
|
||||
"APBToygerFacade:没有认出你"="Face scan failed";
|
||||
"APBToygerFacade:未能识别人脸"="Face not detected";
|
||||
"APBToygerFacade:人脸检测中"="Face Scan";
|
||||
"APBToygerFacade:刷脸失败次数过多,请稍后再试"="Too many failed attempts, please try again later";
|
||||
"APBToygerFacade:请保持单人操作"=" ";
|
||||
@@ -0,0 +1,69 @@
|
||||
"APBToygerFacade:取消"="Batalkan";
|
||||
"APBToygerFacade:取消(引导页)"="Batalkan";
|
||||
"APBToygerFacade:再试一次"="Harap coba lagi";
|
||||
"APBToygerFacade:再试一次(验证中断)"="Harap coba lagi";
|
||||
"APBToygerFacade:再试一次(网络中断)"="Harap coba lagi";
|
||||
"APBToygerFacade:退出"="Keluar";
|
||||
"APBToygerFacade:退出(无法启动相机)"="Keluar";
|
||||
"APBToygerFacade:退出(验证中断)"="Keluar";
|
||||
"APBToygerFacade:确定"="OK";
|
||||
"APBToygerFacade:确定(引导页)"="OK";
|
||||
"APBToygerFacade:继续"="Lanjutkan";
|
||||
"APBToygerFacade:我知道了"="OK";
|
||||
"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:确定退出吗?(引导页)"="Apakah Anda yakin ingin keluar?";
|
||||
"APBToygerFacade:露个脸就能通过"="Anda hanya perlu memperlihatkan wajah Anda";
|
||||
"APBToygerFacade:露个脸就能通过(引导页)"="Anda hanya perlu memperlihatkan wajah Anda";
|
||||
"APBToygerFacade:操作超时"="Waktu operasi habis";
|
||||
"APBToygerFacade:正对手机,更容易成功"="Arahkan wajah lurus menghadap ponsel untuk membuat wajah Anda lebih mudah dipindai";
|
||||
"APBToygerFacade:本次操作失败"="Operasi gagal";
|
||||
"APBToygerFacade:网络不给力"="Kondisi jaringan tidak memenuhi persyaratan";
|
||||
"APBToygerFacade:登录中断"="Logon Terganggu";
|
||||
"APBToygerFacade:验证中断"="Verifikasi terputus";
|
||||
|
||||
|
||||
"APBToygerFacade:刷脸验证"="Verifikasi dengan Pengenalan Wajah";
|
||||
"APBToygerFacade:请把脸放入框内保持不动"="Posisikan wajah Anda di dalam bingkai dan jangan bergerak";
|
||||
"APBToygerFacade:靠近一点"="Harap dekatkan wajah";
|
||||
"APBToygerFacade:没有检测到脸"="Tidak ada wajah terdeteksi";
|
||||
"APBToygerFacade:再清晰一点"="Perjelas wajah Anda";
|
||||
"APBToygerFacade:脸部亮一点"="Terangi wajah Anda";
|
||||
"APBToygerFacade:请正对手机"="Arahkan wajah lurus menghadap ponsel";
|
||||
"APBToygerFacade:请露出正脸"="Tunjukkan bagian depan wajah Anda";
|
||||
"APBToygerFacade:把脸移入圈内"="Posisikan wajah pada lingkaran";
|
||||
"APBToygerFacade:离远一点"="Harap jauhkan wajah";
|
||||
"APBToygerFacade:请保持不动"="Tetap tenang";
|
||||
"APBToygerFacade:请注视屏幕"="Lihat layar";
|
||||
"APBToygerFacade:眨眨眼"="Harap kedipkan mata";
|
||||
"APBToygerFacade:蚂蚁佐罗提供技术支持"="";
|
||||
|
||||
"APBToygerFacade:选择其他验证方式"="Ubah Metode Verifikasi";
|
||||
"APBToygerFacade:拿起手机眨眨眼"="Harap kedipkan mata";
|
||||
"APBToygerFacade:拿起手机向左摇头"="Harap menoleh ke kiri";
|
||||
"APBToygerFacade:拿起手机向右摇头"="Harap menoleh ke kanan";
|
||||
"APBToygerFacade:向左摇头"="Harap menoleh ke kiri";
|
||||
"APBToygerFacade:向右摇头"="Harap menoleh ke kanan";
|
||||
|
||||
"APBToygerFacade:正在处理"="Memproses";
|
||||
"APBToygerFacade:首次使用,请开通刷脸"="Aktifkan pengenalan wajah untuk melanjutkan";
|
||||
"APBToygerFacade:立即开通"="Aktifkan";
|
||||
"APBToygerFacade:下次再说"="Lain Kali";
|
||||
|
||||
"APBToygerFacade:请把手机正对面部"="Arahkan wajah lurus menghadap ponsel";
|
||||
"APBToygerFacade:即将开始人脸检测"="Memulai pengenalan wajah";
|
||||
|
||||
"APBToygerFacade:没有认出你"="Pengenalan wajah gagal";
|
||||
"APBToygerFacade:未能识别人脸"="Tidak ada wajah terdeteksi";
|
||||
"APBToygerFacade:人脸检测中"="Pengenalan wajah dalam proses";
|
||||
"APBToygerFacade:刷脸失败次数过多,请稍后再试"="Pengenalan wajah terlalu sering dilakukan. Harap coba lagi nanti";
|
||||
"APBToygerFacade:请保持单人操作"=" ";
|
||||
@@ -0,0 +1,69 @@
|
||||
"APBToygerFacade:取消"="キャンセル";
|
||||
"APBToygerFacade:取消(引导页)"="キャンセル";
|
||||
"APBToygerFacade:再试一次"="もう一度お試しください";
|
||||
"APBToygerFacade:再试一次(验证中断)"="もう一度お試しください";
|
||||
"APBToygerFacade:再试一次(网络中断)"="もう一度お試しください";
|
||||
"APBToygerFacade:退出"="終了";
|
||||
"APBToygerFacade:退出(无法启动相机)"="終了";
|
||||
"APBToygerFacade:退出(验证中断)"="終了";
|
||||
"APBToygerFacade:确定"="OK";
|
||||
"APBToygerFacade:确定(引导页)"="OK";
|
||||
"APBToygerFacade:继续"="続行";
|
||||
"APBToygerFacade:我知道了"="OK";
|
||||
"APBToygerFacade:我知道了(系统不支持刷脸)"="OK";
|
||||
"APBToygerFacade:其他登录方式"="ログイン方法を切り替え";
|
||||
"APBToygerFacade:刷脸失败"="顔を認識できませんでした";
|
||||
"APBToygerFacade:当前设备不支持刷脸"="お使いのデバイスは顔認識をサポートしていません";
|
||||
"APBToygerFacade:当前系统不支持刷脸"="顔認識をサポートしていないシステムです";
|
||||
"APBToygerFacade:无法启动相机"="カメラにアクセスできません";
|
||||
"APBToygerFacade:请到\“设置-隐私-相机\”开启权限"="[設定] > [プライバシー] > [カメラ] に移動し、アクセスを許可してください";
|
||||
"APBToygerFacade:立即开启"="OK";
|
||||
"APBToygerFacade:刷脸仅在iOS7及以上系统可用"="顔認識は iOS 7 以降でサポートされています";
|
||||
"APBToygerFacade:系统错误"="システムエラー";
|
||||
"APBToygerFacade:确定退出吗?"="終了してもよろしいですか";
|
||||
"APBToygerFacade:确定退出吗?(引导页)"="終了してもよろしいですか";
|
||||
"APBToygerFacade:露个脸就能通过"="顔を見せるだけです";
|
||||
"APBToygerFacade:露个脸就能通过(引导页)"="顔を見せるだけです";
|
||||
"APBToygerFacade:操作超时"="操作がタイムアウトしました";
|
||||
"APBToygerFacade:正对手机,更容易成功"="顔をスキャンしやすいように、電話の方を向いてください";
|
||||
"APBToygerFacade:本次操作失败"="操作に失敗しました";
|
||||
"APBToygerFacade:网络不给力"="ネットワークの状態が要件を満たしていません";
|
||||
"APBToygerFacade:登录中断"="ログインが中断されました";
|
||||
"APBToygerFacade:验证中断"="検証が中断されました";
|
||||
|
||||
|
||||
"APBToygerFacade:刷脸验证"="顔認識による検証";
|
||||
"APBToygerFacade:请把脸放入框内保持不动"="フレームの内側に顔が入るようにして、動かないでください";
|
||||
"APBToygerFacade:靠近一点"="近づいてください";
|
||||
"APBToygerFacade:没有检测到脸"="顔が検出されません";
|
||||
"APBToygerFacade:再清晰一点"="顔をはっきりさせてください";
|
||||
"APBToygerFacade:脸部亮一点"="顔を明るくしてください";
|
||||
"APBToygerFacade:请正对手机"="電話の方を向いてください";
|
||||
"APBToygerFacade:请露出正脸"="顔の正面を見せてください";
|
||||
"APBToygerFacade:把脸移入圈内"="顔を円の中に入れてください";
|
||||
"APBToygerFacade:离远一点"="離れてください";
|
||||
"APBToygerFacade:请保持不动"="動かないでください";
|
||||
"APBToygerFacade:请注视屏幕"="画面を見てください";
|
||||
"APBToygerFacade:眨眨眼"="まばたきしてください";
|
||||
"APBToygerFacade:蚂蚁佐罗提供技术支持"="";
|
||||
|
||||
"APBToygerFacade:选择其他验证方式"="検証方法を変更";
|
||||
"APBToygerFacade:拿起手机眨眨眼"="まばたきしてください";
|
||||
"APBToygerFacade:拿起手机向左摇头"="頭を左に";
|
||||
"APBToygerFacade:拿起手机向右摇头"="頭を右に";
|
||||
"APBToygerFacade:向左摇头"="頭を左に";
|
||||
"APBToygerFacade:向右摇头"="頭を右に";
|
||||
|
||||
"APBToygerFacade:正在处理"="処理中";
|
||||
"APBToygerFacade:首次使用,请开通刷脸"="顔認識を有効化して続行します";
|
||||
"APBToygerFacade:立即开通"="有効化";
|
||||
"APBToygerFacade:下次再说"="後で";
|
||||
|
||||
"APBToygerFacade:请把手机正对面部"="電話の方を向いてください";
|
||||
"APBToygerFacade:即将开始人脸检测"="顔認識を開始";
|
||||
|
||||
"APBToygerFacade:没有认出你"="顔を認識できませんでした";
|
||||
"APBToygerFacade:未能识别人脸"="顔が検出されません";
|
||||
"APBToygerFacade:人脸检测中"="顔を認識中です";
|
||||
"APBToygerFacade:刷脸失败次数过多,请稍后再试"="顔認識が頻繁に実行されています。後でもう一度やり直してください";
|
||||
"APBToygerFacade:请保持单人操作"=" ";
|
||||
@@ -0,0 +1,70 @@
|
||||
"APBToygerFacade:取消"="취소";
|
||||
"APBToygerFacade:取消(引导页)"="취소";
|
||||
"APBToygerFacade:再试一次"="다시 시도하세요";
|
||||
"APBToygerFacade:再试一次(验证中断)"="다시 시도하세요";
|
||||
"APBToygerFacade:再试一次(网络中断)"="다시 시도하세요";
|
||||
"APBToygerFacade:退出"="종료";
|
||||
"APBToygerFacade:退出(无法启动相机)"="종료";
|
||||
"APBToygerFacade:退出(验证中断)"="종료";
|
||||
"APBToygerFacade:确定"="확인";
|
||||
"APBToygerFacade:确定(引导页)"="확인";
|
||||
"APBToygerFacade:继续"="계속";
|
||||
"APBToygerFacade:我知道了"="확인";
|
||||
"APBToygerFacade:我知道了(系统不支持刷脸)"="확인";
|
||||
"APBToygerFacade:其他登录方式"="로그온 방법 전환";
|
||||
"APBToygerFacade:刷脸失败"="안면 인식에 실패했습니다";
|
||||
"APBToygerFacade:当前设备不支持刷脸"="귀하의 디바이스는 안면 인식을 지원하지 않습니다";
|
||||
"APBToygerFacade:当前系统不支持刷脸"="현재 시스템은 안면 인식을 지원하지 않습니다";
|
||||
"APBToygerFacade:无法启动相机"="카메라 권한이 없습니다";
|
||||
"APBToygerFacade:请到\“设置-隐私-相机\”开启权限"="설정 > 개인 > 카메라에서 접근 권한을 부여하십시오";
|
||||
"APBToygerFacade:立即开启"="OK";
|
||||
"APBToygerFacade:刷脸仅在iOS7及以上系统可用"="iOS 7 및 그 이상의 버전에서만 안면 인식이 지원됩니다";
|
||||
"APBToygerFacade:系统错误"="시스템 오류";
|
||||
"APBToygerFacade:确定退出吗?"="정말로 종료하시겠습니까?";
|
||||
"APBToygerFacade:确定退出吗?(引导页)"="정말로 종료하시겠습니까?";
|
||||
"APBToygerFacade:露个脸就能通过"="얼굴만 보여주시면 됩니다";
|
||||
"APBToygerFacade:露个脸就能通过(引导页)"="얼굴만 보여주시면 됩니다";
|
||||
"APBToygerFacade:操作超时"="작업 시간이 초과되었습니다";
|
||||
"APBToygerFacade:正对手机,更容易成功"="얼굴을 더 쉽게 스캔할 수 있도록 휴대전화를 정면으로 바라보세요";
|
||||
"APBToygerFacade:本次操作失败"="작동에 실패했습니다";
|
||||
"APBToygerFacade:网络不给力"="네트워크 상태가 요구 사항을 충족하지 않습니다";
|
||||
"APBToygerFacade:登录中断"="로그온이 중단되었습니다";
|
||||
"APBToygerFacade:验证中断"="확인이 중단되었습니다";
|
||||
|
||||
|
||||
"APBToygerFacade:刷脸验证"="안면 인식을 통한 인증";
|
||||
"APBToygerFacade:请把脸放入框内保持不动"="얼굴이 프레임 안으로 들어오도록 위치한 다음 움직이지 말고 가만히 계십시오";
|
||||
"APBToygerFacade:靠近一点"="더 가까이 움직이세요";
|
||||
"APBToygerFacade:没有检测到脸"="감지된 얼굴이 없습니다";
|
||||
"APBToygerFacade:再清晰一点"="얼굴을 좀더 선명하게 만드세요";
|
||||
"APBToygerFacade:脸部亮一点"="얼굴을 밝게 만드세요";
|
||||
"APBToygerFacade:请正对手机"="휴대전화를 정면으로 바라보세요";
|
||||
"APBToygerFacade:请露出正脸"="얼굴의 정면을 보여주세요";
|
||||
"APBToygerFacade:把脸移入圈内"="얼굴이 원 안에 들어오도록 움직이세요";
|
||||
"APBToygerFacade:离远一点"="더 멀리 움직이세요";
|
||||
"APBToygerFacade:请保持不动"="가만히 계십시오";
|
||||
"APBToygerFacade:请注视屏幕"="화면을 바라보세요";
|
||||
"APBToygerFacade:眨眨眼"="눈을 깜빡이세요";
|
||||
"APBToygerFacade:蚂蚁佐罗提供技术支持"="";
|
||||
|
||||
"APBToygerFacade:选择其他验证方式"="인증 방법을 변경합니다";
|
||||
"APBToygerFacade:拿起手机眨眨眼"="눈을 깜빡이세요";
|
||||
"APBToygerFacade:拿起手机向左摇头"="좌측으로 고개를 돌립니다";
|
||||
"APBToygerFacade:拿起手机向右摇头"="우측으로 고개를 돌립니다";
|
||||
"APBToygerFacade:向左摇头"="좌측으로 고개를 돌립니다";
|
||||
"APBToygerFacade:向右摇头"="우측으로 고개를 돌립니다";
|
||||
|
||||
"APBToygerFacade:正在处理"="처리 중";
|
||||
"APBToygerFacade:首次使用,请开通刷脸"="안면 인식을 활성화하여 계속 진행합니다";
|
||||
"APBToygerFacade:立即开通"="활성화하기";
|
||||
"APBToygerFacade:下次再说"="나중에 하기";
|
||||
|
||||
"APBToygerFacade:请把手机正对面部"="휴대전화를 정면으로 바라보세요";
|
||||
"APBToygerFacade:即将开始人脸检测"="안면 인식 시작";
|
||||
|
||||
"APBToygerFacade:没有认出你"="안면 인식에 실패했습니다";
|
||||
"APBToygerFacade:未能识别人脸"="감지된 얼굴이 없습니다";
|
||||
"APBToygerFacade:人脸检测中"="얼굴 인식 중";
|
||||
"APBToygerFacade:刷脸失败次数过多,请稍后再试"="안면 인식이 연속으로 실행되었습니다. 나중에 다시 시도하세요";
|
||||
"APBToygerFacade:请保持单人操作"=" ";
|
||||
|
||||
@@ -0,0 +1,78 @@
|
||||
/*
|
||||
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:其他登录方式"="其他登录方式";
|
||||
"APBToygerFacade:刷脸失败"="刷臉失敗";
|
||||
"APBToygerFacade:当前设备不支持刷脸"="目前系統不支援刷臉";
|
||||
"APBToygerFacade:当前系统不支持刷脸"="目前設備不支援刷臉";
|
||||
"APBToygerFacade:无法启动相机"="無法啟動相機";
|
||||
"APBToygerFacade:请到\“设置-隐私-相机\”开启权限"="請到“設置-隱私-相機”開啓權限";
|
||||
"APBToygerFacade:立即开启"="開通權限";
|
||||
"APBToygerFacade:刷脸仅在iOS7及以上系统可用"="刷脸仅在iOS7及以上系统可用";
|
||||
"APBToygerFacade:系统错误"="系統錯誤";
|
||||
"APBToygerFacade:确定退出吗?"="確定退出嗎?";
|
||||
"APBToygerFacade:确定退出吗?(引导页)"="確定退出嗎?";
|
||||
"APBToygerFacade:露个脸就能通过"="露個臉就能通過";
|
||||
"APBToygerFacade:露个脸就能通过(引导页)"="露個臉就能通過";
|
||||
"APBToygerFacade:操作超时"="操作超時";
|
||||
"APBToygerFacade:正对手机,更容易成功"="對準手機,更容易成功";
|
||||
"APBToygerFacade:本次操作失败"="本次操作失敗";
|
||||
"APBToygerFacade:网络不给力"="網絡異常,請稍後再試";
|
||||
"APBToygerFacade:登录中断"="登入中斷";
|
||||
"APBToygerFacade:验证中断"="驗證中斷";
|
||||
|
||||
|
||||
"APBToygerFacade:刷脸验证"="刷臉驗證";
|
||||
"APBToygerFacade:请把脸放入框内保持不动"="請把臉移入圈內保持不動";
|
||||
"APBToygerFacade:靠近一点"="靠近一點";
|
||||
"APBToygerFacade:没有检测到脸"="沒有檢測到臉";
|
||||
"APBToygerFacade:再清晰一点"="再清晰一點";
|
||||
"APBToygerFacade:脸部亮一点"="光線再亮點";
|
||||
"APBToygerFacade:请正对手机"="請正視手機";
|
||||
"APBToygerFacade:请露出正脸"="請露出正臉";
|
||||
"APBToygerFacade:把脸移入圈内"="把臉移入框內";
|
||||
"APBToygerFacade:离远一点"="離遠一點";
|
||||
"APBToygerFacade:请保持不动"="請保持不動";
|
||||
"APBToygerFacade:请注视屏幕"="請注視屏幕";
|
||||
"APBToygerFacade:眨眨眼"="眨眨眼";
|
||||
"APBToygerFacade:蚂蚁佐罗提供技术支持"="";
|
||||
|
||||
"APBToygerFacade:选择其他验证方式"="選擇其他驗證方式";
|
||||
"APBToygerFacade:拿起手机眨眨眼"="拿起手機,眨眨眼";
|
||||
"APBToygerFacade:拿起手机向左摇头"="拿著手機,向左搖頭";
|
||||
"APBToygerFacade:拿起手机向右摇头"="拿著手機,向右搖頭";
|
||||
"APBToygerFacade:向左摇头"="向左搖頭";
|
||||
"APBToygerFacade:向右摇头"="向右搖頭";
|
||||
|
||||
"APBToygerFacade:正在处理"="正在處理";
|
||||
"APBToygerFacade:首次使用,请开通刷脸"="首次使用,請開通刷臉";
|
||||
"APBToygerFacade:立即开通"="立即開通";
|
||||
"APBToygerFacade:下次再说"="下次再說";
|
||||
|
||||
"APBToygerFacade:请把手机正对面部"="請把手機正對面部";
|
||||
"APBToygerFacade:即将开始人脸检测"="即將開始人臉檢測";
|
||||
|
||||
"APBToygerFacade:没有认出你"="沒有認出你";
|
||||
"APBToygerFacade:未能识别人脸"="未能識別人臉";
|
||||
"APBToygerFacade:人脸检测中"="人臉檢測中";
|
||||
"APBToygerFacade:刷脸失败次数过多,请稍后再试"="刷臉失敗次數過多,請稍後再試";
|
||||
"APBToygerFacade:请保持单人操作"="請保持單人操作";
|
||||
@@ -0,0 +1,83 @@
|
||||
/*
|
||||
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:其他登录方式"="其他登录方式";
|
||||
"APBToygerFacade:刷脸失败"="刷脸失败";
|
||||
"APBToygerFacade:当前设备不支持刷脸"="当前设备不支持刷脸";
|
||||
"APBToygerFacade:当前系统不支持刷脸"="当前系统不支持刷脸";
|
||||
"APBToygerFacade:无法启动相机"="无法启动相机";
|
||||
"APBToygerFacade:请到\“设置-隐私-相机\”开启权限"="请到“设置-隐私-相机”开启权限";
|
||||
"APBToygerFacade:立即开启"="立即开启";
|
||||
"APBToygerFacade:刷脸仅在iOS8及以上版本可用"="刷脸仅在iOS8及以上版本可用";
|
||||
"APBToygerFacade:系统错误"="系统错误";
|
||||
"APBToygerFacade:确定退出吗?"="确定退出吗?";
|
||||
"APBToygerFacade:确定退出吗?(引导页)"="确定退出吗?";
|
||||
"APBToygerFacade:露个脸就能通过"="露个脸就能通过";
|
||||
"APBToygerFacade:露个脸就能通过(引导页)"="露个脸就能通过";
|
||||
"APBToygerFacade:操作超时"="操作超时";
|
||||
"APBToygerFacade:正对手机,更容易成功"="正对手机,更容易成功";
|
||||
"APBToygerFacade:本次操作失败"="本次操作失败";
|
||||
"APBToygerFacade:网络不给力"="网络不给力";
|
||||
"APBToygerFacade:登录中断"="登录中断";
|
||||
"APBToygerFacade:验证中断"="验证中断";
|
||||
|
||||
|
||||
"APBToygerFacade:刷脸验证"="刷脸验证";
|
||||
"APBToygerFacade:请把脸放入框内保持不动"="请把脸移入圈内保持不动";
|
||||
"APBToygerFacade:靠近一点"="靠近一点";
|
||||
"APBToygerFacade:没有检测到脸"="没有检测到脸";
|
||||
"APBToygerFacade:再清晰一点"="再清晰一点";
|
||||
"APBToygerFacade:脸部亮一点"="脸部亮一点";
|
||||
"APBToygerFacade:请正对手机"="请正对手机";
|
||||
"APBToygerFacade:请露出正脸"="请露出正脸";
|
||||
"APBToygerFacade:把脸移入圈内"="把脸移入圈内";
|
||||
"APBToygerFacade:离远一点"="离远一点";
|
||||
"APBToygerFacade:请保持不动"="请保持不动";
|
||||
"APBToygerFacade:请注视屏幕"="请注视屏幕";
|
||||
"APBToygerFacade:眨眨眼"="眨眨眼";
|
||||
"APBToygerFacade:蚂蚁佐罗提供技术支持"="";
|
||||
|
||||
"APBToygerFacade:选择其他验证方式"="选择其他验证方式";
|
||||
"APBToygerFacade:拿起手机眨眨眼"="拿起手机,眨眨眼";
|
||||
"APBToygerFacade:拿起手机向左摇头"="拿起手机,向左摇头";
|
||||
"APBToygerFacade:拿起手机向右摇头"="拿起手机,向右摇头";
|
||||
"APBToygerFacade:向左摇头"="向左摇头";
|
||||
"APBToygerFacade:向右摇头"="向右摇头";
|
||||
|
||||
"APBToygerFacade:正在处理"="正在处理";
|
||||
"APBToygerFacade:首次使用,请开通刷脸"="首次使用,请开通刷脸";
|
||||
"APBToygerFacade:立即开通"="立即开通";
|
||||
"APBToygerFacade:下次再说"="下次再说";
|
||||
|
||||
"APBToygerFacade:请把手机正对面部"="请把手机正对面部";
|
||||
"APBToygerFacade:即将开始人脸检测"="即将开始人脸检测";
|
||||
|
||||
"APBToygerFacade:没有认出你"="没有认出你";
|
||||
"APBToygerFacade:未能识别人脸"="未能识别人脸";
|
||||
"APBToygerFacade:人脸检测中"="人脸检测中";
|
||||
"APBToygerFacade:刷脸失败次数过多,请稍后再试"="刷脸失败次数过多,请稍后再试";
|
||||
"APBToygerFacade:请保持单人操作"="请保持单人操作";
|
||||
|
||||
"APBToygerFacade:请缓慢靠近"="请缓慢靠近";
|
||||
"APBToygerFacade:请缓慢远离"="请缓慢远离";
|
||||
"APBToygerFacade:请保持不动"="请保持不动";
|
||||
"APBToygerFacade:把脸移入圈内"="把脸移入圈内";
|
||||
@@ -0,0 +1,78 @@
|
||||
/*
|
||||
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:其他登录方式"="其他登入方式";
|
||||
"APBToygerFacade:刷脸失败"="刷臉失敗";
|
||||
"APBToygerFacade:当前设备不支持刷脸"="目前設備不支援刷臉服務";
|
||||
"APBToygerFacade:当前系统不支持刷脸"="当前系统不支持刷脸";
|
||||
"APBToygerFacade:无法启动相机"="無法啟動相機";
|
||||
"APBToygerFacade:请到\“设置-隐私-相机\”开启权限"="請到“設置-隱私-相機”開啓權限";
|
||||
"APBToygerFacade:立即开启"="開通權限";
|
||||
"APBToygerFacade:刷脸仅在iOS8及以上系统可用"="刷脸仅在iOS8及以上系统可用";
|
||||
"APBToygerFacade:系统错误"="系統錯誤";
|
||||
"APBToygerFacade:确定退出吗?"="確定退出嗎?";
|
||||
"APBToygerFacade:确定退出吗?(引导页)"="確定退出嗎?";
|
||||
"APBToygerFacade:露个脸就能通过"="露個臉就能通過";
|
||||
"APBToygerFacade:露个脸就能通过(引导页)"="露個臉就能通過";
|
||||
"APBToygerFacade:操作超时"="操作超時";
|
||||
"APBToygerFacade:正对手机,更容易成功"="對準手機,更容易成功";
|
||||
"APBToygerFacade:本次操作失败"="本次操作失敗";
|
||||
"APBToygerFacade:网络不给力"="網絡異常,請稍後再試";
|
||||
"APBToygerFacade:登录中断"="登入中斷";
|
||||
"APBToygerFacade:验证中断"="驗證中斷";
|
||||
|
||||
|
||||
"APBToygerFacade:刷脸验证"="刷臉驗證";
|
||||
"APBToygerFacade:请把脸放入框内保持不动"="請把臉移入圈內保持不動";
|
||||
"APBToygerFacade:靠近一点"="靠近一點";
|
||||
"APBToygerFacade:没有检测到脸"="沒有檢測到臉";
|
||||
"APBToygerFacade:再清晰一点"="再清晰一點";
|
||||
"APBToygerFacade:脸部亮一点"="光線再亮點";
|
||||
"APBToygerFacade:请正对手机"="請正視手機";
|
||||
"APBToygerFacade:请露出正脸"="請露出正臉";
|
||||
"APBToygerFacade:把脸移入圈内"="把臉移入框內";
|
||||
"APBToygerFacade:离远一点"="離遠一點";
|
||||
"APBToygerFacade:请保持不动"="請保持不動";
|
||||
"APBToygerFacade:请注视屏幕"="請注視屏幕";
|
||||
"APBToygerFacade:眨眨眼"="眨眨眼";
|
||||
"APBToygerFacade:蚂蚁佐罗提供技术支持"="";
|
||||
|
||||
"APBToygerFacade:选择其他验证方式"="選擇其他驗證方式";
|
||||
"APBToygerFacade:拿起手机眨眨眼"="拿起手機,眨眨眼";
|
||||
"APBToygerFacade:拿起手机向左摇头"="拿起手機,向左搖頭";
|
||||
"APBToygerFacade:拿起手机向右摇头"="拿起手機,向右搖頭";
|
||||
"APBToygerFacade:向左摇头"="向左搖頭";
|
||||
"APBToygerFacade:向右摇头"="向右搖頭";
|
||||
|
||||
"APBToygerFacade:正在处理"="正在處理";
|
||||
"APBToygerFacade:首次使用,请开通刷脸"="首次使用,請開通刷臉";
|
||||
"APBToygerFacade:立即开通"="立即開通";
|
||||
"APBToygerFacade:下次再说"="下次再說";
|
||||
|
||||
"APBToygerFacade:请把手机正对面部"="請把手機正對面部";
|
||||
"APBToygerFacade:即将开始人脸检测"="即將開始人臉檢測";
|
||||
|
||||
"APBToygerFacade:没有认出你"="沒有認出你";
|
||||
"APBToygerFacade:未能识别人脸"="未能識別人臉";
|
||||
"APBToygerFacade:人脸检测中"="人臉檢測中";
|
||||
"APBToygerFacade:刷脸失败次数过多,请稍后再试"="刷臉失敗次數過多,請稍後再試";
|
||||
"APBToygerFacade:请保持单人操作"="請保持單人操作";
|
||||
@@ -0,0 +1,77 @@
|
||||
//
|
||||
// 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 <DTFUtility/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; //埋点
|
||||
@property(nonatomic, weak) id<BioAuthTaskDelegate> delegate;
|
||||
|
||||
- (void)exitWithResult:(APBResultType)result failReason:(NSString *)failReason retCodeSub:(NSString *)retCodeSub retMessageSub:(NSString *)retMessageSub;
|
||||
|
||||
- (void)eventQuitWithCompletionCallback:(BioAuthExecCallback)callback;
|
||||
/**
|
||||
* 刷脸重试
|
||||
*/
|
||||
- (void)handleRetryActionWithScene:(NSString *)scene
|
||||
buttonTitle:(NSString *)title
|
||||
retryIncrement:(BOOL)retryIncrement;
|
||||
|
||||
/**
|
||||
* 用户选择退出
|
||||
*/
|
||||
- (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
|
||||
@@ -0,0 +1,28 @@
|
||||
//
|
||||
// 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>
|
||||
|
||||
#define kFaceCameraPreviewWidth 480
|
||||
#define kFaceCameraPreviewHeight 640
|
||||
#define kFaceAVCaptureSessionPreset AVCaptureSessionPreset640x480
|
||||
|
||||
@interface APBToygerCherryDetectTask : APBToygerBaseTask <DTFCameraServiceDelegate, DTFFaceViewDelegate, ToygerServiceInstanceDelegate>
|
||||
|
||||
@property (nonatomic, assign) BOOL photinusFlags;
|
||||
@property (nonatomic, strong) DTFCameraService *cameraService;
|
||||
@property (nonatomic, strong) id instance; //Toyger对象
|
||||
@property (nonatomic, assign) BOOL useNativePhotinus;
|
||||
|
||||
- (void)onButtonCancel;
|
||||
|
||||
@end
|
||||
@@ -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
|
||||
@@ -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 <DTFUtility/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[];
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -0,0 +1,65 @@
|
||||
//
|
||||
// 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;
|
||||
|
||||
+ (APBToygerTips *)toygerTipsConfig;
|
||||
|
||||
+ (BOOL)useElemeEquipmentUI:(APBToygerRemoteConfig *)config;
|
||||
|
||||
+ (BOOL)useNearFarLiveness:(APBToygerRemoteConfig *)config;
|
||||
|
||||
@end
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,31 @@
|
||||
//
|
||||
// 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>
|
||||
#import <BioAuthEngine/DTFBaseViewController.h>
|
||||
|
||||
@interface APBToygerViewController : DTFBaseViewController
|
||||
|
||||
@property(nonatomic, strong) id<DTFFaceViewProtocol> faceView;
|
||||
|
||||
- (void)startFaceRecognition:(AVCaptureVideoPreviewLayer *)layer;
|
||||
|
||||
- (void)handleFaceStateChange:(ToygerMessage)state
|
||||
stateTips:(NSString *)tips
|
||||
actionGuideType:(ToygerStaticMessage)guideType
|
||||
actionGuide:(NSString *)guide
|
||||
progress:(CGFloat)progress
|
||||
extInfo:(NSDictionary *)extInfo;
|
||||
|
||||
- (void)faceDectectComplete;
|
||||
- (void)setPhotinusColor:(UIColor *)color;
|
||||
- (void)showBlur:(UIImage *)image;
|
||||
|
||||
@end
|
||||
@@ -0,0 +1,6 @@
|
||||
framework module APBToygerFacade {
|
||||
umbrella header "APBToygerFacade.h"
|
||||
|
||||
export *
|
||||
module * { export * }
|
||||
}
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -0,0 +1,117 @@
|
||||
//
|
||||
// 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;
|
||||
|
||||
+(BOOL) isSupportFaceShield;
|
||||
|
||||
+(BOOL) isTrackingAuthorization;
|
||||
|
||||
@end
|
||||
@@ -0,0 +1,61 @@
|
||||
//
|
||||
// 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
|
||||
|
||||
extern NSString * const APSE_SIGN_MODE_NORMAL;
|
||||
extern NSString * const APSE_SIGN_MODE_ENHANCE;
|
||||
extern NSString * const APSE_SIGN_MODE_NORMAL_ASYNC;
|
||||
extern NSString * const APSE_SIGN_MODE_ENHANCE_ASYNC;
|
||||
|
||||
@interface APSign : NSObject
|
||||
|
||||
/*
|
||||
* getColorInfo 请求可信接口,获取数字签名
|
||||
*
|
||||
* @param bizToken 业务场景
|
||||
* @param bizParam 业务参数
|
||||
* @param extParams 扩展参数
|
||||
* @param errInfo 错误信息
|
||||
*
|
||||
* @return 数字签名数据
|
||||
*/
|
||||
+ (NSString*) getColorInfo: (NSString*) bizToken
|
||||
param: (NSString*) bizParam
|
||||
ext: (NSDictionary*) extParams
|
||||
error: (NSError **) errInfo;
|
||||
|
||||
/*
|
||||
* preColorInfo 签名数据预处理接口,用于不同业务定制签名携带数据
|
||||
*
|
||||
* @param userAction 当前动作,由业务定制的行为事件
|
||||
* @param extParams 业务参数,格式需要与内部对齐
|
||||
*
|
||||
* @return 预处理数据
|
||||
*/
|
||||
+ (NSString*) preColorInfo: (int) userAction
|
||||
ext: (NSDictionary*) extParams
|
||||
error: (NSError **) errInfo;
|
||||
|
||||
/*
|
||||
* preColorInfo 签名数据预处理接口,用于不同业务定制签名携带数据
|
||||
*
|
||||
* @param userAction 当前动作,由业务定制的行为事件
|
||||
* @param extParams 业务参数,格式需要与内部对齐
|
||||
*
|
||||
* @return 预处理数据
|
||||
*/
|
||||
+ (NSString*) preColorInfoForString: (int) userAction
|
||||
ext: (NSString*) extParams
|
||||
error: (NSError **) errInfo;
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -0,0 +1,61 @@
|
||||
<?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>NSPrivacyCollectedDataTypes</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>NSPrivacyCollectedDataType</key>
|
||||
<string></string>
|
||||
<key>NSPrivacyCollectedDataTypeLinked</key>
|
||||
<false/>
|
||||
<key>NSPrivacyCollectedDataTypeTracking</key>
|
||||
<false/>
|
||||
<key>NSPrivacyCollectedDataTypePurposes</key>
|
||||
<array>
|
||||
<string></string>
|
||||
</array>
|
||||
</dict>
|
||||
</array>
|
||||
<key>NSPrivacyTrackingDomains</key>
|
||||
<array/>
|
||||
<key>NSPrivacyTracking</key>
|
||||
<false/>
|
||||
<key>NSPrivacyAccessedAPITypes</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>NSPrivacyAccessedAPITypeReasons</key>
|
||||
<array>
|
||||
<string>35F9.1</string>
|
||||
</array>
|
||||
<key>NSPrivacyAccessedAPIType</key>
|
||||
<string>NSPrivacyAccessedAPICategorySystemBootTime</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>NSPrivacyAccessedAPITypeReasons</key>
|
||||
<array>
|
||||
<string>CA92.1</string>
|
||||
</array>
|
||||
<key>NSPrivacyAccessedAPIType</key>
|
||||
<string>NSPrivacyAccessedAPICategoryUserDefaults</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>NSPrivacyAccessedAPITypeReasons</key>
|
||||
<array>
|
||||
<string>7D9E.1</string>
|
||||
</array>
|
||||
<key>NSPrivacyAccessedAPIType</key>
|
||||
<string>NSPrivacyAccessedAPICategoryDiskSpace</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>NSPrivacyAccessedAPITypeReasons</key>
|
||||
<array>
|
||||
<string>DDA9.1</string>
|
||||
<string>C617.1</string>
|
||||
</array>
|
||||
<key>NSPrivacyAccessedAPIType</key>
|
||||
<string>NSPrivacyAccessedAPICategoryFileTimestamp</string>
|
||||
</dict>
|
||||
</array>
|
||||
</dict>
|
||||
</plist>
|
||||
@@ -0,0 +1,574 @@
|
||||
<?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>
|
||||
MXM1OJAiXpW6nnot0SH2kDLtVy8=
|
||||
</data>
|
||||
<key>Headers/APSign.h</key>
|
||||
<data>
|
||||
UxWq8miIIfr3zl7GiKnKdG8PS5s=
|
||||
</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>
|
||||
rnUOBUjn0OMe0SPq7xgsMLCff4Y=
|
||||
</data>
|
||||
<key>PrivacyInfo.xcprivacy</key>
|
||||
<data>
|
||||
swau2mVU7M9oJ4EceHYg7CKBaiI=
|
||||
</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>
|
||||
MXM1OJAiXpW6nnot0SH2kDLtVy8=
|
||||
</data>
|
||||
<key>hash2</key>
|
||||
<data>
|
||||
bl6AOc/gkaKL/sCIDvxpsfcgDIIV97nocPpmnssA4tQ=
|
||||
</data>
|
||||
</dict>
|
||||
<key>Headers/APSign.h</key>
|
||||
<dict>
|
||||
<key>hash</key>
|
||||
<data>
|
||||
UxWq8miIIfr3zl7GiKnKdG8PS5s=
|
||||
</data>
|
||||
<key>hash2</key>
|
||||
<data>
|
||||
Te3d2WjOmORK+v6JoH87htyWMIRPvOVgrOi25YxMBWY=
|
||||
</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>PrivacyInfo.xcprivacy</key>
|
||||
<dict>
|
||||
<key>hash</key>
|
||||
<data>
|
||||
swau2mVU7M9oJ4EceHYg7CKBaiI=
|
||||
</data>
|
||||
<key>hash2</key>
|
||||
<data>
|
||||
cbCbEdNpgafqoUs5gJLFqR3Y2yLqCszMbjmaIw7fW1U=
|
||||
</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 +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 *
|
||||
}
|
||||
@@ -0,0 +1,49 @@
|
||||
//
|
||||
// AliyunFaaceAuthFacade.h
|
||||
// AliyunFaceAuthFacade
|
||||
//
|
||||
// Created by 汪澌哲 on 2022/11/21.
|
||||
// Copyright © 2022 DTF. All rights reserved.
|
||||
//
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
#import <DTFUtility/ZIMResponse.h>
|
||||
#import <DTFUtility/DTFConstant.h>
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
@interface AliyunFaceAuthFacade : NSObject
|
||||
|
||||
+ (void)init;
|
||||
|
||||
+ (void)initSDK;
|
||||
|
||||
/* IPV6的初始化接口 只有你的网络环境强制要求是IPV6的时候,才调用initIPv6。
|
||||
*/
|
||||
+ (void)initIPv6;
|
||||
|
||||
+ (NSString *)getVersion;
|
||||
|
||||
+ (NSString *)getNFCVersion;
|
||||
|
||||
+ (void)preload:(NSDictionary *)param completion:(void (^)(BOOL success))completion;
|
||||
|
||||
+ (NSDictionary *)getMetaInfo;
|
||||
|
||||
+ (NSDictionary *)getNFCMetaInfo;
|
||||
|
||||
+ (void)verifyWith:(NSString *)zimId
|
||||
extParams:(NSDictionary *)params
|
||||
onCompletion:(void (^)(ZIMResponse *response))callback;
|
||||
|
||||
+ (void)nfcVerifyWith:(NSString *)zimId
|
||||
extParams:(NSDictionary *)params
|
||||
onCompletion:(void (^)(ZIMResponse *response))callback;
|
||||
|
||||
+ (void)setCustomUI:(nonnull NSString *)configuration type:(nonnull NSString *)type completion:(void(^)(BOOL success, NSError *error))completion;
|
||||
|
||||
+ (void)setCustomLanguage:(nonnull NSString *)configuration type:(nonnull NSString *)type completion:(void(^)(BOOL success, NSError *error))completion;
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
||||
@@ -0,0 +1,32 @@
|
||||
//
|
||||
// PoPGatewayNetwork.h
|
||||
// ZimDemo
|
||||
//
|
||||
// Created by sanyuan.he on 2020/1/20.
|
||||
// Copyright © 2020 com.. All rights reserved.
|
||||
//
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
@interface PoPGatewayNetwork : NSObject
|
||||
|
||||
@property(nonatomic, assign) NSTimeInterval timeoutForInit;
|
||||
|
||||
@property(nonatomic, assign) NSTimeInterval timeoutForVerify;
|
||||
|
||||
-(void)bizSendContent:(NSDictionary*)serviceParameters completionBlock:(void (^) (NSError *error, NSURLResponse *response, NSData *data))completionBlock;
|
||||
|
||||
-(void)verifySendContent:(NSDictionary*)serviceParameters completionBlock:(void (^) (NSError *error, NSURLResponse *response, NSData *data))completionBlock;
|
||||
|
||||
|
||||
-(void)sendInitFaceVerifyContent:(NSDictionary*)serviceParameters keyName:(NSString*)name initKey:(NSString *)initKey initSimpleValue:(NSString *)initSimpleValue completionBlock:(void (^) (NSError *error, NSURLResponse *response, NSData *data))completionBlock;
|
||||
|
||||
-(void)sendOCRContent:(NSDictionary*)serviceParameters completionBlock:(void (^) (NSError *error, NSURLResponse *response, NSData *data))completionBlock;
|
||||
|
||||
-(void)sendLogContent:(NSDictionary*)serviceParameters extraHeader:(NSDictionary *)header completionBlock:(void (^) (NSError *error, NSURLResponse *response, NSData *data))completionBlock;
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
||||
@@ -0,0 +1,6 @@
|
||||
framework module AliyunFaceAuthFacade {
|
||||
umbrella header "AliyunFaceAuthFacade.h"
|
||||
|
||||
export *
|
||||
module * { export * }
|
||||
}
|
||||
|
After Width: | Height: | Size: 438 B |
|
After Width: | Height: | Size: 1.4 KiB |
|
After Width: | Height: | Size: 1.3 KiB |
|
After Width: | Height: | Size: 1.1 KiB |
|
After Width: | Height: | Size: 1.1 KiB |
|
After Width: | Height: | Size: 646 B |
|
After Width: | Height: | Size: 476 B |
@@ -0,0 +1,76 @@
|
||||
//
|
||||
// AFEAlertView.h
|
||||
// BioAuthEngine
|
||||
//
|
||||
// Created by shuhong.xsh on 16/8/3.
|
||||
// Copyright © 2016年 DTF. All rights reserved.
|
||||
// 弹出框管理类
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
|
||||
typedef void (^AFEAlertClickBlock) ();
|
||||
|
||||
@interface AFEAlertView : NSObject
|
||||
|
||||
@property(atomic, assign) BOOL isAlertViewShow;
|
||||
|
||||
+(AFEAlertView*) sharedInstance;
|
||||
|
||||
/**
|
||||
* 当前alert是否显示
|
||||
*/
|
||||
- (BOOL)isAlertViewShow;
|
||||
|
||||
/**
|
||||
* 显示alert
|
||||
*
|
||||
* @param title 标题
|
||||
* @param msg 提示信息
|
||||
* @param firstTitle 第一个按钮提示文案(不可为空)
|
||||
* @param secondTitle 第二课提示文案(可为空)
|
||||
* @param fblk 第一个按钮点击事件callback(不可为空)
|
||||
* @param sblk 第二个按钮点击事件callback(可为空)
|
||||
*/
|
||||
- (void)displayAlertViewWithTitle:(NSString *)title
|
||||
message:(NSString*)msg
|
||||
firstButtonTitle:(NSString *)firstTitle
|
||||
secondBittonTitle:(NSString *)secondTitle
|
||||
firstCallBack:(AFEAlertClickBlock)fblk
|
||||
secondCallBack:(AFEAlertClickBlock)sblk
|
||||
withVC:(UIViewController*)parentViewController;
|
||||
|
||||
|
||||
/**
|
||||
* 活体失败
|
||||
*
|
||||
*/
|
||||
- (void)displayLivnessFailAlertView:(NSString *)title
|
||||
tips:(NSString*)tip
|
||||
cancleTip:(NSString *)cancelTips
|
||||
retryTip:(NSString *)retryTips
|
||||
withCancelCallBack:(AFEAlertClickBlock)cancel
|
||||
retryCallBack:(AFEAlertClickBlock)retry
|
||||
withVC:(UIViewController*)parentViewController;
|
||||
|
||||
/**
|
||||
* 展示浮层提示框
|
||||
* @param superview 父view
|
||||
* @param title 主文案,只能显示一行
|
||||
* @param detailTitle 副文案,最多显示两行
|
||||
* @param cancelTips 取消按钮文本
|
||||
* @param retryTips 再试一次按钮文本
|
||||
*/
|
||||
- (void)displayCameraPermissionAlert:(UIViewController *)parentViewController
|
||||
title:(NSString *)title
|
||||
detailTitle:(NSString *)detailTitle
|
||||
cancleTip:(NSString *)cancelTips
|
||||
retryTip:(NSString *)retryTips
|
||||
cancelCallBack:(AFEAlertClickBlock)cancelCall
|
||||
setCallBack:(AFEAlertClickBlock)setCall;
|
||||
|
||||
// 判断最顶层视图是否是 APBAlertViewController
|
||||
- (BOOL)isAPBAlertViewController;
|
||||
|
||||
- (UIViewController *)currentViewController;
|
||||
|
||||
@end
|
||||
@@ -0,0 +1,32 @@
|
||||
//
|
||||
// AFECircleProgressBar.h
|
||||
// CircularView
|
||||
//
|
||||
// Created by shouyi.www on 2017/6/26.
|
||||
// Copyright © 2017年 shouyi.www. All rights reserved.
|
||||
//
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
#import <QuartzCore/QuartzCore.h>
|
||||
|
||||
@interface AFECircleProgressBar : CALayer
|
||||
|
||||
@property (nonatomic, assign) BOOL clockWise;
|
||||
@property (nonatomic, assign) CGFloat animateTime;
|
||||
@property (nonatomic, assign) CGFloat endAngle;
|
||||
@property (nonatomic, assign) CGFloat progressBarWidth;
|
||||
@property (nonatomic, assign) CGFloat maxValue;
|
||||
@property (nonatomic, assign) CGFloat minValue;
|
||||
@property (nonatomic, assign) CGFloat startAngle;
|
||||
@property (nonatomic, copy) NSArray<NSNumber *> *gradientLocation;
|
||||
@property (nonatomic, strong) NSMutableArray<UIColor *> *gradientColors;
|
||||
@property (nonatomic, assign) CGFloat progress;
|
||||
@property (nonatomic, strong) UIColor *progressBarTrackColor;
|
||||
@property (nonatomic, assign) BOOL supportCustomUI;
|
||||
|
||||
- (void)setProgress:(CGFloat)percent animation:(BOOL)animated;
|
||||
- (void)_updateCircularPath;
|
||||
- (void)stopAnimation;
|
||||
|
||||
@end
|
||||
|
||||
@@ -0,0 +1,76 @@
|
||||
//
|
||||
// AFECircularView.h
|
||||
// BioAuthEngine
|
||||
//
|
||||
// Created by yukun.tyk on 01/11/2016.
|
||||
// Copyright © 2016 DTF. All rights reserved.
|
||||
//
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
#import <BioAuthEngine/AFEScanViewDelegate.h>
|
||||
#import "DTFTextLayer.h"
|
||||
#import "AFECircleProgressBar.h"
|
||||
#import "DTFUIElementManager.h"
|
||||
#import "DTFUploadWaveLayer.h"
|
||||
|
||||
@class AFEStatusBar, AFECircleProgressBar, APBBlurView;
|
||||
|
||||
@protocol AFECircularViewProtocol <NSObject>
|
||||
|
||||
- (void)onStopScan;
|
||||
|
||||
@optional
|
||||
- (void)playBtn:(UIButton *)btn;
|
||||
|
||||
@end
|
||||
|
||||
@interface AFECircularView : UIView<AFEScanViewProtocol>
|
||||
|
||||
@property (strong, nonatomic) AFEStatusBar *statusBar;
|
||||
@property (nonatomic, strong) CALayer *compactLayer;
|
||||
@property (nonatomic, strong) CALayer *cameraLayer;
|
||||
@property (nonatomic, assign) float cameraStartY;
|
||||
@property (nonatomic, assign) float cameraEndY;
|
||||
@property (nonatomic, assign) BOOL isWish;
|
||||
@property (nonatomic, strong) DTFTextLayer *bottomTipLayer;
|
||||
@property (nonatomic, strong) DTFTextLayer *tipLayer;
|
||||
@property (nonatomic, strong) CALayer *tipBackgroundLayer;
|
||||
@property (nonatomic, strong) DTFTextLayer *powerByLayer;
|
||||
@property (nonatomic, strong) AFECircleProgressBar *progressBar;
|
||||
@property (nonatomic, strong) DTFUploadWaveLayer *waveLayer;
|
||||
@property (nonatomic, strong) DTFTextLayer * stopScanTipLayer;
|
||||
@property (nonatomic, weak) id<AFECircularViewProtocol> aFECirViewDelegate;
|
||||
@property (nonatomic, strong) UIButton * stopScanTipButton;
|
||||
@property (nonatomic, assign) double widthCoefficient;
|
||||
@property (nonatomic, copy) NSDictionary *bottomTipAttrDict;
|
||||
@property (nonatomic, copy) NSDictionary *tipAttrDict;
|
||||
@property (nonatomic, assign) BOOL supportCustomUI;
|
||||
@property (nonatomic, strong) UIView *tipView;
|
||||
@property (nonatomic, strong) UIImageView *tipImageView;
|
||||
@property (nonatomic, strong) UILabel *tipLabel;
|
||||
@property (nonatomic, assign) CGSize tipTextSize;
|
||||
|
||||
- (instancetype)initWithSupportCustomUI:(BOOL)supportCustomUI;
|
||||
- (void)showPercent:(CGFloat)stage;
|
||||
- (void)showtip:(NSString *)tip;
|
||||
- (void)showBottomTip:(NSString *)bottomTip;
|
||||
- (void)addCameraPreviewLayer:(CALayer *)cameraPreviewLayer;
|
||||
- (void)powerByLayerHidden:(BOOL)hidden;
|
||||
- (void)setBottomTipHidden:(BOOL)hidden;
|
||||
- (void)setScreenRotation:(BOOL)isRotation;
|
||||
- (void)setPlayBtnIcon:(NSString *)platformInfo;
|
||||
|
||||
- (void)setStopScanButtonHidden:(BOOL)hidden;
|
||||
- (void)setMaskImage:(UIImage *)bestImage;
|
||||
- (void)startWave;
|
||||
- (void)stopWave;
|
||||
- (void)setAFECirViewDelegate:(id<AFECircularViewProtocol>)delegate;
|
||||
- (void)showBrandTip:(NSString *)brandTip;
|
||||
- (void)showStopScanTip:(NSString *)stopScanTip;
|
||||
- (void)hideViewList;
|
||||
- (void)showViewList;
|
||||
- (void)_buildShowView;
|
||||
- (void)_updateView;
|
||||
|
||||
@end
|
||||
|
||||
@@ -0,0 +1,43 @@
|
||||
//
|
||||
// AFEScanViewDelegate.h
|
||||
// FaceEyePrint
|
||||
//
|
||||
// Created by yukun.tyk on 12/28/15.
|
||||
// Copyright © 2015 DTF. All rights reserved.
|
||||
//
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
#import <BioAuthEngine/AFEStatusBar.h>
|
||||
|
||||
/**
|
||||
* 扫描界面接口,可以展示扫描动画和提示错误消息,错误消息内部做了平滑处理,
|
||||
* 1s内只会显示一条错误消息,在这期间传入的消息会做缓存处理,最多缓存1条消息
|
||||
* 如果同时播放声音,声音会与错误消息做同步处理
|
||||
*/
|
||||
|
||||
typedef NS_ENUM(NSInteger, AFEScanViewStatus) {
|
||||
AFE_SCAN_SHOWING_ERROR, //正在显示错误
|
||||
AFE_SCAN_SCANNING, //正在扫描
|
||||
AFE_SCAN_HOLDING, //等待显示缓存信息
|
||||
AFE_SCAN_STOPPED, //停止中
|
||||
};
|
||||
|
||||
|
||||
@protocol AFEScanViewProtocol <NSObject>
|
||||
|
||||
/**
|
||||
* 导航栏回调
|
||||
*/
|
||||
- (void)setDelegate:(id<IStatusBarDelegate>)delegate;
|
||||
|
||||
/**
|
||||
* 设置导航栏透明度
|
||||
*/
|
||||
- (void)setNaviBarAlpha:(CGFloat)alpha;
|
||||
|
||||
/**
|
||||
* 设置扫描进度
|
||||
*/
|
||||
- (void)showPercent:(CGFloat)stage;
|
||||
|
||||
@end
|
||||
@@ -0,0 +1,30 @@
|
||||
//
|
||||
// AFEStatusBar.h
|
||||
// FaceEyePrint
|
||||
//
|
||||
// Created by yukun.tyk on 12/17/15.
|
||||
// Copyright © 2015 DTF. All rights reserved.
|
||||
//
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
|
||||
@protocol IStatusBarDelegate <NSObject>
|
||||
- (void)onButtonCancel;
|
||||
@optional
|
||||
- (void)onSoundStatusChanged:(BOOL)newStatus;
|
||||
@end
|
||||
|
||||
@interface AFEStatusBar : UIView
|
||||
|
||||
- (void)onButtonCancel;
|
||||
|
||||
- (void)setDelegate:(id<IStatusBarDelegate>)delegate;
|
||||
|
||||
- (void)setTransparent:(CGFloat) alpha;
|
||||
|
||||
- (void)setCancelButtonHidden:(BOOL)hidden;
|
||||
|
||||
/// 适老化 调用
|
||||
- (void)setCancelButtonImage:(UIImage *)image;
|
||||
|
||||
@end
|
||||
@@ -0,0 +1,25 @@
|
||||
//
|
||||
// AFEUploadView.h
|
||||
// FaceEyePrint
|
||||
//
|
||||
// Created by yukun.tyk on 12/14/15.
|
||||
// Copyright © 2015 DTF. All rights reserved.
|
||||
//
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
//
|
||||
|
||||
|
||||
@interface AFEUploadView : UIView
|
||||
|
||||
|
||||
@property (strong, nonatomic) UILabel *label;
|
||||
@property (strong, nonatomic) UIView *backgroundView;
|
||||
@property (strong, nonatomic) UIImageView *backgroundImageView;
|
||||
|
||||
|
||||
- (void)beginUploading;
|
||||
- (void)stopUploading;
|
||||
- (void)setBackgroundImage:(UIImage *)img;
|
||||
|
||||
@end
|
||||
@@ -0,0 +1,50 @@
|
||||
//
|
||||
// AFEWebGuideView.h
|
||||
// BioAuthEngine
|
||||
//
|
||||
// Created by yukun.tyk on 3/21/16.
|
||||
// Copyright © 2016 DTF. All rights reserved.
|
||||
//
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
#import <BioAuthEngine/AFEStatusBar.h>
|
||||
#import <WebKit/WebKit.h>
|
||||
#import <DTFUtility/APBToygerRemoteConfig.h>
|
||||
#import "DTFUICustom.h"
|
||||
|
||||
typedef NS_ENUM(NSUInteger, AFEWebGuideCancelType) {
|
||||
AFEWebGuideCancelTypeActiveWithdrawal = 0,//主动退出
|
||||
AFEWebGuideCancelTypeNotCertifiedYet,//暂不认证
|
||||
};
|
||||
|
||||
@protocol AFEWebGuideViewDelegate <NSObject>
|
||||
|
||||
- (void)onButtonBegin:(BOOL)suitableType query:(NSDictionary *)dict;
|
||||
- (void)onButtonCancel:(AFEWebGuideCancelType)cancelType;//退出
|
||||
|
||||
@optional
|
||||
- (void)onLoadFinished:(BOOL)success;
|
||||
- (void)onH5Logger:(NSString *)h5Logger;
|
||||
- (void)onButtonAgreement;
|
||||
|
||||
@end
|
||||
|
||||
@interface AFEWebTopBar: UIView
|
||||
|
||||
@end
|
||||
|
||||
@interface AFEWebGuideView : UIView <IStatusBarDelegate,WKScriptMessageHandler, WKUIDelegate, WKNavigationDelegate>
|
||||
|
||||
@property(strong,nonatomic) WKWebView *wkwebView;
|
||||
|
||||
@property(nonatomic, assign)BOOL loaded;
|
||||
@property(nonatomic, strong)APBToygerAlertConfig *toygerAlertConfig;
|
||||
@property(nonatomic, weak)UIViewController *currentViewController;
|
||||
@property(nonatomic, strong)DTFUICustom *customProtocol;
|
||||
@property(nonatomic, strong)NSDictionary *alertParam;
|
||||
|
||||
- (void)setWebGuideViewDelegate:(id<AFEWebGuideViewDelegate>)webGuideViewDeleage;
|
||||
- (void)setURL:(NSURL *)url;
|
||||
//清除网页的localstorage,localStorage存储了自定义UI信息
|
||||
- (void)clearUICustomSettingWebLocalStorage;
|
||||
@end
|
||||
@@ -0,0 +1,18 @@
|
||||
//
|
||||
// APBAlertController.h
|
||||
// BioAuthEngine
|
||||
//
|
||||
// Created by yukun.tyk on 3/2/16.
|
||||
// Copyright © 2016 DTF. All rights reserved.
|
||||
//
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
|
||||
|
||||
extern NSString *const kAlertViewAppear;
|
||||
extern NSString *const kAlertViewDisappear;
|
||||
|
||||
|
||||
@interface APBAlertController : UIAlertController
|
||||
|
||||
@end
|
||||
@@ -0,0 +1,82 @@
|
||||
//
|
||||
// APBAuthEngine.h
|
||||
// BioAuthEngine
|
||||
//
|
||||
// Created by yukun.tyk on 11/9/15.
|
||||
// Copyright © 2015 DTF. All rights reserved.
|
||||
//
|
||||
//
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
#import "BioAuthFacade.h"
|
||||
|
||||
/**
|
||||
生物认证类型定义
|
||||
*/
|
||||
typedef enum {
|
||||
BIO_FACE = 100, //人脸识别
|
||||
BIO_VOICE = 101, //声纹识别
|
||||
BIO_HANDWRITING = 103, //笔迹识别
|
||||
BIO_IDPAPERS = 107, //重构后的证件宝
|
||||
BIO_CARD = 109, //证件宝
|
||||
BIO_DTF_DOC = 110, //一体化证件宝
|
||||
BIO_FACE_VOICE = 202, //人脸+声纹识别
|
||||
BIO_FACE_EYE = 201, //人脸+眼纹识别
|
||||
BIO_CARD_FACE = 200, //人证合一
|
||||
BIO_TOYGER = 300, //Toyger产品
|
||||
}APBBioType;
|
||||
|
||||
/**
|
||||
操作类型定义
|
||||
*/
|
||||
typedef enum {
|
||||
ACTION_COLLECT = 300, //采集操作
|
||||
ACTION_VERFIY = 301, //验证操作
|
||||
}APBActionType;
|
||||
|
||||
@interface APBAuthEngine : NSObject
|
||||
|
||||
/**
|
||||
* 唤起生物认证之前获取框架meta数据
|
||||
*/
|
||||
+ (NSString *)getBioMetaInfo;
|
||||
|
||||
/**
|
||||
* 触发下载资源文件
|
||||
*/
|
||||
+ (void)preLoad;
|
||||
|
||||
/**
|
||||
* 申请生物认证
|
||||
*
|
||||
* @param request 生物认证请求
|
||||
* @param callback 生物认证结果回调处理
|
||||
*/
|
||||
- (void)authWithRequest:(APBRequest *)request withCallback:(BioAuthCallback)callback;
|
||||
|
||||
/**
|
||||
* 让正在进行中的生物认证因子执行某种操作
|
||||
*
|
||||
* @param command 操作码
|
||||
* @param callback 执行结果回调
|
||||
*/
|
||||
- (void)exec:(APBCommand *)command withCompletionCallback:(BioAuthExecCallback)callback;
|
||||
|
||||
/**
|
||||
* 当前是否运行任务
|
||||
*/
|
||||
- (BOOL)isBusy;
|
||||
|
||||
/**
|
||||
* 生物认证类型版本号
|
||||
*
|
||||
* @return 生物认证类型版本号
|
||||
*/
|
||||
- (NSString *)version;
|
||||
|
||||
/**
|
||||
* 当前运行的认证方式
|
||||
*/
|
||||
+ (NSString *)getAuthFactorName;
|
||||
|
||||
@end
|
||||
@@ -0,0 +1,18 @@
|
||||
//
|
||||
// APBAuthFacade.h
|
||||
// BioAuthEngine
|
||||
//
|
||||
// Created by yukun.tyk on 11/9/15.
|
||||
// Copyright © 2015 DTF. All rights reserved.
|
||||
//
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
|
||||
#import <BioAuthEngine/APBEvent.h>
|
||||
#import <BioAuthEngine/IBioAuthFactor.h>
|
||||
#import <BioAuthEngine/IBioAuthTask.h>
|
||||
#import <BioAuthEngine/APBTaskContext.h>
|
||||
#import <BioAuthEngine/APBBackwardCommand.h>
|
||||
#import <BioAuthEngine/NSTimer+bioAuth.h>
|
||||
#import <BioAuthEngine/APBAuthEngine.h>
|
||||
#import <BioAuthEngine/BioAuthCommonSetting.h>
|
||||
@@ -0,0 +1,59 @@
|
||||
//
|
||||
// APBBackwardCommand.h
|
||||
// BioAuthEngine
|
||||
//
|
||||
// Created by yukun.tyk on 11/26/15.
|
||||
// Copyright © 2015 DTF. All rights reserved.
|
||||
//
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
|
||||
|
||||
/**
|
||||
* 任务队列可要求框架执行的命令
|
||||
*/
|
||||
typedef NS_ENUM(NSInteger, APBBackwardCommandType) {
|
||||
BACKWARD_COMMAND_RESTART = 300, //重新开始任务队列,task可以设置params来指定冲新开始的任务下标
|
||||
BACKWARD_COMMAND_ADD_PARALLEL_TASK = 302, //添加并行任务
|
||||
BACKWARD_COMMNAD_GLOBAL_TIMER = 305, //全局timer操作
|
||||
BACKWARD_COMMNAD_UPLOAD_DATA = 400, //合并上传
|
||||
BACKWARD_COMMNAD_STOP_SCANCE = 401, //关闭扫描
|
||||
BACKWARD_COMMNAD_OCRUPLOAD_DATA = 402, //EKYC OCR上传
|
||||
BACKWARD_COMMNAD_OCRUPLOADCONFIRM_DATA = 403, //EKYC OCR确认
|
||||
};
|
||||
|
||||
typedef NS_ENUM(NSInteger, APBTimerCommandType) {
|
||||
TIMER_COMMAND_START, //开始全局计时
|
||||
TIMER_COMMAND_CANCEL, //取消全局计时
|
||||
TIMER_COMMAND_PAUSE, //暂停全局计时
|
||||
TIMER_COMMAND_RESUME, //恢复全局计时
|
||||
};
|
||||
|
||||
/**
|
||||
* param key {BACKWARD_COMMAND_RESTART}
|
||||
* 重新开始命令,指定从第几个任务开始
|
||||
*/
|
||||
extern NSString *const kCommandRestartTaskIndexKey;
|
||||
|
||||
/**
|
||||
* param key {BACKWARD_COMMAND_ADD_PARALLEL_TASK}
|
||||
* 添加并行任务,value为id<IBioAuthTask>,新任务会在新线程中并行运行
|
||||
*/
|
||||
extern NSString *const kAddParallelTaskInstanceKey;
|
||||
|
||||
/**
|
||||
* 全局计时器操作命令
|
||||
* value为NSNumber{APBTimerCommandType}
|
||||
*/
|
||||
extern NSString *const kGlobalTimerCommandKey;
|
||||
|
||||
|
||||
@interface APBBackwardCommand : NSObject
|
||||
|
||||
@property(nonatomic, assign, readonly)APBBackwardCommandType commandType;
|
||||
@property(nonatomic, strong, readonly)NSDictionary *params;
|
||||
|
||||
- (instancetype)initWithCommandType:(APBBackwardCommandType)commandType
|
||||
withParams:(NSDictionary *)params;
|
||||
|
||||
@end
|
||||
@@ -0,0 +1,145 @@
|
||||
//
|
||||
// APBBehavLogModel.h
|
||||
// BioAuthEngine
|
||||
//
|
||||
// Created by yukun.tyk on 3/15/16.
|
||||
// Copyright © 2016 DTF. All rights reserved.
|
||||
//
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
#import <BioAuthEngine/APBConfig.h>
|
||||
|
||||
//JSON
|
||||
#ifndef SUPPORT_PB
|
||||
|
||||
@interface BisClientInfo : NSObject
|
||||
@property (nonatomic,strong) NSString* model;
|
||||
@property (nonatomic,strong) NSString* os;
|
||||
@property (nonatomic,strong) NSString* osVer;
|
||||
@property (nonatomic,strong) NSString* clientVer;
|
||||
@end
|
||||
|
||||
@interface BisBehavToken : NSObject
|
||||
@property (nonatomic,strong) NSString* token;
|
||||
@property (nonatomic,strong) NSString* type;
|
||||
@property (nonatomic,strong) NSString* sampleMode;
|
||||
@property (nonatomic,strong) NSString* uid;
|
||||
@property (nonatomic,strong) NSString* apdid;
|
||||
@property (nonatomic,strong) NSString* appid;
|
||||
@property (nonatomic,strong) NSString* behid;
|
||||
@property (nonatomic,strong) NSString* bizid;
|
||||
@property (nonatomic,strong) NSString* verifyid;
|
||||
@property (nonatomic,strong) NSString* vtoken;
|
||||
@property (nonatomic,strong) NSString* apdidToken;
|
||||
@end
|
||||
|
||||
@interface BisBehavCommon : NSObject
|
||||
@property (nonatomic,strong) NSString* invtp;
|
||||
@property (nonatomic,strong) NSString* tm;
|
||||
@property (nonatomic,strong) NSString* retry;
|
||||
@end
|
||||
|
||||
@interface BisBehavTask : NSObject
|
||||
@property (nonatomic,strong) NSString* name;
|
||||
@property (nonatomic,strong) NSString* idx;
|
||||
@property (nonatomic,strong) NSString* dur;
|
||||
@property (nonatomic,strong) NSString* quality;
|
||||
@property (nonatomic,strong) NSString* extInfo;
|
||||
@end
|
||||
|
||||
@interface BisBehavLog : NSObject
|
||||
@property (nonatomic,strong) BisClientInfo* clientInfo;
|
||||
@property (nonatomic,strong) BisBehavToken* behavToken;
|
||||
@property (nonatomic,strong) BisBehavCommon* behavCommon;
|
||||
@property (nonatomic,strong) NSMutableArray * behavTask;
|
||||
@end
|
||||
|
||||
//PB
|
||||
#else
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C"{
|
||||
#endif
|
||||
#import <APProtocolBuffers/ProtocolBuffers.h>
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
@class BisBehavCommon;
|
||||
@class BisBehavLog;
|
||||
@class BisBehavTask;
|
||||
@class BisBehavToken;
|
||||
@class BisClientInfo;
|
||||
|
||||
@interface BisClientInfo : APDPBGeneratedMessage
|
||||
@property (readonly) BOOL hasModel;
|
||||
@property (readonly) BOOL hasOs;
|
||||
@property (readonly) BOOL hasOsVer;
|
||||
@property (readonly) BOOL hasClientVer;
|
||||
@property (nonatomic,strong) NSString* model;
|
||||
@property (nonatomic,strong) NSString* os;
|
||||
@property (nonatomic,strong) NSString* osVer;
|
||||
@property (nonatomic,strong) NSString* clientVer;
|
||||
@end
|
||||
|
||||
@interface BisBehavToken : APDPBGeneratedMessage
|
||||
@property (readonly) BOOL hasToken;
|
||||
@property (readonly) BOOL hasType;
|
||||
@property (readonly) BOOL hasSampleMode;
|
||||
@property (readonly) BOOL hasUid;
|
||||
@property (readonly) BOOL hasApdid;
|
||||
@property (readonly) BOOL hasAppid;
|
||||
@property (readonly) BOOL hasBehid;
|
||||
@property (readonly) BOOL hasBizid;
|
||||
@property (readonly) BOOL hasVerifyid;
|
||||
@property (readonly) BOOL hasVtoken;
|
||||
@property (readonly) BOOL hasApdidToken;
|
||||
@property (nonatomic,strong) NSString* token;
|
||||
@property (nonatomic) SInt32 type;
|
||||
@property (nonatomic) SInt32 sampleMode;
|
||||
@property (nonatomic,strong) NSString* uid;
|
||||
@property (nonatomic,strong) NSString* apdid;
|
||||
@property (nonatomic,strong) NSString* appid;
|
||||
@property (nonatomic,strong) NSString* behid;
|
||||
@property (nonatomic,strong) NSString* bizid;
|
||||
@property (nonatomic,strong) NSString* verifyid;
|
||||
@property (nonatomic,strong) NSString* vtoken;
|
||||
@property (nonatomic,strong) NSString* apdidToken;
|
||||
@end
|
||||
|
||||
@interface BisBehavCommon : APDPBGeneratedMessage
|
||||
@property (readonly) BOOL hasInvtp;
|
||||
@property (readonly) BOOL hasTm;
|
||||
@property (readonly) BOOL hasRetry;
|
||||
@property (nonatomic,strong) NSString* invtp;
|
||||
@property (nonatomic,strong) NSString* tm;
|
||||
@property (nonatomic,strong) NSString* retry;
|
||||
@end
|
||||
|
||||
@interface BisBehavTask : APDPBGeneratedMessage
|
||||
@property (readonly) BOOL hasName;
|
||||
@property (readonly) BOOL hasIdx;
|
||||
@property (readonly) BOOL hasDur;
|
||||
@property (readonly) BOOL hasQuality;
|
||||
@property (readonly) BOOL hasExtInfo;
|
||||
@property (nonatomic,strong) NSString* name;
|
||||
@property (nonatomic,strong) NSString* idx;
|
||||
@property (nonatomic)SInt32 dur;
|
||||
@property (nonatomic)SInt32 quality;
|
||||
@property (nonatomic,strong) NSString* extInfo;
|
||||
@end
|
||||
|
||||
@interface BisBehavLog : APDPBGeneratedMessage
|
||||
@property (readonly) BOOL hasClientInfo;
|
||||
@property (readonly) BOOL hasBehavToken;
|
||||
@property (readonly) BOOL hasBehavCommon;
|
||||
@property (readonly) BOOL hasExtAttr;
|
||||
@property (nonatomic,strong) BisClientInfo* clientInfo ;
|
||||
@property (nonatomic,strong) BisBehavToken* behavToken ;
|
||||
@property (nonatomic,strong) BisBehavCommon* behavCommon ;
|
||||
@property (nonatomic,strong) NSMutableArray<BisBehavTask*>* behavTask ;
|
||||
@property (nonatomic,strong) PBMapStringString* extAttr ;
|
||||
@end
|
||||
|
||||
#endif
|
||||
|
||||
@@ -0,0 +1,30 @@
|
||||
//
|
||||
// APBBisRequestBuilder.h
|
||||
// BioAuthEngine
|
||||
//
|
||||
// Created by 晗羽 on 21/04/2018.
|
||||
// Copyright © 2018 DTF. All rights reserved.
|
||||
//
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
#import <DTFUtility/APBBisUploadGwRequest.h>
|
||||
#import <BioAuthEngine/APBBehavLogModel.h>
|
||||
#import <DTFUtility/ToygerData.h>
|
||||
|
||||
@interface APBBisRequestBuilder : NSObject
|
||||
|
||||
+(APBBisUploadGwRequest *) buildRequestwithpubKey:(NSString *) pubKey
|
||||
token:(NSString *) bistoken
|
||||
contentData:(ToygerUploadContent *)content
|
||||
behaveLog:(BisBehavLog *)behavlog
|
||||
andCypherData:(NSString *) aesKeyData;
|
||||
|
||||
+ (APBBisUploadGwRequest *)buildEKYCRequestWithContentData:(NSString *)content
|
||||
behaveLog:(BisBehavLog *)behavlog
|
||||
andCypherData:(NSString *)aesKeyData;
|
||||
|
||||
+ (NSString *)rsaImage:(NSString *) pubKey image:(UIImage *)image;
|
||||
|
||||
+ (UIImage *)compressImage:(UIImage *)image;
|
||||
|
||||
@end
|
||||
@@ -0,0 +1,28 @@
|
||||
//
|
||||
// APBCommand.h
|
||||
// BioAuthEngine
|
||||
//
|
||||
// Created by yukun.tyk on 11/26/15.
|
||||
// Copyright © 2015 DTF. All rights reserved.
|
||||
//
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
|
||||
/**
|
||||
* 业务方可以执行的任务类型
|
||||
*/
|
||||
typedef NS_ENUM(NSInteger, APBCommandType) {
|
||||
COMMAND_QUIT = 100, //业务方强制退出
|
||||
COMMAND_CLOSE_UPLOADPAGE = 101, //业务方关闭上传界面
|
||||
COMMAND_BIS_RETURN = 102, //业务方传递bis服务器返回结果,或网络错误结果
|
||||
};
|
||||
|
||||
@interface APBCommand : NSObject
|
||||
|
||||
@property(nonatomic, assign, readonly)APBCommandType commandType; //操作类型
|
||||
@property(nonatomic, strong, readonly)NSDictionary *params; //操作扩展参数,可以为空
|
||||
|
||||
- (instancetype)initWithCommandType:(APBCommandType)commandType
|
||||
withParams:(NSDictionary *)params;
|
||||
|
||||
@end
|
||||
@@ -0,0 +1,22 @@
|
||||
//
|
||||
// APBConfig.h
|
||||
// BioAuthEngine
|
||||
//
|
||||
// Created by yukun.tyk on 3/8/16.
|
||||
// Copyright © 2016 DTF. All rights reserved.
|
||||
//
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
|
||||
//是否支持protobuffer
|
||||
//#define SUPPORT_PB
|
||||
//#define USE_FPP
|
||||
|
||||
|
||||
#ifdef SUPPORT_PB
|
||||
static const int kRPCFormat = 1;
|
||||
#else
|
||||
static const int kRPCFormat = 0;
|
||||
#endif
|
||||
|
||||
|
||||
@@ -0,0 +1,19 @@
|
||||
//
|
||||
// APBDTFUploadTostView.h
|
||||
// APBToygerFacade
|
||||
//
|
||||
// Created by richard on 28/02/2018.
|
||||
// Copyright © 2018 DTF. All rights reserved.
|
||||
//
|
||||
#import <UIKit/UIKit.h>
|
||||
#import "DTFCustomActivityIndicator.h"
|
||||
@interface APBDTFUploadToastView : UIView
|
||||
|
||||
@property(nonatomic,strong)UIActivityIndicatorView *indicator;
|
||||
|
||||
@property(nonatomic,strong)DTFCustomActivityIndicator *customActivityIndicator;
|
||||
|
||||
- (instancetype)initWithFrame:(CGRect)frame;
|
||||
|
||||
- (void)andSubViewWithFrame:(CGRect)frame AndText:(NSString *)text andStartY:(float)startY;
|
||||
@end
|
||||
@@ -0,0 +1,43 @@
|
||||
//
|
||||
// APBEvent.h
|
||||
// BioAuthEngine
|
||||
//
|
||||
// Created by yukun.tyk on 11/26/15.
|
||||
// Copyright © 2015 DTF. All rights reserved.
|
||||
//
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
|
||||
@class APBCommand;
|
||||
|
||||
extern NSString *const kKeepUploadPageKey; //extInfo key: 生物识别产品是否要保持上传界面,默认不保持
|
||||
|
||||
/**
|
||||
* task可以响应的事件类型
|
||||
*/
|
||||
typedef NS_ENUM(NSInteger, APBEventType) {
|
||||
EVENT_QUIT = 100, //退出
|
||||
EVENT_CLOSE_UPLOADPAGE = 101, //业务方关闭上传界面
|
||||
EVENT_BIS_RETURN = 102, //bis服务器返回
|
||||
EVENT_SYSTEM_INTERRUPT = 200, //系统中断
|
||||
EVENT_SYSTEM_INTERRUPT_RESUME = 201, //系统中断恢复
|
||||
EVENT_GLOBAL_TIMEOUT = 202, //全局超时
|
||||
EVENT_TASK_TIMEOUT = 203, //task超时
|
||||
EVENT_ALERT_APPEAR = 204, //alert框显示
|
||||
EVENT_ALERT_DISAPPEAR = 205, //alert框退出
|
||||
EVENT_ABNORMAL_CLOSE = 206, //异常退出
|
||||
EVENT_SYSTEM_ENTER_FOREGROUND = 207, //后台返回前台
|
||||
};
|
||||
|
||||
|
||||
@interface APBEvent : NSObject
|
||||
|
||||
@property(nonatomic, assign, readonly) APBEventType eventType;
|
||||
@property(nonatomic, strong, readonly) NSDictionary *params;
|
||||
|
||||
- (instancetype)initWithEventType:(APBEventType)eventType
|
||||
withParam:(NSDictionary *)params;
|
||||
|
||||
+ (instancetype)eventWithCommand:(APBCommand *)command;
|
||||
|
||||
@end
|
||||
@@ -0,0 +1,34 @@
|
||||
//
|
||||
// APBFaceVerifyInfo.h
|
||||
// BioAuthEngine
|
||||
//
|
||||
// Created by 晗羽 on 28/02/2018.
|
||||
// Copyright © 2018 DTF. All rights reserved.
|
||||
//
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
#import <UIKit/UIKit.h>
|
||||
|
||||
@interface APBFaceVerifyInfo : NSObject
|
||||
|
||||
@property(nonatomic,strong)NSString* dtfDeviceToken;
|
||||
|
||||
+ (instancetype)getInstance;
|
||||
|
||||
//获取语言类型
|
||||
- (NSInteger)languageCode;
|
||||
|
||||
- (NSString *)languageName;
|
||||
|
||||
//在某些未初始化设备指纹的地方提供初始化接口
|
||||
- (void)initDeviceInfo;
|
||||
|
||||
//获取apdidtoken
|
||||
- (NSString *)getApdidToken;
|
||||
|
||||
|
||||
- (BOOL)loadDylib;
|
||||
|
||||
- (UIViewController *)currentVC;
|
||||
|
||||
@end
|
||||