本ドキュメントでは、Android および iOS のネイティブ SDK の統合を効率化するためのガイドを提供します。主な目的は、お客様の製品ソリューションに基づき、機能要件とセキュリティコンプライアンス要件を満たしつつ、必要なコンポーネントのみを統合することで、SDK パッケージサイズを最小限に抑えることです。
SDK モジュールのスリム化ガイド
1. スリム化の目的
SDK はモジュラーアーキテクチャを採用しており、ベースモジュール、OCR モジュール、顔生体検知モジュール、NFC モジュールが含まれています。認証ソリューションによって必要な機能コンポーネントが異なるため、統合時には必要最小限の原則に従い、不要なコンポーネントの導入は避けてください。
2. スリム化の戦略
ベースモジュール (必須):SDK の初期化、デバイス情報の収集、ネットワーク通信、および基本的なセキュリティ機能を処理します。このモジュールは必ず保持してください。
ビジネスモジュール (オンデマンド):現在の製品ソリューションで必要な OCR、顔生体検知、または NFC モジュールのみを保持してください。未使用のモジュールをプロジェクトの依存関係から削除することで、アプリケーションのパッケージサイズと依存関係の複雑さを軽減します。
FaceGuard モジュール (保持を推奨):このモジュールは、削除可能なオンデバイスのセキュリティコンポーネントです。顔認識を含む本番環境では、顔認識環境のリスクから継続的に保護するために、このモジュールの保持を推奨します。
3. 注意事項
ビルド時の動作:モジュールのスリム化はビルド時に依存関係を選択するものであり、保持したモジュールの正常な機能には影響しません。
テスト要件:バージョンをリリースする前に、認証フローに基づいて実機での回帰テストを完了し、機能が正常に動作することを確認してください。
モジュールの分類とスリム化のルール
モジュールカテゴリ | 主な機能 | 適用可能なソリューション | スリム化による影響 |
ベースモジュール | SDK の初期化、デバイス情報、暗号化、汎用ランタイム機能 | すべてのソリューション | 削除不可 |
OCR モジュール | ドキュメントキャプチャ、文字認識、OCR 自動スキャン | OCR ソリューション、本人確認ソリューション | 削除すると OCR が利用できなくなり、本人確認にも影響します |
顔生体検知モジュール | 顔キャプチャ、生体検知、顔品質検出 | 生体検知ソリューション、本人確認ソリューション | 削除すると顔生体検知が利用できなくなります |
NFC モジュール | ドキュメントチップ情報の読み取りと解析 | NFC ソリューション | 削除すると NFC ドキュメントの読み取りが利用できなくなります |
顔認識デバイスセキュリティモジュール | 顔認識中のオンデバイス認証環境のセキュリティ保護 | 顔生体検知を含むソリューション | 削除可能ですが、セキュリティ保護能力が低下します。本番環境での保持を推奨します |
Android モジュール
モジュールの機能 | コンポーネント名 | コンパイル後のサイズ | 説明 | ||
デュアルアーキテクチャ | ARM64 | ARMv7 | |||
ベースモジュール |
| 0.10 MB | 削除不可 | ||
ベースモジュール |
| 0.13 MB | 削除不可 | ||
ベースモジュール |
| 0.44 MB | 0.25 MB | 0.19 MB | 削除不可 |
MNN モジュール |
| 2.24 MB | 1.2 MB | 1.04 MB | 削除可能。顔生体検知、顔品質、OCR 自動スキャンの基本コンポーネントです。これらの機能のいずれかを使用する場合は必須です。 |
OCR 基本認識 |
| 0.23 MB | 削除可能。OCR および本人確認ソリューションで必須です。 | ||
OCR 自動スキャン機能 |
| 0.89 MB | 0.47 MB | 0.42 MB | 削除可能。OCR 自動スキャン機能で必須です。 |
顔 UI |
| 0.05 MB | 削除可能。顔生体検知ソリューションで必須です。 | ||
顔生体検知 |
| 1.13 MB | 0.59 MB | 0.54 MB | 削除可能。顔生体検知ソリューションで必須です。 |
顔生体検知の瞬き検出 |
| 0.20 MB | 削除可能。瞬きに基づく生体検知シナリオで必須です。 | ||
厳格な顔品質検出 |
| 0.20 MB | 削除可能。サーバー側で厳格な品質検出が有効になっていない場合は削除できます。削除後、顔品質とオクルージョン検出は機能しません。 | ||
顔認識デバイスセキュリティモジュール |
| 4.80 MB | 2.80 MB | 2.00 MB | 削除可能。このモジュールは顔認識中のオンデバイス認証環境のセキュリティを確保します。削除するとセキュリティが低下します。本番環境での保持を推奨します。 |
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 |
本人確認ソリューション (OCR + 生体検知) | ベース + OCR + OCR 自動スキャン + 顔生体検知と瞬き検出 + MNN | ~4.76 MB | ~8.06 MB | ~3.44 MB | ~4.18 MB |
1. モジュール削除の条件
本人確認フローで OCR 自動スキャン機能が有効になっていない場合、以下のルールに基づいて関連する依存関係を削除できます:
Android:
idv-identityocrserviceモジュールを削除できます。iOS:顔生体検知の実装が MNN モジュールに依存していない場合に限り、MNN モジュールを削除できます。
2. リスク警告
現在の標準的な顔生体検知ソリューションは、通常 MNN モジュールに依存しています。削除する前に、基盤となる技術実装を厳密に検証し、コアとなる検証機能に影響がないことを確認してください。
3. 最終確認の基準
モジュールのスリム化の最終結果は、選択した SDK のバージョンと、実際に生成された依存関係リストに基づかなければなりません。
統合に関する推奨事項
1. 依存関係の選択原則
依存関係を選択する前にソリューションを決定する:統合前に製品ソリューションを特定します。すべての事業ラインで SDK のフルパッケージを直接インポートしないでください。
基盤となる機能に基づいてスリム化する:モジュールの選択は、フロントエンドの UI だけでなく、基盤となる機能に基づいて行う必要があります。例えば、ビジネスで顔生体検知が必要な場合は、UI コンポーネントだけでなく、その基盤となる依存関係も保持する必要があります。
セキュリティモジュールの保持戦略:顔認識を含むシナリオでは、デフォルトで FaceGuard モジュールを保持してください。パッケージサイズの制約により削除する必要がある場合は、事業、セキュリティ、リスク管理の各チームが共同で許容可能なリスク範囲を評価し、確認する必要があります。
2. テストと検証の要件
依存関係の構成を変更した後は、重要なビジネスパスで包括的な回帰テストを実行する必要があります。検証シナリオには、SDK の初期化、権限の拒否、ネットワーク状態が悪い場合、ユーザーによるキャンセルまたはリトライ操作、および検証の成功と失敗のコアパスを含める必要があります。
3. パッケージサイズの評価に関する注意事項
最終的な成果物に基づく評価:パッケージサイズの評価は、最終的なビルド成果物 (APK/AAB/IPA) に基づいて行う必要があります。
サイズに影響を与える要因:実際のパッケージサイズは、SDK モジュールのスリム化だけでなく、ABI 分割、コード圧縮、リンカートリミング、既存のアプリケーションの依存関係、およびビルド構成も影響します。