36 Commits

Author SHA1 Message Date
liyuhua
769d350e49 修复bug 2024-01-05 17:46:44 +08:00
liyuhua
055773a467 房间接口 2024-01-05 17:46:44 +08:00
linyudan
21fc742241 提交文件 2023-12-15 17:48:04 -08:00
linyudan
6815f64432 代码提交 2023-12-15 16:39:06 -08:00
linyudan
f056960dee 修改密码和注销账号逻辑跳转修改 2023-12-15 10:27:02 -08:00
linyudan
a39fe019ed 解决报错 2023-12-14 19:15:01 -08:00
linyudan
01c4e592de key加密,文件net类名,方法名,属性名修改 2023-12-14 19:09:42 -08:00
liyuhua
d2e47d3313 加密工具 2023-12-14 16:59:40 +08:00
linyudan
d983053f29 房间内的数据提交 2023-12-14 16:53:50 -08:00
liyuhua
3472e7c800 加密工具 2023-12-14 16:47:25 +08:00
liyuhua
4873b8b299 协议更改 2023-12-14 16:36:57 +08:00
linyudan
7494f5a3ea 房间内的云信接入 2023-12-14 15:39:01 -08:00
liyuhua
9ea5d1bbaa 聊天信息接口对接 2023-12-14 15:34:33 +08:00
liyuhua
43056d7269 动态接口对接 2023-12-13 19:43:31 +08:00
liyuhua
60a5983a98 动态接口对接 2023-12-13 19:36:07 +08:00
linyudan
1a90a9d9c4 接入云信初始化 2023-12-13 19:18:00 -08:00
liyuhua
99ba2be21f 动态接口对接 2023-12-13 18:02:12 +08:00
liyuhua
99c3755d66 动态接口对接 2023-12-13 17:56:07 +08:00
linyudan
74030e806a 修改登录注册UI和登录注册逻辑 2023-12-13 17:47:43 -08:00
linyudan
ff6b8740bd 登录页面 2023-12-13 17:47:43 -08:00
liyuhua
cbc7cf3e3e 我的UI接口对接 2023-12-13 15:59:04 +08:00
liyuhua
625daf8485 我的UI接口对接 2023-12-13 10:48:56 +08:00
liyuhua
85c300a6e1 首页UI 2023-12-12 18:34:48 +08:00
linyudan
5b6c8407ce 修改路径为yinmeng的路劲 2023-12-12 15:36:49 -08:00
liyuhua
a5bc5be14b 解决冲突 2023-12-12 15:35:10 +08:00
liyuhua
ac9077b3d1 新建文件 2023-12-12 14:51:07 +08:00
linyudan
ae24bfd582 提交tool工具类 2023-12-12 14:50:44 -08:00
linyudan
697d3cfe40 提交tool工具下的文件 2023-12-11 19:04:30 -08:00
linyudan
a2833841ce 新建basetool下面的文件夹 2023-12-11 16:00:18 -08:00
linyudan
a70d8cf8fd 添加部分basetool下的文件 2023-12-08 18:54:45 -08:00
liyuhua
f953cb2cd3 新建文件 2023-12-08 16:39:56 +08:00
liyuhua
cd634a42f6 新建文件 2023-12-08 16:38:25 +08:00
liyuhua
9d3ce9a5bc 新增音萌第三方库 2023-12-08 16:16:47 +08:00
liyuhua
408f22a952 新增音萌第三方库 2023-12-08 15:06:15 +08:00
linyudan
65fcc6f274 pod文件 2023-12-08 09:17:15 -08:00
liyuhua
1b7fee7304 新增项目 2023-12-07 10:50:21 +08:00
4319 changed files with 200786 additions and 37614 deletions

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,101 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "1430"
version = "1.7">
<BuildAction
parallelizeBuildables = "YES"
buildImplicitDependencies = "YES">
<BuildActionEntries>
<BuildActionEntry
buildForTesting = "YES"
buildForRunning = "YES"
buildForProfiling = "YES"
buildForArchiving = "YES"
buildForAnalyzing = "YES">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "ECA531332A20EB60006E6D04"
BuildableName = "DingDangApp.app"
BlueprintName = "DingDangApp"
ReferencedContainer = "container:DingDangApp.xcodeproj">
</BuildableReference>
</BuildActionEntry>
</BuildActionEntries>
</BuildAction>
<TestAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
shouldUseLaunchSchemeArgsEnv = "YES"
shouldAutocreateTestPlan = "YES">
<Testables>
<TestableReference
skipped = "NO"
parallelizable = "YES">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "ECA5314E2A20EB64006E6D04"
BuildableName = "DingDangAppTests.xctest"
BlueprintName = "DingDangAppTests"
ReferencedContainer = "container:DingDangApp.xcodeproj">
</BuildableReference>
</TestableReference>
<TestableReference
skipped = "NO"
parallelizable = "YES">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "ECA531582A20EB65006E6D04"
BuildableName = "DingDangAppUITests.xctest"
BlueprintName = "DingDangAppUITests"
ReferencedContainer = "container:DingDangApp.xcodeproj">
</BuildableReference>
</TestableReference>
</Testables>
</TestAction>
<LaunchAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
launchStyle = "0"
useCustomWorkingDirectory = "NO"
ignoresPersistentStateOnLaunch = "NO"
debugDocumentVersioning = "YES"
debugServiceExtension = "internal"
allowLocationSimulation = "YES">
<BuildableProductRunnable
runnableDebuggingMode = "0">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "ECA531332A20EB60006E6D04"
BuildableName = "DingDangApp.app"
BlueprintName = "DingDangApp"
ReferencedContainer = "container:DingDangApp.xcodeproj">
</BuildableReference>
</BuildableProductRunnable>
</LaunchAction>
<ProfileAction
buildConfiguration = "Release"
shouldUseLaunchSchemeArgsEnv = "YES"
savedToolIdentifier = ""
useCustomWorkingDirectory = "NO"
debugDocumentVersioning = "YES">
<BuildableProductRunnable
runnableDebuggingMode = "0">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "ECA531332A20EB60006E6D04"
BuildableName = "DingDangApp.app"
BlueprintName = "DingDangApp"
ReferencedContainer = "container:DingDangApp.xcodeproj">
</BuildableReference>
</BuildableProductRunnable>
</ProfileAction>
<AnalyzeAction
buildConfiguration = "Release">
</AnalyzeAction>
<ArchiveAction
buildConfiguration = "Release"
revealArchiveInOrganizer = "YES">
</ArchiveAction>
</Scheme>

View File

@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<Workspace
version = "1.0">
<FileRef
location = "group:DingDangApp.xcodeproj">
</FileRef>
<FileRef
location = "group:Pods/Pods.xcodeproj">
</FileRef>
</Workspace>

View File

@@ -0,0 +1,68 @@
/*
en.strings
APBToygerFacade
Created by shouyi.www on 2017/6/1.
Copyright © 2017年 DTF. All rights reserved.
*/
"APBToygerFacade:取消"="Cancel";
"APBToygerFacade:再试一次"="Try Again";
"APBToygerFacade:退出"="Quit";
"APBToygerFacade:确定"="OK";
"APBToygerFacade:继续"="Continue";
"APBToygerFacade:我知道了"="Got it";
"APBToygerFacade:其他登录方式"="Another login method";
"APBToygerFacade:刷脸失败"="Face scan failed";
"APBToygerFacade:当前设备不支持刷脸"="Face scan not supported on your device";
"APBToygerFacade:当前系统不支持刷脸"="Face scan not supported on your device system";
"APBToygerFacade:无法启动相机"="No camera permission";
"APBToygerFacade:请到\“设置-隐私-相机\”开启权限"="Please allow to access your camera in \"Settings\"-\"Privacy\"-\"Camera\"";
"APBToygerFacade:立即开启"="OK";
"APBToygerFacade:刷脸仅在iOS7及以上系统可用"="Face scan is only available on iOS8 or above";
"APBToygerFacade:系统错误"="System error";
"APBToygerFacade:确定退出吗?"="Are you sure to quit face scan?";
"APBToygerFacade:露个脸就能通过"="You can succeed by simply showing your face";
"APBToygerFacade:操作超时"="Time out";
"APBToygerFacade:正对手机,更容易成功"="Face straight at the phone and ensure you have enough light";
"APBToygerFacade:提示:正对手机,更容易成功"="Face straight at the phone and ensure you have enough light";
"APBToygerFacade:本次操作失败"="Sorry, face scan failed";
"APBToygerFacade:网络不给力"="Network connection failed";
"APBToygerFacade:登录中断"="Login interrupted";
"APBToygerFacade:验证中断"="Face scan interrupted";
"APBToygerFacade:刷脸验证"="Face Scan";
"APBToygerFacade:请把脸放入框内保持不动"="Put your face into the frame";
"APBToygerFacade:靠近一点"="Move closer";
"APBToygerFacade:没有检测到脸"="No face";
"APBToygerFacade:再清晰一点"="Face not clear";
"APBToygerFacade:脸部亮一点"="More light";
"APBToygerFacade:请正对手机"="No face";
"APBToygerFacade:把脸移入圈内"="No face";
"APBToygerFacade:离远一点"="Move farther";
"APBToygerFacade:请保持不动"="Stay still";
"APBToygerFacade:请注视屏幕"="Open your eyes";
"APBToygerFacade:眨眨眼"="Blink";
"APBToygerFacade:蚂蚁佐罗提供技术支持"="";
"APBToygerFacade:选择其他验证方式"="Use a different verification method";
"APBToygerFacade:拿起手机眨眨眼"="Blink";
"APBToygerFacade:拿起手机向左摇头"="Turn Head Left";
"APBToygerFacade:拿起手机向右摇头"="Turn Head Right";
"APBToygerFacade:向左摇头"="Turn Head Left";
"APBToygerFacade:向右摇头"="Turn Head Right";
"APBToygerFacade:正在处理"="Processing";
"APBToygerFacade:首次使用,请开通刷脸"="For the first time use, please enable Face Scan";
"APBToygerFacade:立即开通"="Enable";
"APBToygerFacade:下次再说"="Later";
"APBToygerFacade:请把手机正对面部"="Face straight at the phone";
"APBToygerFacade:即将开始人脸检测"="Get ready for face recognition";
"APBToygerFacade:没有认出你"="Face scan failed";
"APBToygerFacade:未能识别人脸"="Face not detected";
"APBToygerFacade:人脸检测中"="Face Scan";
"APBToygerFacade:刷脸失败次数过多,请稍后再试"="Too many failed attempts, please try again later";

View File

