通过Swift Package在本地接入ZOLOZ iOS SDK
本文详细介绍通过Swift Package在本地接入ZOLOZ iOS SDK的完整流程,并通过测试代码验证SDK是否接入成功。
前提条件
在接入ZOLOZ iOS SDK之前,请确保您使用的开发工具为Xcode 15.0及以上版本。
接入步骤
本文以示例工程SPMDemo为例,且已在该工程中创建Resources目录,以下步骤将基于此工程演示ZOLOZ iOS SDK的完整接入流程。
步骤1:获取ZOLOZ SDK
- 联系ZOLOZ技术支持获取ZOLOZ SDK,该SDK为ZIP格式。
- 解压ZIP,解压后您将获得一个完整的SDK文件夹。
步骤2:引入ZOLOZ SDK
- 将解压后的zolozkit文件夹复制到您的工程目录中。

- 添加包依赖。
- 打开Xcode,选择File > Add Package Dependencies...。

- 在弹窗中选择Add Local...,页面将弹出文件选择窗口。
- 在弹窗中选择zolozkit文件夹。

- 配置Package Products。
在弹窗中将ZolozKitWithoutWebContainer设置为None,并单击Add Package完成添加。
- 检查链接状态。
选择TARGETS > Build Phases > Link Binary With Libraries,如果显示ZolozKitWithWebContainer,表示SDK引用成功。
步骤3:添加资源文件到主工程
- 进入
zolozkit/Resources目录。
- 将该目录下的所有bundle文件复制到您的主工程目录中。

- 检查资源文件是否引用成功。
选择TARGETS > Build Phases > Copy Bundle Resources,确认所有bundle文件均已引用到主工程。
验证接入结果
接入完成后,您可以通过下面两个测试代码验证SDK是否接入成功。
检查metainfo是否获取成功
在您的工程中运行以下代码获取metainfo,确认ZOLOZ iOS SDK是否接入成功。
copy
let metainfo = ZLZFacade.getMetaInfo();
showAlert(title: "METAINFO", message: metainfo)如果成功显示metaInfo内容,表示SDK接入成功。以下是完整的metainfo示例:
copy
{
"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"
}检查bundle文件是否引入成功
运行以下测试代码,检查ZOLOZ所需的bundle文件是否引入成功。
- 如果
showAlert返回Success,表示所有bundle文件均引入成功。 - 如果
showAlert返回Missing Bundles,表示有bundle文件引入失败,您可以根据提示信息进行检查。
copy
// 定义需要检查的bundle names
let bundleNames = [
"BioAuthEngine.bundle",
"ToygerService.bundle",
"WebContainerLite.bundle",
"ZolozKit.bundle",
"ZolozNfcReader.bundle"
]
// 检查每个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"))
}






