このドキュメントでは、Swift Package を使用して ZOLOZ iOS SDK をローカルに統合するための完全なワークフローを解説します。SDK が正常に統合されたことを確認するためのテストコードも含まれています。
前提条件
ZOLOZ iOS SDK を統合する前に、ご利用の Xcode のバージョンが 15.0 以降であることを確認してください。
操作手順
このドキュメントでは、`Resources` ディレクトリがすでに作成されている SPMDemo サンプルプロジェクトを使用します。以下の手順では、このプロジェクトをベースに ZOLOZ iOS SDK の完全な統合プロセスを説明します。
ステップ 1:ZOLOZ SDK の取得
ZOLOZ のテクニカルサポートに連絡して、ZOLOZ SDK (ZIP フォーマットで提供) を取得します。
ZIP ファイルを展開すると、完全な SDK フォルダが生成されます。
ステップ 2:ZOLOZ SDK の統合
展開された `zolozkit` フォルダをプロジェクトディレクトリにコピーします。

パッケージ依存関係を追加します。
Xcode を開き、[File] > [Add Package Dependencies...] を選択します。
ダイアログボックスで [Add Local...] を選択すると、ファイル選択ウィンドウが開きます。
ダイアログボックスで `zolozkit` フォルダを選択します。
パッケージプロダクトを設定します。
ダイアログボックスでZolozKitWithoutWebContainerをNoneに設定し、[Add Package] をクリックして追加を完了します。リンクステータスを確認します。
移動: ターゲット > ビルドフェーズ > バイナリをライブラリとリンク。もし ZolozKitWithWebContainer が表示されている場合、SDK の参照は成功です。
ステップ 3:メインプロジェクトへのリソースファイルの追加
zolozkit/Resourcesディレクトリに移動します。このディレクトリ内のすべてのバンドルファイルをメインプロジェクトのディレクトリにコピーします。
リソースファイルのリファレンスを検証します。
[TARGETS] > [Build Phases] > [Copy Bundle Resources] に移動し、すべてのバンドルファイルがリストされ、メインプロジェクトで参照されていることを確認します。
統合の検証
統合が完了したら、以下の 2 つのテストコードを使用して、SDK が正常に統合されているかを確認します。
metainfo 取得の検証
プロジェクトで以下のコードを実行して metainfo を取得し、ZOLOZ iOS SDK が正常に統合されているかを確認します。
let metainfo = ZLZFacade.getMetaInfo();
showAlert(title: "METAINFO", message: metainfo)もし metaInfo のコンテンツが正常に表示された場合、SDK の統合は成功です。 以下に完全な metainfo の例を示します。
{
"appVersion": "1",
"bioMetaInfo": "3.46.0:0,2;RJBBACRJIIFQGQDARIJ4BNJACJA=;2.0.8.251111182808",
"appName": "zoloz.demo.spmdemo.mj.SPMDemo",
"deviceType": "ios",
"osVersion": "iOS 26.1",
"keyHash": "5EBC**",
"buildVersion": "2.0.8.251111182808",
"apdidToken": "ZLZ0307B71E92194BCD843170C4F417****",
"deviceModel": "iPhone13,3"}バンドルファイルのインポート検証
以下のテストコードを実行して、ZOLOZ に必要なバンドルファイルが正常にインポートされているかを確認します。
もし
showAlertが返す値がSuccessの場合、すべてのバンドルファイルが正常にインポートされます。showAlertがMissing Bundlesを返す場合、一部のバンドルファイルのインポートに失敗しています。エラーメッセージで詳細を確認できます。
// チェックするバンドル名を定義
let bundleNames = [
"BioAuthEngine.bundle",
"ToygerService.bundle",
"WebContainerLite.bundle",
"ZolozKit.bundle",
"ZolozNfcReader.bundle"]
// バンドルファイルの存在を確認
var missingBundles: [String] = []
for bundleName in bundleNames {
if Bundle.main.path(forResource: bundleName, ofType: nil) == nil {
missingBundles.append(bundleName)
}
}
// チェック結果を表示
if missingBundles.isEmpty {
showAlert(title: "Success", message: "All bundles exist")
} else {
showAlert(title: "Missing Bundles", message: "The following bundles are missing: \n\n" + missingBundles.joined(separator: "\n"))
}