@@ -0,0 +1,59 @@
"APBToygerFacade:取消"="Batalkan";
"APBToygerFacade:再试一次"="Harap coba lagi";
"APBToygerFacade:退出"="Keluar";
"APBToygerFacade:确定"="OK";
"APBToygerFacade:继续"="Lanjutkan";
"APBToygerFacade:我知道了"="OK";
"APBToygerFacade:其他登录方式"="Ubah Metode Logon";
"APBToygerFacade:刷脸失败"="Pengenalan wajah gagal";
"APBToygerFacade:当前设备不支持刷脸"="Perangkat Anda tidak mendukung pengenalan wajah";
"APBToygerFacade:当前系统不支持刷脸"="Sistem saat ini tidak mendukung pengenalan wajah";
"APBToygerFacade:无法启动相机"="Tidak Memiliki Izin Akses Kamera";
"APBToygerFacade:请到\“设置-隐私-相机\”开启权限"="Buka Pengaturan > Privasi > Kamera dan izinkan akses";
"APBToygerFacade:立即开启"="OK";
"APBToygerFacade:刷脸仅在iOS7及以上系统可用"="Hanya iOS 7 dan setelahnya yang mendukung pengenalan wajah";
"APBToygerFacade:系统错误"="Terjadi Kesalahan Sistem";
"APBToygerFacade:确定退出吗?"="Apakah Anda yakin ingin keluar?";
"APBToygerFacade:露个脸就能通过"="Anda hanya perlu memperlihatkan wajah Anda";
"APBToygerFacade:操作超时"="Waktu operasi habis";
"APBToygerFacade:正对手机,更容易成功"="Arahkan wajah lurus menghadap ponsel untuk membuat wajah Anda lebih mudah dipindai";
"APBToygerFacade:本次操作失败"="Operasi gagal";
"APBToygerFacade:网络不给力"="Kondisi jaringan tidak memenuhi persyaratan";
"APBToygerFacade:登录中断"="Logon Terganggu";
"APBToygerFacade:验证中断"="Verifikasi terputus";
"APBToygerFacade:刷脸验证"="Verifikasi dengan Pengenalan Wajah";
"APBToygerFacade:请把脸放入框内保持不动"="Posisikan wajah Anda di dalam bingkai dan jangan bergerak";
"APBToygerFacade:靠近一点"="Harap dekatkan wajah";
"APBToygerFacade:没有检测到脸"="Tidak ada wajah terdeteksi";
"APBToygerFacade:再清晰一点"="Perjelas wajah Anda";
"APBToygerFacade:脸部亮一点"="Terangi wajah Anda";
"APBToygerFacade:请正对手机"="Arahkan wajah lurus menghadap ponsel";
"APBToygerFacade:请露出正脸"="Tunjukkan bagian depan wajah Anda";
"APBToygerFacade:把脸移入圈内"="Posisikan wajah pada lingkaran";
"APBToygerFacade:离远一点"="Harap jauhkan wajah";
"APBToygerFacade:请保持不动"="Tetap tenang";
"APBToygerFacade:请注视屏幕"="Lihat layar";
"APBToygerFacade:眨眨眼"="Harap kedipkan mata";
"APBToygerFacade:蚂蚁佐罗提供技术支持"="";
"APBToygerFacade:选择其他验证方式"="Ubah Metode Verifikasi";
"APBToygerFacade:拿起手机眨眨眼"="Harap kedipkan mata";
"APBToygerFacade:拿起手机向左摇头"="Harap menoleh ke kiri";
"APBToygerFacade:拿起手机向右摇头"="Harap menoleh ke kanan";
"APBToygerFacade:向左摇头"="Harap menoleh ke kiri";
"APBToygerFacade:向右摇头"="Harap menoleh ke kanan";
"APBToygerFacade:正在处理"="Memproses";
"APBToygerFacade:首次使用,请开通刷脸"="Aktifkan pengenalan wajah untuk melanjutkan";
"APBToygerFacade:立即开通"="Aktifkan";
"APBToygerFacade:下次再说"="Lain Kali";
"APBToygerFacade:请把手机正对面部"="Arahkan wajah lurus menghadap ponsel";
"APBToygerFacade:即将开始人脸检测"="Memulai pengenalan wajah";
"APBToygerFacade:没有认出你"="Pengenalan wajah gagal";
"APBToygerFacade:未能识别人脸"="Tidak ada wajah terdeteksi";
"APBToygerFacade:人脸检测中"="Pengenalan wajah dalam proses";
"APBToygerFacade:刷脸失败次数过多,请稍后再试"="Pengenalan wajah terlalu sering dilakukan. Harap coba lagi nanti";

View File

@@ -0,0 +1,59 @@
"APBToygerFacade:取消"="キャンセル";
"APBToygerFacade:再试一次"="もう一度お試しください";
"APBToygerFacade:退出"="終了";
"APBToygerFacade:确定"="OK";
"APBToygerFacade:继续"="続行";
"APBToygerFacade:我知道了"="OK";
"APBToygerFacade:其他登录方式"="ログイン方法を切り替え";
"APBToygerFacade:刷脸失败"="顔を認識できませんでした";
"APBToygerFacade:当前设备不支持刷脸"="お使いのデバイスは顔認識をサポートしていません";
"APBToygerFacade:当前系统不支持刷脸"="顔認識をサポートしていないシステムです";
"APBToygerFacade:无法启动相机"="カメラにアクセスできません";
"APBToygerFacade:请到\“设置-隐私-相机\”开启权限"="[設定] > [プライバシー] > [カメラ] に移動し、アクセスを許可してください";
"APBToygerFacade:立即开启"="OK";
"APBToygerFacade:刷脸仅在iOS7及以上系统可用"="顔認識は iOS 7 以降でサポートされています";
"APBToygerFacade:系统错误"="システムエラー";
"APBToygerFacade:确定退出吗?"="終了してもよろしいですか";
"APBToygerFacade:露个脸就能通过"="顔を見せるだけです";
"APBToygerFacade:操作超时"="操作がタイムアウトしました";
"APBToygerFacade:正对手机,更容易成功"="顔をスキャンしやすいように、電話の方を向いてください";
"APBToygerFacade:本次操作失败"="操作に失敗しました";
"APBToygerFacade:网络不给力"="ネットワークの状態が要件を満たしていません";
"APBToygerFacade:登录中断"="ログインが中断されました";
"APBToygerFacade:验证中断"="検証が中断されました";
"APBToygerFacade:刷脸验证"="顔認識による検証";
"APBToygerFacade:请把脸放入框内保持不动"="フレームの内側に顔が入るようにして、動かないでください";
"APBToygerFacade:靠近一点"="近づいてください";
"APBToygerFacade:没有检测到脸"="顔が検出されません";
"APBToygerFacade:再清晰一点"="顔をはっきりさせてください";
"APBToygerFacade:脸部亮一点"="顔を明るくしてください";
"APBToygerFacade:请正对手机"="電話の方を向いてください";
"APBToygerFacade:请露出正脸"="顔の正面を見せてください";
"APBToygerFacade:把脸移入圈内"="顔を円の中に入れてください";
"APBToygerFacade:离远一点"="離れてください";
"APBToygerFacade:请保持不动"="動かないでください";
"APBToygerFacade:请注视屏幕"="画面を見てください";
"APBToygerFacade:眨眨眼"="まばたきしてください";
"APBToygerFacade:蚂蚁佐罗提供技术支持"="";
"APBToygerFacade:选择其他验证方式"="検証方法を変更";
"APBToygerFacade:拿起手机眨眨眼"="まばたきしてください";
"APBToygerFacade:拿起手机向左摇头"="頭を左に";
"APBToygerFacade:拿起手机向右摇头"="頭を右に";
"APBToygerFacade:向左摇头"="頭を左に";
"APBToygerFacade:向右摇头"="頭を右に";
"APBToygerFacade:正在处理"="処理中";
"APBToygerFacade:首次使用,请开通刷脸"="顔認識を有効化して続行します";
"APBToygerFacade:立即开通"="有効化";
"APBToygerFacade:下次再说"="後で";
"APBToygerFacade:请把手机正对面部"="電話の方を向いてください";
"APBToygerFacade:即将开始人脸检测"="顔認識を開始";
"APBToygerFacade:没有认出你"="顔を認識できませんでした";
"APBToygerFacade:未能识别人脸"="顔が検出されません";
"APBToygerFacade:人脸检测中"="顔を認識中です";
"APBToygerFacade:刷脸失败次数过多,请稍后再试"="顔認識が頻繁に実行されています。後でもう一度やり直してください";

View File

@@ -0,0 +1,59 @@
"APBToygerFacade:取消"="취소";
"APBToygerFacade:再试一次"="다시 시도하세요";
"APBToygerFacade:退出"="종료";
"APBToygerFacade:确定"="확인";
"APBToygerFacade:继续"="계속";
"APBToygerFacade:我知道了"="확인";
"APBToygerFacade:其他登录方式"="로그온 방법 전환";
"APBToygerFacade:刷脸失败"="안면 인식에 실패했습니다";
"APBToygerFacade:当前设备不支持刷脸"="귀하의 디바이스는 안면 인식을 지원하지 않습니다";
"APBToygerFacade:当前系统不支持刷脸"="현재 시스템은 안면 인식을 지원하지 않습니다";
"APBToygerFacade:无法启动相机"="카메라 권한이 없습니다";
"APBToygerFacade:请到\“设置-隐私-相机\”开启权限"="설정 > 개인 > 카메라에서 접근 권한을 부여하십시오";
"APBToygerFacade:立即开启"="OK";
"APBToygerFacade:刷脸仅在iOS7及以上系统可用"="iOS 7 및 그 이상의 버전에서만 안면 인식이 지원됩니다";
"APBToygerFacade:系统错误"="시스템 오류";
"APBToygerFacade:确定退出吗?"="정말로 종료하시겠습니까?";
"APBToygerFacade:露个脸就能通过"="얼굴만 보여주시면 됩니다";
"APBToygerFacade:操作超时"="작업 시간이 초과되었습니다";
"APBToygerFacade:正对手机,更容易成功"="얼굴을 더 쉽게 스캔할 수 있도록 휴대전화를 정면으로 바라보세요";
"APBToygerFacade:本次操作失败"="작동에 실패했습니다";
"APBToygerFacade:网络不给力"="네트워크 상태가 요구 사항을 충족하지 않습니다";
"APBToygerFacade:登录中断"="로그온이 중단되었습니다";
"APBToygerFacade:验证中断"="확인이 중단되었습니다";
"APBToygerFacade:刷脸验证"="안면 인식을 통한 인증";
"APBToygerFacade:请把脸放入框内保持不动"="얼굴이 프레임 안으로 들어오도록 위치한 다음 움직이지 말고 가만히 계십시오";
"APBToygerFacade:靠近一点"="더 가까이 움직이세요";
"APBToygerFacade:没有检测到脸"="감지된 얼굴이 없습니다";
"APBToygerFacade:再清晰一点"="얼굴을 좀더 선명하게 만드세요";
"APBToygerFacade:脸部亮一点"="얼굴을 밝게 만드세요";
"APBToygerFacade:请正对手机"="휴대전화를 정면으로 바라보세요";
"APBToygerFacade:请露出正脸"="얼굴의 정면을 보여주세요";
"APBToygerFacade:把脸移入圈内"="얼굴이 원 안에 들어오도록 움직이세요";
"APBToygerFacade:离远一点"="더 멀리 움직이세요";
"APBToygerFacade:请保持不动"="가만히 계십시오";
"APBToygerFacade:请注视屏幕"="화면을 바라보세요";
"APBToygerFacade:眨眨眼"="눈을 깜빡이세요";
"APBToygerFacade:蚂蚁佐罗提供技术支持"="";
"APBToygerFacade:选择其他验证方式"="인증 방법을 변경합니다";
"APBToygerFacade:拿起手机眨眨眼"="눈을 깜빡이세요";
"APBToygerFacade:拿起手机向左摇头"="좌측으로 고개를 돌립니다";
"APBToygerFacade:拿起手机向右摇头"="우측으로 고개를 돌립니다";
"APBToygerFacade:向左摇头"="좌측으로 고개를 돌립니다";
"APBToygerFacade:向右摇头"="우측으로 고개를 돌립니다";
"APBToygerFacade:正在处理"="처리 중";
"APBToygerFacade:首次使用,请开通刷脸"="안면 인식을 활성화하여 계속 진행합니다";
"APBToygerFacade:立即开通"="활성화하기";
"APBToygerFacade:下次再说"="나중에 하기";
"APBToygerFacade:请把手机正对面部"="휴대전화를 정면으로 바라보세요";
"APBToygerFacade:即将开始人脸检测"="안면 인식 시작";
"APBToygerFacade:没有认出你"="안면 인식에 실패했습니다";
"APBToygerFacade:未能识别人脸"="감지된 얼굴이 없습니다";
"APBToygerFacade:人脸检测中"="얼굴 인식 중";
"APBToygerFacade:刷脸失败次数过多,请稍后再试"="안면 인식이 연속으로 실행되었습니다. 나중에 다시 시도하세요";

View File

