本文檔提供 Android 與 iOS 原生 SDK 的精簡整合指南。其核心目標是在滿足功能與安全合規要求的前提下,依據實際產品方案按需整合組件,以最大程度減小 SDK 包體體積。
SDK 模組裁剪指南
1. 裁剪目的
本 SDK 採用模組化架構,包含基礎模組、OCR 模組、人臉活體模組及 NFC 模組。鑒於不同認證方案對功能組件的需求存在差異,建議遵循“最小必要原則”進行整合,避免引入非必要元件。
2. 裁剪策略
基礎模組(必選):負責 SDK 初始化、裝置資訊採集、網路通訊及基礎安全能力,必須保留。
業務模組(按需):僅保留當前產品方案所需的 OCR、人臉活體或 NFC 模組。未使用的模組應從工程依賴中移除,以降低應用程式套件體積及依賴複雜度。
FaceGuard 模組(建議保留):該模組為可裁剪的端側安全性群組件。在涉及Face Service的生產環境中,建議保留該模組,以確保對刷臉環境風險的持續對抗能力。
3. 注意事項
構建期行為:模組裁剪屬於構建期的依賴選擇,不會影響已保留模組的正常功能。
測試要求:請在版本發布前,依據實際認證流程完成真機迴歸測試,確保功能正常。
模組劃分與裁剪規則
模組類別 | 主要能力 | 適用方案 | 裁剪影響 |
基礎模組 | SDK 初始化、裝置資訊、加密、通用運行能力 | 所有方案 | 不可裁剪 |
OCR 模組 | 證件拍攝、證件文字識別、OCR 自動掃描 | OCR 方案、ID Verification方案 | 裁剪後無法進行 OCR;ID Verification也不可用 |
人臉活體模組 | 人臉採集、活體檢測、人臉品質檢測 | 活體刷臉方案、ID Verification方案 | 裁剪後無法進行人臉活體 |
NFC 模組 | 讀取並解析證件晶片資訊 | NFC 方案 | 裁剪後無法讀取 NFC 證件 |
刷臉裝置安全模組 | 刷臉過程中的端側認證環境安全保護 | 含人臉活體的方案 | 可裁剪,但會削弱安全對抗能力;生產環境建議保留 |
Android模組
模組能力 | 組件名稱 | 編譯後體積 | 說明 | ||
雙架構 | ARM64 | ARMv7 | |||
基礎模組 |
| 0.10 MB | 不可裁剪 | ||
基礎模組 |
| 0.13 MB | 不可裁剪 | ||
基礎模組 |
| 0.44 MB | 0.25MB | 0.19MB | 不可裁剪 |
MNN模組 |
| 2.20 MB | 1.2MB | 1.04MB | 可裁剪,人臉活體、人臉品質、OCR 自動掃描基礎組件,涉及上述功能必需 |
OCR 基礎識別 |
| 0.23 MB | 可裁剪,OCR和ID Verification方案必需 | ||
OCR 自動掃描能力 |
| 0.61 MB | 0.47MB | 0.42MB | 可裁剪,OCR自動掃描能力必需 |
人臉 UI |
| 0.05 MB | 可裁剪,人臉活體方案必需 | ||
人臉活體 |
| 0.80 MB | 0.59MB | 0.54MB | 可裁剪,人臉活體方案必需 |
人臉活體眨眼檢測 |
| 0.20 MB | 可裁剪,眨眼活體情境必需 | ||
嚴格人臉品質檢測 |
| 0.20 MB | 可裁剪,服務端未開啟嚴格品質檢測時可移除,裁剪後人臉品質、遮擋判斷不生效 | ||
刷臉裝置安全模組 |
| 3.30 MB | 2.80MB | 2.00MB | 可裁剪,該模組保護刷臉過程中端側認證環境安全,裁剪後會削弱安全對抗效果,建議保留 |
NFC 服務模組 |
| 5.20 MB | 可裁剪,NFC 方案必需 | ||
NFC 業務模組 |
| 0.14 MB | 可裁剪,NFC 方案必需 | ||
tygerservice 已在 1.3.4 及後續版本移除,不應作為目前的版本的必選依賴。
iOS模組
模組能力 | 組件名稱 | 包體增量 | 說明 |
基礎模組 |
| 0.03 MB | 不可裁剪 |
基礎模組 |
| 0.03 MB | 不可裁剪 |
基礎模組 |
| 0.23 MB | 不可裁剪 |
網路通訊 |
| 0.03 MB | 不可裁剪 |
地區適配 |
| 0.01 MB | 不可裁剪 |
崩潰監控 |
| 0.06 MB | 不可裁剪 |
MNN模組 |
| 0.09 MB | 可裁剪,人臉活體、人臉品質、OCR 自動掃描基礎組件,涉及上述功能必需 |
OCR 基礎識別 |
| 0.76 MB | 可裁剪,OCR和ID Verification方案必需 |
人臉活體 |
| 2.20 MB | 可裁剪,人臉活體方案必需 |
刷臉裝置安全模組 |
| 0.74 MB | 可裁剪,該模組保護刷臉過程中端側認證環境安全,裁剪後會削弱安全對抗效果,建議保留 |
NFC |
| 3.70 MB | 可裁剪,NFC 方案必需 |
ToygerService、ToygerNative與DTFUtility,已在 1.3.5及後續版本移除,不應作為目前的版本的必選依賴。
推薦整合組合與 SDK 包體估算
下表按當前方案的最小功能集匯總。Android 為官方列出的雙架構編譯體積;iOS 為 Framework 包體增量。含刷臉的“推薦集”預設保留 FaceGuard。
產品方案 | 保留模組 | Android 最小功能集 | Android 推薦集(含裝置安全) | iOS 最小功能集 | iOS 推薦集(含裝置安全) |
OCR 方案(基礎識別) | 基礎 + OCR | 約 0.90 MB | 約 0.90 MB | 約 1.15 MB | 約 1.15 MB |
OCR 方案(含自動掃描) | 基礎 + OCR + OCR 自動掃描 + MNN | 約 3.71 MB | 約 3.71 MB | 約 1.24 MB | 約 1.24 MB |
NFC 方案 | 基礎 + NFC | 約 6.01 MB | 約 6.01 MB | 約 4.09 MB | 約 4.09 MB |
活體刷臉方案 | 基礎 + 人臉活體及眨眼 + MNN | 約 3.92 MB | 約 7.22 MB | 約 2.68 MB | 約3.42 MB |
ID Verification方案(OCR + 刷臉) | 基礎 + OCR + OCR 自動掃描 + 人臉活體及眨眼+ MNN | 約 4.76 MB | 約 8.06 MB | 約 3.44 MB | 約 4.18 MB |
1. 模組移除條件
若ID Verification流程未啟用 OCR 自動掃描功能,可按以下規則移除相關依賴:
Android 端:支援移除
idv-identityocrservice模組。iOS 端:支援移除 MNN 模組,但前提條件是人臉活體檢測的實現不依賴該模組。
2. 風險提示
當前標準人臉活體方案通常仍需依賴 MNN 模組,移除前需嚴格確認底層技術實現,避免影響核心認證功能。
3. 最終確認依據
模組裁剪的最終結果,必須以所選 SDK 版本及實際產生的依賴清單為準。
整合建議
1. 依賴選擇原則
先定方案,後選依賴:在整合前需先明確產品方案,嚴禁在所有業務線中直接引入完整的 SDK 包。
按底層能力裁剪:模組選擇應以底層能力為依據,而非僅依據前端頁面。例如,若業務涉及人臉活體檢測,必須保留其底層依賴,不可僅保留 UI 組件。
安全模組保留原則:在涉及Face Service的情境中,應優先保留 FaceGuard 模組。若因包體積限制必須移除,需由業務、安全及風控團隊共同評估並確認風險接受範圍。
2. 測實驗證要求
變更依賴配置後,必須對關鍵業務路徑進行全面迴歸驗證。驗證情境應覆蓋:SDK 初始化、許可權拒絕、弱網環境、使用者取消或重試操作,以及認證成功與失敗等核心鏈路。
3. 包體積評估說明
以最終產物為準:包體積評估應以最終的構建產物(APK/AAB/IPA)為準。
體積影響因素:實際包體積不僅受 SDK 模組裁剪影響,還會受到 ABI 拆分、代碼壓縮、連結器裁剪、應用既有依賴以及構建配置等多種因素的綜合影響。