通过Swift Package接入ZOLOZ iOS SDK

本文介绍通过Swift Package接入ZOLOZ iOS SDK的完整流程。

概述

Swift Package版SDK与CocoaPods版SDK的核心功能相同,在集成方式和依赖管理上略有差异。

Swift Package版SDK采用XCFramework格式,支持在Apple芯片模拟器上编译和运行。

前提条件

在接入ZOLOZ iOS SDK之前,请确保您使用的开发工具为Xcode 15.0及以上版本。

接入步骤

步骤1:添加包依赖

  1. 在Xcode中,选择File > Add Package Dependencies...
    image
  2. 在弹窗右上角的搜索框中输入仓库地址,地址为https://github.com/zoloz-pte-ltd/zoloz-demo-ios
    image
  3. Dependency Rule区域中选择Branch,并输入分支名称master,然后单击Add Package
    image
  4. 选择需要引入的Package Products,设置完成后单击Add Package
    • 非特殊定制版SDK客户,请将ZolozKitWithoutWebContainer设置为None
      image
    • 如果您不需要使用NFC功能,请将ZolozKitNfcReader设置为None
      image

步骤2:检查SDK引用结果

SDK引用成功后,在您的项目的Package Dependencies中会显示zolozkit。

image

验证接入结果

接入完成后,您可以通过以下两项测试验证SDK是否接入成功。

检查Metainfo获取结果

在您的项目中运行以下代码获取Metainfo,如果成功显示Metainfo信息,表示SDK接入成功。

copy
let metainfo = ZLZFacade.getMetaInfo();
print(metainfo)

以下是完整的Metainfo示例:

copy
{
    "appVersion": "1", 
    "bioMetaInfo": "3.46.0:0,2;RJBBACRJIIFQGQDKRIJ4BNJADJJB;2.1.2.260114104408", 
    "appName": "com.zoloz.flamingo", 
    "deviceType": "ios", 
    "osVersion": "iOS 26.1", 
    "keyHash": "5EBCF1", 
    "buildVersion": "2.1.2.260114104408", 
    "apdidToken": "ZLZDD82FDC4D7014D46BFCF0541ED50****", 
    "deviceModel": "iPhone13,3"
}

检查资源文件引入结果

在您的项目中运行以下代码,检查ZOLOZ所需的资源文件是否引入成功。

copy
let url = Bundle.main.url(forResource: "zolozkit_resources", withExtension: "bundle")
if let bundleURL = url, let bundle = Bundle(url: bundleURL) {
    let files = try! FileManager.default.contentsOfDirectory(atPath: bundle.resourcePath!)
    let msg = files.joined(separator: ", ")
    print(msg)
    let alert = UIAlertController(title: "Zoloz Bundles", message: msg, preferredStyle: .alert)
    alert.addAction(UIAlertAction(title: "OK", style: .default))
    self.present(alert, animated: true)
} else {
    let alert = UIAlertController(title: "Error", message: "zolozkit_resources.bundle not found", preferredStyle: .alert)
    alert.addAction(UIAlertAction(title: "CLOSE", style: .default))
    self.present(alert, animated: true)
}

如果能够正确显示以下文件,表示SDK及其资源文件已接入成功。

copy
WebContainerLite.bundle, ZolozNfcReader.bundle, ToygerService.bundle, Info.plist, BioAuthEngine.bundle, ZolozKit.bundle