@@ -0,0 +1,68 @@
/*
zh-HK.strings
APBToygerFacade
Created by shouyi.www on 2017/6/1.
Copyright © 2017年 DTF. All rights reserved.
*/
"APBToygerFacade:取消"="取消";
"APBToygerFacade:再试一次"="再試一次";
"APBToygerFacade:退出"="退出";
"APBToygerFacade:确定"="確定";
"APBToygerFacade:继续"="继续";
"APBToygerFacade:我知道了"="我知道了";
"APBToygerFacade:其他登录方式"="其他登录方式";
"APBToygerFacade:刷脸失败"="刷臉失敗";
"APBToygerFacade:当前设备不支持刷脸"="目前系統不支援刷臉";
"APBToygerFacade:当前系统不支持刷脸"="目前設備不支援刷臉";
"APBToygerFacade:无法启动相机"="無法啟動相機";
"APBToygerFacade:请到\“设置-隐私-相机\”开启权限"="請到“設置-隱私-相機”開啓權限";
"APBToygerFacade:立即开启"="開通權限";
"APBToygerFacade:刷脸仅在iOS7及以上系统可用"="刷脸仅在iOS7及以上系统可用";
"APBToygerFacade:系统错误"="系統錯誤";
"APBToygerFacade:确定退出吗?"="確定退出嗎?";
"APBToygerFacade:露个脸就能通过"="露個臉就能通過";
"APBToygerFacade:操作超时"="操作超時";
"APBToygerFacade:正对手机,更容易成功"="對準手機,更容易成功";
"APBToygerFacade:本次操作失败"="本次操作失敗";
"APBToygerFacade:网络不给力"="網絡異常,請稍後再試";
"APBToygerFacade:登录中断"="登入中斷";
"APBToygerFacade:验证中断"="驗證中斷";
"APBToygerFacade:刷脸验证"="刷臉驗證";
"APBToygerFacade:请把脸放入框内保持不动"="請把臉移入圈內保持不動";
"APBToygerFacade:靠近一点"="靠近一點";
"APBToygerFacade:没有检测到脸"="沒有檢測到臉";
"APBToygerFacade:再清晰一点"="再清晰一點";
"APBToygerFacade:脸部亮一点"="光線再亮點";
"APBToygerFacade:请正对手机"="請正視手機";
"APBToygerFacade:请露出正脸"="請露出正臉";
"APBToygerFacade:把脸移入圈内"="把臉移入框內";
"APBToygerFacade:离远一点"="離遠一點";
"APBToygerFacade:请保持不动"="請保持不動";
"APBToygerFacade:请注视屏幕"="請注視屏幕";
"APBToygerFacade:眨眨眼"="眨眨眼";
"APBToygerFacade:蚂蚁佐罗提供技术支持"="";
"APBToygerFacade:选择其他验证方式"="選擇其他驗證方式";
"APBToygerFacade:拿起手机眨眨眼"="拿起手機,眨眨眼";
"APBToygerFacade:拿起手机向左摇头"="拿著手機,向左搖頭";
"APBToygerFacade:拿起手机向右摇头"="拿著手機,向右搖頭";
"APBToygerFacade:向左摇头"="向左搖頭";
"APBToygerFacade:向右摇头"="向右搖頭";
"APBToygerFacade:正在处理"="正在處理";
"APBToygerFacade:首次使用,请开通刷脸"="首次使用,請開通刷臉";
"APBToygerFacade:立即开通"="立即開通";
"APBToygerFacade:下次再说"="下次再說";
"APBToygerFacade:请把手机正对面部"="請把手機正對面部";
"APBToygerFacade:即将开始人脸检测"="即將開始人臉檢測";
"APBToygerFacade:没有认出你"="沒有認出你";
"APBToygerFacade:未能识别人脸"="未能識別人臉";
"APBToygerFacade:人脸检测中"="人臉檢測中";
"APBToygerFacade:刷脸失败次数过多,请稍后再试"="刷臉失敗次數過多,請稍後再試";

View File

@@ -0,0 +1,68 @@
/*
zh-Hans.strings
APBToygerFacade
Created by shouyi.www on 2017/6/1.
Copyright © 2017年 DTF. All rights reserved.
*/
"APBToygerFacade:取消"="取消";
"APBToygerFacade:再试一次"="再试一次";
"APBToygerFacade:退出"="退出";
"APBToygerFacade:确定"="确定";
"APBToygerFacade:继续"="继续";
"APBToygerFacade:我知道了"="我知道了";
"APBToygerFacade:其他登录方式"="其他登录方式";
"APBToygerFacade:刷脸失败"="刷脸失败";
"APBToygerFacade:当前设备不支持刷脸"="当前设备不支持刷脸";
"APBToygerFacade:当前系统不支持刷脸"="当前系统不支持刷脸";
"APBToygerFacade:无法启动相机"="无法启动相机";
"APBToygerFacade:请到\“设置-隐私-相机\”开启权限"="请到“设置-隐私-相机”开启权限";
"APBToygerFacade:立即开启"="立即开启";
"APBToygerFacade:刷脸仅在iOS8及以上版本可用"="刷脸仅在iOS8及以上版本可用";
"APBToygerFacade:系统错误"="系统错误";
"APBToygerFacade:确定退出吗?"="确定退出吗?";
"APBToygerFacade:露个脸就能通过"="露个脸就能通过";
"APBToygerFacade:操作超时"="操作超时";
"APBToygerFacade:正对手机,更容易成功"="正对手机,更容易成功";
"APBToygerFacade:本次操作失败"="本次操作失败";
"APBToygerFacade:网络不给力"="网络不给力";
"APBToygerFacade:登录中断"="登录中断";
"APBToygerFacade:验证中断"="验证中断";
"APBToygerFacade:刷脸验证"="刷脸验证";
"APBToygerFacade:请把脸放入框内保持不动"="请把脸移入圈内保持不动";
"APBToygerFacade:靠近一点"="靠近一点";
"APBToygerFacade:没有检测到脸"="没有检测到脸";
"APBToygerFacade:再清晰一点"="再清晰一点";
"APBToygerFacade:脸部亮一点"="脸部亮一点";
"APBToygerFacade:请正对手机"="请正对手机";
"APBToygerFacade:请露出正脸"="请露出正脸";
"APBToygerFacade:把脸移入圈内"="把脸移入圈内";
"APBToygerFacade:离远一点"="离远一点";
"APBToygerFacade:请保持不动"="请保持不动";
"APBToygerFacade:请注视屏幕"="请注视屏幕";
"APBToygerFacade:眨眨眼"="眨眨眼";
"APBToygerFacade:蚂蚁佐罗提供技术支持"="";
"APBToygerFacade:选择其他验证方式"="选择其他验证方式";
"APBToygerFacade:拿起手机眨眨眼"="拿起手机,眨眨眼";
"APBToygerFacade:拿起手机向左摇头"="拿起手机,向左摇头";
"APBToygerFacade:拿起手机向右摇头"="拿起手机,向右摇头";
"APBToygerFacade:向左摇头"="向左摇头";
"APBToygerFacade:向右摇头"="向右摇头";
"APBToygerFacade:正在处理"="正在处理";
"APBToygerFacade:首次使用,请开通刷脸"="首次使用,请开通刷脸";
"APBToygerFacade:立即开通"="立即开通";
"APBToygerFacade:下次再说"="下次再说";
"APBToygerFacade:请把手机正对面部"="请把手机正对面部";
"APBToygerFacade:即将开始人脸检测"="即将开始人脸检测";
"APBToygerFacade:没有认出你"="没有认出你";
"APBToygerFacade:未能识别人脸"="未能识别人脸";
"APBToygerFacade:人脸检测中"="人脸检测中";
"APBToygerFacade:刷脸失败次数过多,请稍后再试"="刷脸失败次数过多,请稍后再试";

View File

@@ -0,0 +1,68 @@
/*
zh-Hant.strings
APBToygerFacade
Created by shouyi.www on 2017/6/1.
Copyright © 2017年 DTF. All rights reserved.
*/
"APBToygerFacade:取消"="取消";
"APBToygerFacade:再试一次"="再試一次";
"APBToygerFacade:退出"="退出";
"APBToygerFacade:确定"="確定";
"APBToygerFacade:继续"="繼續";
"APBToygerFacade:我知道了"="我知道了";
"APBToygerFacade:其他登录方式"="其他登入方式";
"APBToygerFacade:刷脸失败"="刷臉失敗";
"APBToygerFacade:当前设备不支持刷脸"="目前設備不支援刷臉服務";
"APBToygerFacade:当前系统不支持刷脸"="当前系统不支持刷脸";
"APBToygerFacade:无法启动相机"="無法啟動相機";
"APBToygerFacade:请到\“设置-隐私-相机\”开启权限"="請到“設置-隱私-相機”開啓權限";
"APBToygerFacade:立即开启"="開通權限";
"APBToygerFacade:刷脸仅在iOS8及以上系统可用"="刷脸仅在iOS8及以上系统可用";
"APBToygerFacade:系统错误"="系統錯誤";
"APBToygerFacade:确定退出吗?"="確定退出嗎?";
"APBToygerFacade:露个脸就能通过"="露個臉就能通過";
"APBToygerFacade:操作超时"="操作超時";
"APBToygerFacade:正对手机,更容易成功"="對準手機,更容易成功";
"APBToygerFacade:本次操作失败"="本次操作失敗";
"APBToygerFacade:网络不给力"="網絡異常,請稍後再試";
"APBToygerFacade:登录中断"="登入中斷";
"APBToygerFacade:验证中断"="驗證中斷";
"APBToygerFacade:刷脸验证"="刷臉驗證";
"APBToygerFacade:请把脸放入框内保持不动"="請把臉移入圈內保持不動";
"APBToygerFacade:靠近一点"="靠近一點";
"APBToygerFacade:没有检测到脸"="沒有檢測到臉";
"APBToygerFacade:再清晰一点"="再清晰一點";
"APBToygerFacade:脸部亮一点"="光線再亮點";
"APBToygerFacade:请正对手机"="請正視手機";
"APBToygerFacade:请露出正脸"="請露出正臉";
"APBToygerFacade:把脸移入圈内"="把臉移入框內";
"APBToygerFacade:离远一点"="離遠一點";
"APBToygerFacade:请保持不动"="請保持不動";
"APBToygerFacade:请注视屏幕"="請注視屏幕";
"APBToygerFacade:眨眨眼"="眨眨眼";
"APBToygerFacade:蚂蚁佐罗提供技术支持"="";
"APBToygerFacade:选择其他验证方式"="選擇其他驗證方式";
"APBToygerFacade:拿起手机眨眨眼"="拿起手機,眨眨眼";
"APBToygerFacade:拿起手机向左摇头"="拿起手機,向左搖頭";
"APBToygerFacade:拿起手机向右摇头"="拿起手機,向右搖頭";
"APBToygerFacade:向左摇头"="向左搖頭";
"APBToygerFacade:向右摇头"="向右搖頭";
"APBToygerFacade:正在处理"="正在處理";
"APBToygerFacade:首次使用,请开通刷脸"="首次使用,請開通刷臉";
"APBToygerFacade:立即开通"="立即開通";
"APBToygerFacade:下次再说"="下次再說";
"APBToygerFacade:请把手机正对面部"="請把手機正對面部";
"APBToygerFacade:即将开始人脸检测"="即將開始人臉檢測";
"APBToygerFacade:没有认出你"="沒有認出你";
"APBToygerFacade:未能识别人脸"="未能識別人臉";
"APBToygerFacade:人脸检测中"="人臉檢測中";
"APBToygerFacade:刷脸失败次数过多,请稍后再试"="刷臉失敗次數過多,請稍後再試";

View File

@@ -0,0 +1,68 @@
/*
en.strings
APBToygerFacade
Created by shouyi.www on 2017/6/1.
Copyright © 2017年 DTF. All rights reserved.
*/
"APBToygerFacade:取消"="Cancel";
"APBToygerFacade:再试一次"="Try Again";
"APBToygerFacade:退出"="Quit";
"APBToygerFacade:确定"="OK";
"APBToygerFacade:继续"="Continue";
"APBToygerFacade:我知道了"="Got it";
"APBToygerFacade:其他登录方式"="Another login method";
"APBToygerFacade:刷脸失败"="Face scan failed";
"APBToygerFacade:当前设备不支持刷脸"="Face scan not supported on your device";
"APBToygerFacade:当前系统不支持刷脸"="Face scan not supported on your device system";
"APBToygerFacade:无法启动相机"="No camera permission";
"APBToygerFacade:请到\“设置-隐私-相机\”开启权限"="Please allow to access your camera in \"Settings\"-\"Privacy\"-\"Camera\"";
"APBToygerFacade:立即开启"="OK";
"APBToygerFacade:刷脸仅在iOS7及以上系统可用"="Face scan is only available on iOS8 or above";
"APBToygerFacade:系统错误"="System error";
"APBToygerFacade:确定退出吗?"="Are you sure to quit face scan?";
"APBToygerFacade:露个脸就能通过"="You can succeed by simply showing your face";
"APBToygerFacade:操作超时"="Time out";
"APBToygerFacade:正对手机,更容易成功"="Face straight at the phone and ensure you have enough light";
"APBToygerFacade:提示:正对手机,更容易成功"="Face straight at the phone and ensure you have enough light";
"APBToygerFacade:本次操作失败"="Sorry, face scan failed";
"APBToygerFacade:网络不给力"="Network connection failed";
"APBToygerFacade:登录中断"="Login interrupted";
"APBToygerFacade:验证中断"="Face scan interrupted";
"APBToygerFacade:刷脸验证"="Face Scan";
"APBToygerFacade:请把脸放入框内保持不动"="Put your face into the frame";
"APBToygerFacade:靠近一点"="Move closer";
"APBToygerFacade:没有检测到脸"="No face";
"APBToygerFacade:再清晰一点"="Face not clear";
"APBToygerFacade:脸部亮一点"="More light";
"APBToygerFacade:请正对手机"="No face";
"APBToygerFacade:把脸移入圈内"="No face";
"APBToygerFacade:离远一点"="Move farther";
"APBToygerFacade:请保持不动"="Stay still";
"APBToygerFacade:请注视屏幕"="Open your eyes";
"APBToygerFacade:眨眨眼"="Blink";
"APBToygerFacade:蚂蚁佐罗提供技术支持"="";
"APBToygerFacade:选择其他验证方式"="Use a different verification method";
"APBToygerFacade:拿起手机眨眨眼"="Blink";
"APBToygerFacade:拿起手机向左摇头"="Turn Head Left";
"APBToygerFacade:拿起手机向右摇头"="Turn Head Right";
"APBToygerFacade:向左摇头"="Turn Head Left";
"APBToygerFacade:向右摇头"="Turn Head Right";
"APBToygerFacade:正在处理"="Processing";
"APBToygerFacade:首次使用,请开通刷脸"="For the first time use, please enable Face Scan";
"APBToygerFacade:立即开通"="Enable";
"APBToygerFacade:下次再说"="Later";
"APBToygerFacade:请把手机正对面部"="Face straight at the phone";
"APBToygerFacade:即将开始人脸检测"="Get ready for face recognition";
"APBToygerFacade:没有认出你"="Face scan failed";
"APBToygerFacade:未能识别人脸"="Face not detected";
"APBToygerFacade:人脸检测中"="Face Scan";
"APBToygerFacade:刷脸失败次数过多,请稍后再试"="Too many failed attempts, please try again later";

View File

@@ -0,0 +1,59 @@
"APBToygerFacade:取消"="Batalkan";
"APBToygerFacade:再试一次"="Harap coba lagi";
"APBToygerFacade:退出"="Keluar";
"APBToygerFacade:确定"="OK";
"APBToygerFacade:继续"="Lanjutkan";
"APBToygerFacade:我知道了"="OK";
"APBToygerFacade:其他登录方式"="Ubah Metode Logon";
"APBToygerFacade:刷脸失败"="Pengenalan wajah gagal";
"APBToygerFacade:当前设备不支持刷脸"="Perangkat Anda tidak mendukung pengenalan wajah";
"APBToygerFacade:当前系统不支持刷脸"="Sistem saat ini tidak mendukung pengenalan wajah";
"APBToygerFacade:无法启动相机"="Tidak Memiliki Izin Akses Kamera";
"APBToygerFacade:请到\“设置-隐私-相机\”开启权限"="Buka Pengaturan > Privasi > Kamera dan izinkan akses";
"APBToygerFacade:立即开启"="OK";
"APBToygerFacade:刷脸仅在iOS7及以上系统可用"="Hanya iOS 7 dan setelahnya yang mendukung pengenalan wajah";
"APBToygerFacade:系统错误"="Terjadi Kesalahan Sistem";
"APBToygerFacade:确定退出吗?"="Apakah Anda yakin ingin keluar?";
"APBToygerFacade:露个脸就能通过"="Anda hanya perlu memperlihatkan wajah Anda";
"APBToygerFacade:操作超时"="Waktu operasi habis";
"APBToygerFacade:正对手机,更容易成功"="Arahkan wajah lurus menghadap ponsel untuk membuat wajah Anda lebih mudah dipindai";
"APBToygerFacade:本次操作失败"="Operasi gagal";
"APBToygerFacade:网络不给力"="Kondisi jaringan tidak memenuhi persyaratan";
"APBToygerFacade:登录中断"="Logon Terganggu";
"APBToygerFacade:验证中断"="Verifikasi terputus";
"APBToygerFacade:刷脸验证"="Verifikasi dengan Pengenalan Wajah";
"APBToygerFacade:请把脸放入框内保持不动"="Posisikan wajah Anda di dalam bingkai dan jangan bergerak";
"APBToygerFacade:靠近一点"="Harap dekatkan wajah";
"APBToygerFacade:没有检测到脸"="Tidak ada wajah terdeteksi";
"APBToygerFacade:再清晰一点"="Perjelas wajah Anda";
"APBToygerFacade:脸部亮一点"="Terangi wajah Anda";
"APBToygerFacade:请正对手机"="Arahkan wajah lurus menghadap ponsel";
"APBToygerFacade:请露出正脸"="Tunjukkan bagian depan wajah Anda";
"APBToygerFacade:把脸移入圈内"="Posisikan wajah pada lingkaran";
"APBToygerFacade:离远一点"="Harap jauhkan wajah";
"APBToygerFacade:请保持不动"="Tetap tenang";
"APBToygerFacade:请注视屏幕"="Lihat layar";
"APBToygerFacade:眨眨眼"="Harap kedipkan mata";
"APBToygerFacade:蚂蚁佐罗提供技术支持"="";
"APBToygerFacade:选择其他验证方式"="Ubah Metode Verifikasi";
"APBToygerFacade:拿起手机眨眨眼"="Harap kedipkan mata";
"APBToygerFacade:拿起手机向左摇头"="Harap menoleh ke kiri";
"APBToygerFacade:拿起手机向右摇头"="Harap menoleh ke kanan";
"APBToygerFacade:向左摇头"="Harap menoleh ke kiri";
"APBToygerFacade:向右摇头"="Harap menoleh ke kanan";
"APBToygerFacade:正在处理"="Memproses";
"APBToygerFacade:首次使用,请开通刷脸"="Aktifkan pengenalan wajah untuk melanjutkan";
"APBToygerFacade:立即开通"="Aktifkan";
"APBToygerFacade:下次再说"="Lain Kali";
"APBToygerFacade:请把手机正对面部"="Arahkan wajah lurus menghadap ponsel";
"APBToygerFacade:即将开始人脸检测"="Memulai pengenalan wajah";
"APBToygerFacade:没有认出你"="Pengenalan wajah gagal";
"APBToygerFacade:未能识别人脸"="Tidak ada wajah terdeteksi";
"APBToygerFacade:人脸检测中"="Pengenalan wajah dalam proses";
"APBToygerFacade:刷脸失败次数过多,请稍后再试"="Pengenalan wajah terlalu sering dilakukan. Harap coba lagi nanti";

View File

@@ -0,0 +1,59 @@
"APBToygerFacade:取消"="キャンセル";
"APBToygerFacade:再试一次"="もう一度お試しください";
"APBToygerFacade:退出"="終了";
"APBToygerFacade:确定"="OK";
"APBToygerFacade:继续"="続行";
"APBToygerFacade:我知道了"="OK";
"APBToygerFacade:其他登录方式"="ログイン方法を切り替え";
"APBToygerFacade:刷脸失败"="顔を認識できませんでした";
"APBToygerFacade:当前设备不支持刷脸"="お使いのデバイスは顔認識をサポートしていません";
"APBToygerFacade:当前系统不支持刷脸"="顔認識をサポートしていないシステムです";
"APBToygerFacade:无法启动相机"="カメラにアクセスできません";
"APBToygerFacade:请到\“设置-隐私-相机\”开启权限"="[設定] > [プライバシー] > [カメラ] に移動し、アクセスを許可してください";
"APBToygerFacade:立即开启"="OK";
"APBToygerFacade:刷脸仅在iOS7及以上系统可用"="顔認識は iOS 7 以降でサポートされています";
"APBToygerFacade:系统错误"="システムエラー";
"APBToygerFacade:确定退出吗?"="終了してもよろしいですか";
"APBToygerFacade:露个脸就能通过"="顔を見せるだけです";
"APBToygerFacade:操作超时"="操作がタイムアウトしました";
"APBToygerFacade:正对手机,更容易成功"="顔をスキャンしやすいように、電話の方を向いてください";
"APBToygerFacade:本次操作失败"="操作に失敗しました";
"APBToygerFacade:网络不给力"="ネットワークの状態が要件を満たしていません";
"APBToygerFacade:登录中断"="ログインが中断されました";
"APBToygerFacade:验证中断"="検証が中断されました";
"APBToygerFacade:刷脸验证"="顔認識による検証";
"APBToygerFacade:请把脸放入框内保持不动"="フレームの内側に顔が入るようにして、動かないでください";
"APBToygerFacade:靠近一点"="近づいてください";
"APBToygerFacade:没有检测到脸"="顔が検出されません";
"APBToygerFacade:再清晰一点"="顔をはっきりさせてください";
"APBToygerFacade:脸部亮一点"="顔を明るくしてください";
"APBToygerFacade:请正对手机"="電話の方を向いてください";
"APBToygerFacade:请露出正脸"="顔の正面を見せてください";
"APBToygerFacade:把脸移入圈内"="顔を円の中に入れてください";
"APBToygerFacade:离远一点"="離れてください";
"APBToygerFacade:请保持不动"="動かないでください";
"APBToygerFacade:请注视屏幕"="画面を見てください";
"APBToygerFacade:眨眨眼"="まばたきしてください";
"APBToygerFacade:蚂蚁佐罗提供技术支持"="";
"APBToygerFacade:选择其他验证方式"="検証方法を変更";
"APBToygerFacade:拿起手机眨眨眼"="まばたきしてください";
"APBToygerFacade:拿起手机向左摇头"="頭を左に";
"APBToygerFacade:拿起手机向右摇头"="頭を右に";
"APBToygerFacade:向左摇头"="頭を左に";
"APBToygerFacade:向右摇头"="頭を右に";
"APBToygerFacade:正在处理"="処理中";
"APBToygerFacade:首次使用,请开通刷脸"="顔認識を有効化して続行します";
"APBToygerFacade:立即开通"="有効化";
"APBToygerFacade:下次再说"="後で";
"APBToygerFacade:请把手机正对面部"="電話の方を向いてください";
"APBToygerFacade:即将开始人脸检测"="顔認識を開始";
"APBToygerFacade:没有认出你"="顔を認識できませんでした";
"APBToygerFacade:未能识别人脸"="顔が検出されません";
"APBToygerFacade:人脸检测中"="顔を認識中です";
"APBToygerFacade:刷脸失败次数过多,请稍后再试"="顔認識が頻繁に実行されています。後でもう一度やり直してください";

View File

@@ -0,0 +1,59 @@
"APBToygerFacade:取消"="취소";
"APBToygerFacade:再试一次"="다시 시도하세요";
"APBToygerFacade:退出"="종료";
"APBToygerFacade:确定"="확인";
"APBToygerFacade:继续"="계속";
"APBToygerFacade:我知道了"="확인";
"APBToygerFacade:其他登录方式"="로그온 방법 전환";
"APBToygerFacade:刷脸失败"="안면 인식에 실패했습니다";
"APBToygerFacade:当前设备不支持刷脸"="귀하의 디바이스는 안면 인식을 지원하지 않습니다";
"APBToygerFacade:当前系统不支持刷脸"="현재 시스템은 안면 인식을 지원하지 않습니다";
"APBToygerFacade:无法启动相机"="카메라 권한이 없습니다";
"APBToygerFacade:请到\“设置-隐私-相机\”开启权限"="설정 > 개인 > 카메라에서 접근 권한을 부여하십시오";
"APBToygerFacade:立即开启"="OK";
"APBToygerFacade:刷脸仅在iOS7及以上系统可用"="iOS 7 및 그 이상의 버전에서만 안면 인식이 지원됩니다";
"APBToygerFacade:系统错误"="시스템 오류";
"APBToygerFacade:确定退出吗?"="정말로 종료하시겠습니까?";
"APBToygerFacade:露个脸就能通过"="얼굴만 보여주시면 됩니다";
"APBToygerFacade:操作超时"="작업 시간이 초과되었습니다";
"APBToygerFacade:正对手机,更容易成功"="얼굴을 더 쉽게 스캔할 수 있도록 휴대전화를 정면으로 바라보세요";
"APBToygerFacade:本次操作失败"="작동에 실패했습니다";
"APBToygerFacade:网络不给力"="네트워크 상태가 요구 사항을 충족하지 않습니다";
"APBToygerFacade:登录中断"="로그온이 중단되었습니다";
"APBToygerFacade:验证中断"="확인이 중단되었습니다";
"APBToygerFacade:刷脸验证"="안면 인식을 통한 인증";
"APBToygerFacade:请把脸放入框内保持不动"="얼굴이 프레임 안으로 들어오도록 위치한 다음 움직이지 말고 가만히 계십시오";
"APBToygerFacade:靠近一点"="더 가까이 움직이세요";
"APBToygerFacade:没有检测到脸"="감지된 얼굴이 없습니다";
"APBToygerFacade:再清晰一点"="얼굴을 좀더 선명하게 만드세요";
"APBToygerFacade:脸部亮一点"="얼굴을 밝게 만드세요";
"APBToygerFacade:请正对手机"="휴대전화를 정면으로 바라보세요";
"APBToygerFacade:请露出正脸"="얼굴의 정면을 보여주세요";
"APBToygerFacade:把脸移入圈内"="얼굴이 원 안에 들어오도록 움직이세요";
"APBToygerFacade:离远一点"="더 멀리 움직이세요";
"APBToygerFacade:请保持不动"="가만히 계십시오";
"APBToygerFacade:请注视屏幕"="화면을 바라보세요";
"APBToygerFacade:眨眨眼"="눈을 깜빡이세요";
"APBToygerFacade:蚂蚁佐罗提供技术支持"="";
"APBToygerFacade:选择其他验证方式"="인증 방법을 변경합니다";
"APBToygerFacade:拿起手机眨眨眼"="눈을 깜빡이세요";
"APBToygerFacade:拿起手机向左摇头"="좌측으로 고개를 돌립니다";
"APBToygerFacade:拿起手机向右摇头"="우측으로 고개를 돌립니다";
"APBToygerFacade:向左摇头"="좌측으로 고개를 돌립니다";
"APBToygerFacade:向右摇头"="우측으로 고개를 돌립니다";
"APBToygerFacade:正在处理"="처리 중";
"APBToygerFacade:首次使用,请开通刷脸"="안면 인식을 활성화하여 계속 진행합니다";
"APBToygerFacade:立即开通"="활성화하기";
"APBToygerFacade:下次再说"="나중에 하기";
"APBToygerFacade:请把手机正对面部"="휴대전화를 정면으로 바라보세요";
"APBToygerFacade:即将开始人脸检测"="안면 인식 시작";
"APBToygerFacade:没有认出你"="안면 인식에 실패했습니다";
"APBToygerFacade:未能识别人脸"="감지된 얼굴이 없습니다";
"APBToygerFacade:人脸检测中"="얼굴 인식 중";
"APBToygerFacade:刷脸失败次数过多,请稍后再试"="안면 인식이 연속으로 실행되었습니다. 나중에 다시 시도하세요";

View File

@@ -0,0 +1,68 @@
/*
zh-HK.strings
APBToygerFacade
Created by shouyi.www on 2017/6/1.
Copyright © 2017年 DTF. All rights reserved.
*/
"APBToygerFacade:取消"="取消";
"APBToygerFacade:再试一次"="再試一次";
"APBToygerFacade:退出"="退出";
"APBToygerFacade:确定"="確定";
"APBToygerFacade:继续"="继续";
"APBToygerFacade:我知道了"="我知道了";
"APBToygerFacade:其他登录方式"="其他登录方式";
"APBToygerFacade:刷脸失败"="刷臉失敗";
"APBToygerFacade:当前设备不支持刷脸"="目前系統不支援刷臉";
"APBToygerFacade:当前系统不支持刷脸"="目前設備不支援刷臉";
"APBToygerFacade:无法启动相机"="無法啟動相機";
"APBToygerFacade:请到\“设置-隐私-相机\”开启权限"="請到“設置-隱私-相機”開啓權限";
"APBToygerFacade:立即开启"="開通權限";
"APBToygerFacade:刷脸仅在iOS7及以上系统可用"="刷脸仅在iOS7及以上系统可用";
"APBToygerFacade:系统错误"="系統錯誤";
"APBToygerFacade:确定退出吗?"="確定退出嗎?";
"APBToygerFacade:露个脸就能通过"="露個臉就能通過";
"APBToygerFacade:操作超时"="操作超時";
"APBToygerFacade:正对手机,更容易成功"="對準手機,更容易成功";
"APBToygerFacade:本次操作失败"="本次操作失敗";
"APBToygerFacade:网络不给力"="網絡異常,請稍後再試";
"APBToygerFacade:登录中断"="登入中斷";
"APBToygerFacade:验证中断"="驗證中斷";
"APBToygerFacade:刷脸验证"="刷臉驗證";
"APBToygerFacade:请把脸放入框内保持不动"="請把臉移入圈內保持不動";
"APBToygerFacade:靠近一点"="靠近一點";
"APBToygerFacade:没有检测到脸"="沒有檢測到臉";
"APBToygerFacade:再清晰一点"="再清晰一點";
"APBToygerFacade:脸部亮一点"="光線再亮點";
"APBToygerFacade:请正对手机"="請正視手機";
"APBToygerFacade:请露出正脸"="請露出正臉";
"APBToygerFacade:把脸移入圈内"="把臉移入框內";
"APBToygerFacade:离远一点"="離遠一點";
"APBToygerFacade:请保持不动"="請保持不動";
"APBToygerFacade:请注视屏幕"="請注視屏幕";
"APBToygerFacade:眨眨眼"="眨眨眼";
"APBToygerFacade:蚂蚁佐罗提供技术支持"="";
"APBToygerFacade:选择其他验证方式"="選擇其他驗證方式";
"APBToygerFacade:拿起手机眨眨眼"="拿起手機,眨眨眼";
"APBToygerFacade:拿起手机向左摇头"="拿著手機,向左搖頭";
"APBToygerFacade:拿起手机向右摇头"="拿著手機,向右搖頭";
"APBToygerFacade:向左摇头"="向左搖頭";
"APBToygerFacade:向右摇头"="向右搖頭";
"APBToygerFacade:正在处理"="正在處理";
"APBToygerFacade:首次使用,请开通刷脸"="首次使用,請開通刷臉";
"APBToygerFacade:立即开通"="立即開通";
"APBToygerFacade:下次再说"="下次再說";
"APBToygerFacade:请把手机正对面部"="請把手機正對面部";
"APBToygerFacade:即将开始人脸检测"="即將開始人臉檢測";
"APBToygerFacade:没有认出你"="沒有認出你";
"APBToygerFacade:未能识别人脸"="未能識別人臉";
"APBToygerFacade:人脸检测中"="人臉檢測中";
"APBToygerFacade:刷脸失败次数过多,请稍后再试"="刷臉失敗次數過多,請稍後再試";

View File

@@ -0,0 +1,68 @@
/*
zh-Hans.strings
APBToygerFacade
Created by shouyi.www on 2017/6/1.
Copyright © 2017年 DTF. All rights reserved.
*/
"APBToygerFacade:取消"="取消";
"APBToygerFacade:再试一次"="再试一次";
"APBToygerFacade:退出"="退出";
"APBToygerFacade:确定"="确定";
"APBToygerFacade:继续"="继续";
"APBToygerFacade:我知道了"="我知道了";
"APBToygerFacade:其他登录方式"="其他登录方式";
"APBToygerFacade:刷脸失败"="刷脸失败";
"APBToygerFacade:当前设备不支持刷脸"="当前设备不支持刷脸";
"APBToygerFacade:当前系统不支持刷脸"="当前系统不支持刷脸";
"APBToygerFacade:无法启动相机"="无法启动相机";
"APBToygerFacade:请到\“设置-隐私-相机\”开启权限"="请到“设置-隐私-相机”开启权限";
"APBToygerFacade:立即开启"="立即开启";
"APBToygerFacade:刷脸仅在iOS8及以上版本可用"="刷脸仅在iOS8及以上版本可用";
"APBToygerFacade:系统错误"="系统错误";
"APBToygerFacade:确定退出吗?"="确定退出吗?";
"APBToygerFacade:露个脸就能通过"="露个脸就能通过";
"APBToygerFacade:操作超时"="操作超时";
"APBToygerFacade:正对手机,更容易成功"="正对手机,更容易成功";
"APBToygerFacade:本次操作失败"="本次操作失败";
"APBToygerFacade:网络不给力"="网络不给力";
"APBToygerFacade:登录中断"="登录中断";
"APBToygerFacade:验证中断"="验证中断";
"APBToygerFacade:刷脸验证"="刷脸验证";
"APBToygerFacade:请把脸放入框内保持不动"="请把脸移入圈内保持不动";
"APBToygerFacade:靠近一点"="靠近一点";
"APBToygerFacade:没有检测到脸"="没有检测到脸";
"APBToygerFacade:再清晰一点"="再清晰一点";
"APBToygerFacade:脸部亮一点"="脸部亮一点";
"APBToygerFacade:请正对手机"="请正对手机";
"APBToygerFacade:请露出正脸"="请露出正脸";
"APBToygerFacade:把脸移入圈内"="把脸移入圈内";
"APBToygerFacade:离远一点"="离远一点";
"APBToygerFacade:请保持不动"="请保持不动";
"APBToygerFacade:请注视屏幕"="请注视屏幕";
"APBToygerFacade:眨眨眼"="眨眨眼";
"APBToygerFacade:蚂蚁佐罗提供技术支持"="";
"APBToygerFacade:选择其他验证方式"="选择其他验证方式";
"APBToygerFacade:拿起手机眨眨眼"="拿起手机,眨眨眼";
"APBToygerFacade:拿起手机向左摇头"="拿起手机,向左摇头";
"APBToygerFacade:拿起手机向右摇头"="拿起手机,向右摇头";
"APBToygerFacade:向左摇头"="向左摇头";
"APBToygerFacade:向右摇头"="向右摇头";
"APBToygerFacade:正在处理"="正在处理";
"APBToygerFacade:首次使用,请开通刷脸"="首次使用,请开通刷脸";
"APBToygerFacade:立即开通"="立即开通";
"APBToygerFacade:下次再说"="下次再说";
"APBToygerFacade:请把手机正对面部"="请把手机正对面部";
"APBToygerFacade:即将开始人脸检测"="即将开始人脸检测";
"APBToygerFacade:没有认出你"="没有认出你";
"APBToygerFacade:未能识别人脸"="未能识别人脸";
"APBToygerFacade:人脸检测中"="人脸检测中";
"APBToygerFacade:刷脸失败次数过多,请稍后再试"="刷脸失败次数过多,请稍后再试";

View File

@@ -0,0 +1,68 @@
/*
zh-Hant.strings
APBToygerFacade
Created by shouyi.www on 2017/6/1.
Copyright © 2017年 DTF. All rights reserved.
*/
"APBToygerFacade:取消"="取消";
"APBToygerFacade:再试一次"="再試一次";
"APBToygerFacade:退出"="退出";
"APBToygerFacade:确定"="確定";
"APBToygerFacade:继续"="繼續";
"APBToygerFacade:我知道了"="我知道了";
"APBToygerFacade:其他登录方式"="其他登入方式";
"APBToygerFacade:刷脸失败"="刷臉失敗";
"APBToygerFacade:当前设备不支持刷脸"="目前設備不支援刷臉服務";
"APBToygerFacade:当前系统不支持刷脸"="当前系统不支持刷脸";
"APBToygerFacade:无法启动相机"="無法啟動相機";
"APBToygerFacade:请到\“设置-隐私-相机\”开启权限"="請到“設置-隱私-相機”開啓權限";
"APBToygerFacade:立即开启"="開通權限";
"APBToygerFacade:刷脸仅在iOS8及以上系统可用"="刷脸仅在iOS8及以上系统可用";
"APBToygerFacade:系统错误"="系統錯誤";
"APBToygerFacade:确定退出吗?"="確定退出嗎?";
"APBToygerFacade:露个脸就能通过"="露個臉就能通過";
"APBToygerFacade:操作超时"="操作超時";
"APBToygerFacade:正对手机,更容易成功"="對準手機,更容易成功";
"APBToygerFacade:本次操作失败"="本次操作失敗";
"APBToygerFacade:网络不给力"="網絡異常,請稍後再試";
"APBToygerFacade:登录中断"="登入中斷";
"APBToygerFacade:验证中断"="驗證中斷";
"APBToygerFacade:刷脸验证"="刷臉驗證";
"APBToygerFacade:请把脸放入框内保持不动"="請把臉移入圈內保持不動";
"APBToygerFacade:靠近一点"="靠近一點";
"APBToygerFacade:没有检测到脸"="沒有檢測到臉";
"APBToygerFacade:再清晰一点"="再清晰一點";
"APBToygerFacade:脸部亮一点"="光線再亮點";
"APBToygerFacade:请正对手机"="請正視手機";
"APBToygerFacade:请露出正脸"="請露出正臉";
"APBToygerFacade:把脸移入圈内"="把臉移入框內";
"APBToygerFacade:离远一点"="離遠一點";
"APBToygerFacade:请保持不动"="請保持不動";
"APBToygerFacade:请注视屏幕"="請注視屏幕";
"APBToygerFacade:眨眨眼"="眨眨眼";
"APBToygerFacade:蚂蚁佐罗提供技术支持"="";
"APBToygerFacade:选择其他验证方式"="選擇其他驗證方式";
"APBToygerFacade:拿起手机眨眨眼"="拿起手機,眨眨眼";
"APBToygerFacade:拿起手机向左摇头"="拿起手機,向左搖頭";
"APBToygerFacade:拿起手机向右摇头"="拿起手機,向右搖頭";
"APBToygerFacade:向左摇头"="向左搖頭";
"APBToygerFacade:向右摇头"="向右搖頭";
"APBToygerFacade:正在处理"="正在處理";
"APBToygerFacade:首次使用,请开通刷脸"="首次使用,請開通刷臉";
"APBToygerFacade:立即开通"="立即開通";
"APBToygerFacade:下次再说"="下次再說";
"APBToygerFacade:请把手机正对面部"="請把手機正對面部";
"APBToygerFacade:即将开始人脸检测"="即將開始人臉檢測";
"APBToygerFacade:没有认出你"="沒有認出你";
"APBToygerFacade:未能识别人脸"="未能識別人臉";
"APBToygerFacade:人脸检测中"="人臉檢測中";
"APBToygerFacade:刷脸失败次数过多,请稍后再试"="刷臉失敗次數過多,請稍後再試";

View File

@@ -0,0 +1,75 @@
//
// APFBaseTask.h
// APFaceDetectBiz
//
// Created by 晗羽 on 8/25/16.
// Copyright © 2016 DTF. All rights reserved.
//
#import <UIKit/UIKit.h>
#import <Foundation/Foundation.h>
#import <BioAuthEngine/IBioAuthTask.h>
#import <BioAuthEngine/APBTaskContext.h>
#import <BioAuthEngine/APBLogger.h>
#import <BioAuthEngine/AFEAlertView.h>
#import <APBToygerFacade/APBToygerUtils.h>
#import <BioAuthEngine/APBToygerRemoteConfig.h>
#import <BioAuthEngine/APBToygerBehavlogManager.h>
//#import "APBToygerDataCenter.h"
#import <BioAuthEngine/BioAuthCommonSetting.h>
#import <APBToygerFacade/APBToygerViewController.h>
@class DTFLogMonitor,APBToygerDataCenter;
typedef void (^APFAlertExtraAction)();
@interface APBToygerBaseTask : NSObject <IBioAuthTask>
//协议定义的属性
@property(nonatomic, copy)NSString *taskName; //任务名
@property(nonatomic, strong)APBTaskContext *context; //任务数据
@property(nonatomic, weak)NSMutableDictionary *pipeInfo; //共享数据
//公用属性
@property(nonatomic, weak)UIViewController *parentViewController; //父viewController
@property(nonatomic, weak)APBToygerViewController *currentViewController; //当前viewController
@property(nonatomic, weak)UIView *currentView; //当前显示的界面
@property(nonatomic, copy)commandBlock bioCommandBlock; //对框架进行操作的block
@property(nonatomic, strong)APBToygerRemoteConfig * bisConfig; //bis下放的配置参数
@property(nonatomic, strong)APBToygerDataCenter * dataCenter; //行为日志
@property(nonatomic, copy)NSString *bisToken; //bisToken
@property(nonatomic, assign)NSInteger currentRetryCnt; //当前重试次数
@property(nonatomic, assign)BOOL soundStatus; //当前声音状态
//@property(nonatomic, assign)BOOL isLoginMode; //当前场景是否为登录场景
@property(nonatomic, assign)BOOL isMYBank; //是否是网商银行
@property(nonatomic, strong)DTFLogMonitor *monitor; //埋点
- (void)exitWithResult:(APBResultType)result failReason:(NSString *)failReason retCodeSub:(NSString *)retCodeSub retMessageSub:(NSString *)retMessageSub;
/**
* 用户选择重试
*/
- (void)handleRetryActionWithScene:(NSString *)scene
buttonTitle:(NSString *)title
extAction:(APFAlertExtraAction)action;
/**
* 用户选择退出
*/
- (void)handleExitActionWithScene:(NSString *)scene
buttonTitle:(NSString *)title
exitReason:(APBResultType)reason
extAction:(APFAlertExtraAction)action;
/**
* 用户选择继续
*/
- (void)handleContinueActionWithScene:(NSString *)scene
buttonTitle:(NSString *)title
extaction:(APFAlertExtraAction)action;
/**
* 消除VC的方式加菲和樱桃不同
*/
- (void)dismissViewControllerAnimated: (BOOL)flag completion:(void (^ __nullable)(void))completion;
@end

View File

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

View File

@@ -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

View File

@@ -0,0 +1,36 @@
//
// APFaceFacade.h
// APFaceDetectBiz
//
// Created by 晗羽 on 8/25/16.
// Copyright © 2016 DTF. All rights reserved.
//
#import <Foundation/Foundation.h>
#import <BioAuthEngine/IBioAuthFactor.h>
@interface APBToygerFacade : NSObject <IBioAuthFactor>
+(void)setTokenid:(NSString*)info;
+(NSString*)getTokenid;
@end
#import <APBToygerFacade/APBToygerCherryDetectTask.h>
#import <APBToygerFacade/APBToygerBaseTask.h>
#import <APBToygerFacade/APBToygerPresentTask.h>
#import <APBToygerFacade/APBToygerCherryUploadTask.h>
#import <APBToygerFacade/APBToygerUtils.h>
#import <APBToygerFacade/APBToygerUploadTask.h>
#import <APBToygerFacade/APBToygerFacadeDefine.h>
#import <BioAuthEngine/APBToygerRemoteConfig.h>
#import <BioAuthEngine/APBToygerBehavlogManager.h>
#import <BioAuthEngine/APBToygerDataCenter.h>
#import <APBToygerFacade/APBToygerViewController.h>
#import <UIKit/UIKit.h>
//! Project version number for APBToygerFacade.
FOUNDATION_EXPORT double APBToygerFacadeVersionNumber;
//! Project version string for APBToygerFacade.
FOUNDATION_EXPORT const unsigned char APBToygerFacadeVersionString[];

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -0,0 +1,61 @@
//
// APFUtils.h
// APFaceDetectBiz
//
// Created by 晗羽 on 8/25/16.
// Copyright © 2016 DTF. All rights reserved.
//
#import <Foundation/Foundation.h>
#import <APBToygerFacade/APBToygerFacadeDefine.h>
//#import "APFaceDetectBizFacade.h"
//主线程同步操作
#define SYNC_MAINTHREAD_BEGIN_APBT [APBToygerUtils APBToygerMainThread:^{
#define SYNC_MAINTHREAD_END_APBT }];
#define LOCK(locker, ...) dispatch_semaphore_wait(locker, DISPATCH_TIME_FOREVER); \
__VA_ARGS__; \
dispatch_semaphore_signal(locker);
@class MGLivenessDetectionFrameEncodedData;
@interface APBToygerUtils : NSObject
+ (void)APBToygerMainThread:(dispatch_block_t)block;
+ (NSString *)getTextContentforKey:(NSString*)keyName;
+ (NSString *)localizedTextForKey:(NSString *)key;
+ (NSBundle *)getBundle;
+ (int)getCodefrom:(NSString *)bisToken withLength:(int)codeLen;
//+ (NSString *)getActionNoticeByActionType:(APFLiveActionType) actionType;
//检查文件是否存在
+ (BOOL) checkFileunderPath:(NSString *) filePath;
//写入文件
//如果文件存在,不重写,返回失败。
//如果文件不再在,写入,返回写入结果
+ (BOOL) writeFileunderPath:(NSString *) filePath;
//删除文件
+ (BOOL) removeFileunderPath:(NSString *) filePath;
//随机文件名
+ (NSString *)randomString:(NSInteger)len;
+ (NSString *)localizedStringForKey:(NSString *)key;
+ (UIImage *)loadImageFromBundleNamed:(NSString *)imageName;
+ (UIWindow *)lastWindow;
+ (UIImage *)imageWithImage:(UIImage *)image scaledToSize:(CGSize)newSize;
@end

View File

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

View File

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

View File

@@ -0,0 +1,34 @@
//
// AliyunFaaceAuthFacade.h
// AliyunFaceAuthFacade
//
// Created by 汪澌哲 on 2022/11/21.
// Copyright © 2022 Alipay. All rights reserved.
//
#import <Foundation/Foundation.h>
#import <DTFIdentityManager/DTFSdk.h>
#import <DTFIdentityManager/DTFIdentityManager.h>
#import <DTFIdentityManager/DTFConstant.h>
NS_ASSUME_NONNULL_BEGIN
@interface AliyunFaceAuthFacade : NSObject
+ (void)init;
+ (void)initSDK;
/* IPV6的初始化接口 只有你的网络环境强制要求是IPV6的时候才调用initIPv6。
*/
+ (void)initIPv6;
+ (NSDictionary *)getMetaInfo;
+ (void)verifyWith:(NSString *)zimId
extParams:(NSDictionary *)params
onCompletion:(ZIMCallback)callback;
@end
NS_ASSUME_NONNULL_END

View File

@@ -0,0 +1,28 @@
//
// 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
-(void)bizSendContent:(NSDictionary*)serviceParameters completionBlock:(void (^) (BOOL success,NSURLResponse *response, NSData *data))completionBlock;
-(void)verifySendContent:(NSDictionary*)serviceParameters completionBlock:(void (^) (BOOL success,NSURLResponse *response, NSData *data))completionBlock;
-(void)sendInitFaceVerifyContent:(NSDictionary*)serviceParameters keyName:(NSString*)name initKey:(NSString *)initKey initSimpleValue:(NSString *)initSimpleValue completionBlock:(void (^) (BOOL success,NSURLResponse *response, NSData *data))completionBlock;
-(void)sendOCRContent:(NSDictionary*)serviceParameters completionBlock:(void (^) (BOOL success,NSURLResponse *response, NSData *data))completionBlock;
-(void)sendLogContent:(NSDictionary*)serviceParameters extraHeader:(NSDictionary *)header completionBlock:(void (^) (BOOL success,NSURLResponse *response, NSData *data))completionBlock;
@end
NS_ASSUME_NONNULL_END

View File

@@ -0,0 +1,20 @@
//
// AppDelegate+CYLTabBar.h
// NormalProject
//
// Created by PangChong on 2020/12/14.
// Copyright © 2020 WYL. All rights reserved.
//
#import "AppDelegate.h"
@class CYLTabBarController;
NS_ASSUME_NONNULL_BEGIN
/// 这是 AppDelegate 的分类,用于配置 CYLTabBarController
@interface AppDelegate (CYLTabBar)
/// 配置主窗口
- (void)configureForTabBarController;
@end
NS_ASSUME_NONNULL_END

View File

@@ -0,0 +1,147 @@
//
// AppDelegate+CYLTabBar.m
// NormalProject
//
// Created by PangChong on 2020/12/14.
// Copyright © 2020 WYL. All rights reserved.
//
#import "AppDelegate+CYLTabBar.h"
#import "WLCoustomTabBarController.h"
#import "HomeViewController.h"
#import "DDLoginViewController.h"
#import "DDV2LoginVC.h"
#import "DDYoungModeFullView.h"
#import "DDYoungModeViewController.h"
#import "RoomViewController.h"
/// Tool
#import "DDSocketTool.h"
#import "AccountModel.h"
#import "UserInfoModel.h"
#import "AccountInfoStorage.h"
#import "DDRequestTool.h"
#import "DDLoginRequest.h"
/// Tool
#import <NIMSDK/NIMSDK.h>
@interface AppDelegate (CYLTabBar)
@end
@implementation AppDelegate (CYLTabBar)
- (void)configureForTabBarController {
AccountModel *accountModel = [[AccountInfoStorage instance] getCurrentAccountInfo];
if (accountModel == nil || accountModel.uid == nil || accountModel.access_token == nil) {
[self gotoWithLoginController];
return;
}
if ([[AccountInfoStorage instance] getTicket].length > 0) {
return;
}
[self loadRequestLoginTicket];
}
#pragma mark - Request
- (void)loadRequestLoginTicket {
[ToolsObject ShowSVProgressHUD:@"正在加载页面中,请稍等"];
AccountModel *accountModel = [[AccountInfoStorage instance] getCurrentAccountInfo];
NSDictionary *param = @{
@"access_token" : accountModel.access_token,
@"issue_type" : @"multi"
};
NSString *url = [DDEncryptManager dd_aesDecryptWithText:@"6emKfy4lcAfMp/eLOoAMhA=="];
[DDRequestTool DD_Request_POST:url params:param success:^(BaseModel * _Nonnull data) {
[ToolsObject DismissSVProgressHUD];
NSArray *tickets = [data.data valueForKey:@"tickets"];
NSString *ticket = [tickets[0] valueForKey:@"ticket"];
[[AccountInfoStorage instance] saveTicket:ticket];
[self loginNIM];
[self getUserInfo];
} failure:^(NSInteger resCode, NSString * _Nonnull message) {
[ToolsObject addPopVieToText:[NSString stringWithFormat:@"加载页面%@失败,请重新登录",message]];
[[AccountInfoStorage instance] saveAccountInfo:nil];
[[AccountInfoStorage instance] saveTicket:nil];
[self gotoWithLoginController];
}];
}
- (void)loginNIM {
AccountModel *accountModel = [[AccountInfoStorage instance] getCurrentAccountInfo];
if (accountModel == nil) {
[self gotoWithLoginController];
return;
}
if ([NIMSDK sharedSDK].loginManager.isLogined) {
return;
}
NIMAutoLoginData *data = [[NIMAutoLoginData alloc]init];
data.account = accountModel.uid;
data.token = accountModel.netEaseToken;
data.forcedMode = NO;
[[NIMSDK sharedSDK].loginManager autoLogin:data];
}
- (void)getUserInfo {
[DDLoginRequest DD_LoadRequestUserInfo:[[AccountInfoStorage instance] getUid] completed:^(UserInfoModel * _Nonnull userInfo) {
if (userInfo == nil) {
//
return;
}
[self initWindow];
//
if ([kUserDefaults objectForKey:KYoungPasswordKey]) {
if (self.inRoom) {
[RoomViewController destoryVC];
}
[self gotoWithYoungerController];
} else {
[self gotoWithTabbarController];
if (self.alertViewIsShow) return;
self.alertViewIsShow = [ToolsObject allowShowFirstOpenAlert];
if ([ToolsObject allowShowFirstOpenAlert]) {
DDYoungModeFullView *youngPopView = [DDYoungModeFullView showYoungPopView];
[youngPopView show];
}
}
}];
}
#pragma mark - Private Method
- (void)initWindow {
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
self.window.backgroundColor = Kblack_color;
[self.window makeKeyAndVisible];
}
- (void)gotoWithYoungerController {
DDYoungModeViewController *youngModeVC = [DDYoungModeViewController new];
youngModeVC.openYoungMode = YES;
UINavigationController *youngModeNC = [[UINavigationController alloc] initWithRootViewController:youngModeVC];
self.window.rootViewController = youngModeNC;
}
- (void)gotoWithTabbarController {
self.tabBarController = [[WLCoustomTabBarController alloc] initTabBar];
self.window.rootViewController = self.tabBarController;
}
///
- (void)gotoWithLoginController {
DDV2LoginVC *loginVC = [DDV2LoginVC new];
UINavigationController *loginNC = [[UINavigationController alloc] initWithRootViewController:loginVC];
self.window.rootViewController = loginNC;
}
@end

View File

@@ -0,0 +1,13 @@
//
// AppDelegate+NetworkStatus.h
// NormalProject
//
// Created by L on 2018/9/4.
// Copyright © 2018年 WYL. All rights reserved.
//
#import "AppDelegate.h"
@interface AppDelegate (NetworkStatus)
-(void)getNetWorkStatus;
@end

View File

@@ -0,0 +1,38 @@
//
// AppDelegate+NetworkStatus.m
// NormalProject
//
// Created by L on 2018/9/4.
// Copyright © 2018 WYL. All rights reserved.
//
#import "AppDelegate+NetworkStatus.h"
@implementation AppDelegate (NetworkStatus)
-(void)getNetWorkStatus{
AFNetworkReachabilityManager * manager = [AFNetworkReachabilityManager sharedManager];
[manager setReachabilityStatusChangeBlock:^(AFNetworkReachabilityStatus status) {
// KMyLogInt(@"程序网络", status);
switch (status) {
case AFNetworkReachabilityStatusUnknown:
NSLog(@"网络不可用");
// [ToolsObject addPopVieToText:@"网络不可用"];
break;
case AFNetworkReachabilityStatusReachableViaWiFi:
NSLog(@"wifi");
//[ToolsObject addPopVieToText:@"wifi"];
break;
case AFNetworkReachabilityStatusNotReachable:
NSLog(@"未知网络");
//[ToolsObject addPopVieToText:@"未知网络"];
break;
case AFNetworkReachabilityStatusReachableViaWWAN:
NSLog(@"手机网络");
//[ToolsObject addPopVieToText:@"手机网络"];
break;
}
}];
[manager startMonitoring];
}
@end

View File

@@ -0,0 +1,17 @@
//
// AppDelegate+Other.h
// NormalProject
//
// Created by PangChong on 2020/12/31.
// Copyright © 2020 WYL. All rights reserved.
//
#import "AppDelegate.h"
NS_ASSUME_NONNULL_BEGIN
@interface AppDelegate (Other)
- (void)initOtherSet;
@end
NS_ASSUME_NONNULL_END

View File

@@ -0,0 +1,156 @@
//
// AppDelegate+Other.m
// NormalProject
//
// Created by PangChong on 2020/12/31.
// Copyright © 2020 WYL. All rights reserved.
//
#import "AppDelegate+Other.h"
#import "WRNavigationBar.h"
#import <GeYanSdk/GeYanSdk.h>
#import "HCKeepBGRunManager.h"
#import <UMCommon/UMCommon.h>
#import <UMLink/UMLink.h>
#import "DDV2LoginVC.h"
#import <NIMSDK/NIMSDK.h>
#import "DDGloabalConstant.h"
#import "DDRegisterCustomDecoder.h"
@interface AppDelegate (Other)
@end
@implementation AppDelegate (Other)
- (void)initOtherSet{
[WRNavigationBar wr_widely];
// WRNavigationBar
[WRNavigationBar wr_setBlacklist:@[@"SpecialController",
@"TZPhotoPickerController",
@"TZGifPhotoPreviewController",
@"TZAlbumPickerController",
@"TZPhotoPreviewController",
@"TZVideoPlayerController",
@"TZImagePickerController"]];
//
[IQKeyboardManager sharedManager].enable = YES;
[IQKeyboardManager sharedManager].shouldResignOnTouchOutside = YES;
[IQKeyboardManager sharedManager].enableAutoToolbar = YES;
[IQKeyboardManager sharedManager].keyboardDistanceFromTextField = 10.0f;
[[IQKeyboardManager sharedManager]registerTextFieldViewClass:[YYTextView class]
didBeginEditingNotificationName:YYTextViewTextDidBeginEditingNotification
didEndEditingNotificationName:YYTextViewTextDidEndEditingNotification];
[self initUMeng];
[self initShanyanSDK];
[self initNIM];
[HCKeepBGRunManager shareManager];
}
// NIMSDK
- (void)initNIM {
NSString *appKey = DD_Constant_KeyWithType(DD_Constant_KeyType_NetEase);
NIMSDKOption *option = [NIMSDKOption optionWithAppKey:appKey];
option.apnsCername = DD_Constant_KeyWithType(DD_Constant_KeyType_APNSCer);
[[NIMSDK sharedSDK] registerWithOption:option];
// NIM SDK
[NIMCustomObject registerCustomDecoder:[[DDRegisterCustomDecoder alloc] init]];
#ifdef DEBUG
[NIMSDKConfig sharedConfig].enabledHttpsForInfo = NO;
[NIMSDKConfig sharedConfig].enabledHttpsForMessage = NO;
#endif
if (@available(iOS 11.0, *)){
UNUserNotificationCenter *center = [UNUserNotificationCenter currentNotificationCenter];
[center requestAuthorizationWithOptions:(UNAuthorizationOptionBadge | UNAuthorizationOptionSound | UNAuthorizationOptionAlert) completionHandler:^(BOOL granted, NSError * _Nullable error) {
}];
}
[[UIApplication sharedApplication] registerForRemoteNotifications];
}
- (void)initUMeng {
NSString * channel = @"App Store";
#ifdef DEBUG
channel = @"Test";
#else
#endif
[UMConfigure initWithAppkey:@"64be373cbd4b621232dbf831" channel:channel];
//
[UMConfigure setAnalyticsEnabled:YES];
BOOL hasGetInstallParams = [[NSUserDefaults standardUserDefaults] boolForKey:@"key_Has_Get_InstallParams"];
if (!hasGetInstallParams) {
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(3 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
//
//
[MobClickLink getInstallParams:^(NSDictionary *params, NSURL *URL, NSError *error) {
if (error) {
return;
}
UINavigationController *platformVc = (UINavigationController *)self.window.rootViewController;
DDV2LoginVC *vc = platformVc.viewControllers[0];
if (URL.absoluteString.length > 0||params.count > 0) {
[MobClickLink handleLinkURL:URL delegate:(id<MobClickLinkDelegate>)vc];
}
[[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"key_Has_Get_InstallParams"];
} enablePasteboard:YES];
});
}
}
//SDK
- (void)initShanyanSDK {
WeakSelf(ws)
[GeYanSdk startWithAppId:K_GeTuiAppId withCallback:^(BOOL isSuccess, NSError * _Nullable error, NSString * _Nullable gyUid) {
ws.gyUid = gyUid;
if (isSuccess) {
NSLog(@"GeYanSdk startWithAppId:%@", gyUid);
} else {
NSLog(@"GeYanSdk startWithAppId:%@", error);
}
}];
}
- (void)getLinkPath:(NSDictionary *)params {
UINavigationController *platformVc = (UINavigationController *)self.window.rootViewController;
if (params.count > 0) {
DDV2LoginVC *vc = platformVc.viewControllers[0];
vc.install_params = params;
}
}
- (BOOL)application:(UIApplication *)application openURL:(nonnull NSURL *)url options:(nonnull NSDictionary<UIApplicationOpenURLOptionsKey,id> *)options
{
NSLog(@"url:%@", url);
UINavigationController *platformVc = (UINavigationController *)self.window.rootViewController;
UIViewController *vc = platformVc.viewControllers[0];
if([MobClickLink handleLinkURL:url delegate:(id<MobClickLinkDelegate>)vc])
{
return YES;
}
return YES;
}
- (BOOL)application:(UIApplication *)application continueUserActivity:(nonnull NSUserActivity *)userActivity restorationHandler:(nonnull void (^)(NSArray<id<UIUserActivityRestoring>> * _Nullable))restorationHandler
{
UINavigationController *platformVc = (UINavigationController *)self.window.rootViewController;
UIViewController *vc = platformVc.viewControllers[0];
if([MobClickLink handleUniversalLink:userActivity delegate:(id<MobClickLinkDelegate>)vc])
{
return YES;
}
return YES;
}
- (BOOL)application:(UIApplication *)application openURL:(nonnull NSURL *)url sourceApplication:(nullable NSString *)sourceApplication annotation:(nonnull id)annotation
{
NSLog(@"url:%@", url);
UINavigationController *platformVc = (UINavigationController *)self.window.rootViewController;
UIViewController *vc = platformVc.viewControllers[0];
if([MobClickLink handleLinkURL:url delegate:(id<MobClickLinkDelegate>)vc])
{
return YES;
}
return YES;
}
@end

View File

@@ -0,0 +1,33 @@
//
// AppDelegate.h
// DingDangApp
//
// Created by liang on 2023/5/26.
//
#import <UIKit/UIKit.h>
@class WLCoustomTabBarController;
@interface AppDelegate : UIResponder <UIApplicationDelegate>
+ (AppDelegate* )getAppdelegate;
@property (nonatomic,strong) NSString *deviceToken;
//首页获取位置权限 发布动态需要
@property (nonatomic,copy) NSString * longitude;
@property (nonatomic,copy) NSString * latitude;
@property (nonatomic,copy) NSString * locationCity;
@property (nonatomic,copy) NSString * provinceStr;
@property (nonatomic,copy) NSString * countyStr;
@property (nonatomic,copy) NSString * addressStr;
@property (nonatomic, assign) BOOL isLocation;
@property (strong, nonatomic) UIWindow *window;
/**Tabbar*/
@property (nonatomic,strong) WLCoustomTabBarController *tabBarController;
//是否在房间
@property (nonatomic, assign) BOOL inRoom;
@property (nonatomic,assign) BOOL POPUP;
@property (nonatomic,assign) BOOL alertViewIsShow;
@property (nonatomic,assign) BOOL ISConversationList;
@property (nonatomic, copy) NSString *ms_user_id;
@property (nonatomic, copy) NSString * gyUid;//个推闪验uid
@end

View File

@@ -0,0 +1,54 @@
//
// AppDelegate.m
// DingDangApp
//
// Created by liang on 2023/5/26.
//
#import "AppDelegate.h"
#import "WLCoustomTabBarController.h"
#import "AppDelegate+NetworkStatus.h"
#import "AppDelegate+NetworkStatus.h"
#import "AppDelegate+CYLTabBar.h"
#import "AppDelegate+Other.h"
#import <NIMSDK/NIMSDK.h>
@interface AppDelegate ()
@end
@implementation AppDelegate
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
//
//
[self configureForTabBarController];
//
[UIApplication sharedApplication].statusBarStyle = UIStatusBarStyleLightContent;
//
[self getNetWorkStatus];
//
[self initOtherSet];
return YES;
}
- (void)applicationDidEnterBackground:(UIApplication *)application {
NSInteger count = [NIMSDK sharedSDK].conversationManager.allUnreadCount;
[[UIApplication sharedApplication] setApplicationIconBadgeNumber:count];
}
- (void)application:(UIApplication *)app didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken {
// devicetoken
[[NIMSDK sharedSDK] updateApnsToken:deviceToken];
}
+ (AppDelegate* )getAppdelegate {
return (AppDelegate*)[UIApplication sharedApplication].delegate;
}
@end

View File

@@ -0,0 +1,16 @@
//
// YYTextAsyncLayer+DDTextAsyncLayer.h
// DingDangApp
//
// Created by duoban on 2023/12/14.
//
#import <YYText/YYTextAsyncLayer.h>
NS_ASSUME_NONNULL_BEGIN
@interface YYTextAsyncLayer (DDTextAsyncLayer)
@end
NS_ASSUME_NONNULL_END

View File

@@ -0,0 +1,26 @@
//
// YYTextAsyncLayer+DDTextAsyncLayer.m
// DingDangApp
//
// Created by duoban on 2023/12/14.
//
#import "YYTextAsyncLayer+DDTextAsyncLayer.h"
@implementation YYTextAsyncLayer (DDTextAsyncLayer)
///iOS17bug退
+(void)load {
Method xp_displayMethod = class_getInstanceMethod(self, @selector(display));
Method xp_swizzingMethod = class_getInstanceMethod(self, @selector(xp_swizzing_display));
method_exchangeImplementations(xp_displayMethod, xp_swizzingMethod);
}
-(void)xp_swizzing_display{
//
if (self.bounds.size.width <= 0 || self.bounds.size.height <= 0) {
self.contents = nil;
return;
} else {
[self xp_swizzing_display];
}
}
@end

View File

@@ -0,0 +1,16 @@
//
// YYTextAsyncLayer+PITextAsyncLayer.h
// YuMi
//
// Created by duoban on 2023/10/28.
//
#import <YYText/YYTextAsyncLayer.h>
NS_ASSUME_NONNULL_BEGIN
@interface YYTextAsyncLayer (PITextAsyncLayer)
@end
NS_ASSUME_NONNULL_END

View File

@@ -0,0 +1,26 @@
//
// YYTextAsyncLayer+PITextAsyncLayer.m
// YuMi
//
// Created by duoban on 2023/10/28.
//
#import "YYTextAsyncLayer+PITextAsyncLayer.h"
@implementation YYTextAsyncLayer (PITextAsyncLayer)
///iOS17bug退
+(void)load {
Method displayMethod = class_getInstanceMethod(self, @selector(display));
Method swizzingMethod = class_getInstanceMethod(self, @selector(swizzing_display));
method_exchangeImplementations(displayMethod, swizzingMethod);
}
-(void)swizzing_display{
//
if (self.bounds.size.width <= 0 || self.bounds.size.height <= 0) {
self.contents = nil;
return;
} else {
[self swizzing_display];
}
}
@end

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 658 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

View File

@@ -0,0 +1,158 @@
{
"images" : [
{
"filename" : "icon_40.png",
"idiom" : "iphone",
"scale" : "2x",
"size" : "20x20"
},
{
"filename" : "icon_60.png",
"idiom" : "iphone",
"scale" : "3x",
"size" : "20x20"
},
{
"filename" : "icon_29.png",
"idiom" : "iphone",
"scale" : "1x",
"size" : "29x29"
},
{
"filename" : "icon_58.png",
"idiom" : "iphone",
"scale" : "2x",
"size" : "29x29"
},
{
"filename" : "icon_87.png",
"idiom" : "iphone",
"scale" : "3x",
"size" : "29x29"
},
{
"filename" : "icon_80.png",
"idiom" : "iphone",
"scale" : "2x",
"size" : "40x40"
},
{
"filename" : "icon_120.png",
"idiom" : "iphone",
"scale" : "3x",
"size" : "40x40"
},
{
"filename" : "57.png",
"idiom" : "iphone",
"scale" : "1x",
"size" : "57x57"
},
{
"filename" : "114.png",
"idiom" : "iphone",
"scale" : "2x",
"size" : "57x57"
},
{
"filename" : "120.png",
"idiom" : "iphone",
"scale" : "2x",
"size" : "60x60"
},
{
"filename" : "180.png",
"idiom" : "iphone",
"scale" : "3x",
"size" : "60x60"
},
{
"filename" : "20.png",
"idiom" : "ipad",
"scale" : "1x",
"size" : "20x20"
},
{
"filename" : "40.png",
"idiom" : "ipad",
"scale" : "2x",
"size" : "20x20"
},
{
"filename" : "29.png",
"idiom" : "ipad",
"scale" : "1x",
"size" : "29x29"
},
{
"filename" : "58.png",
"idiom" : "ipad",
"scale" : "2x",
"size" : "29x29"
},
{
"filename" : "40 1.png",
"idiom" : "ipad",
"scale" : "1x",
"size" : "40x40"
},
{
"filename" : "80.png",
"idiom" : "ipad",
"scale" : "2x",
"size" : "40x40"
},
{
"filename" : "50.png",
"idiom" : "ipad",
"scale" : "1x",
"size" : "50x50"
},
{
"filename" : "100.png",
"idiom" : "ipad",
"scale" : "2x",
"size" : "50x50"
},
{
"filename" : "72.png",
"idiom" : "ipad",
"scale" : "1x",
"size" : "72x72"
},
{
"filename" : "144.png",
"idiom" : "ipad",
"scale" : "2x",
"size" : "72x72"
},
{
"filename" : "76.png",
"idiom" : "ipad",
"scale" : "1x",
"size" : "76x76"
},
{
"filename" : "152.png",
"idiom" : "ipad",
"scale" : "2x",
"size" : "76x76"
},
{
"filename" : "icon_167.png",
"idiom" : "ipad",
"scale" : "2x",
"size" : "83.5x83.5"
},
{
"filename" : "icon_1024.png",
"idiom" : "ios-marketing",
"scale" : "1x",
"size" : "1024x1024"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 139 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.9 KiB

View File

@@ -0,0 +1,22 @@
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "com1@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "com1@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

View File

@@ -0,0 +1,22 @@
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "com2@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "com2@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

Some files were not shown because too many files have changed in this diff Show More