在 Swift 中进行 Apple Wallet (原 Passbook) pass 编码和签名。
Data
将以下行添加到您的 Package.swift
文件的 dependencies 部分
.package(url: "https://github.com/aydenp/PassEncoder.git", .upToNextMajor(from: "1.0.0"))
并将 "PassEncoder" 添加到您的 target 的 dependencies 中。
// Create our encoder
if let encoder = PassEncoder(passDataURL: directory.appendingPathComponent("pass.json")) {
// Add a nice icon
encoder.addFile(from: directory.appendingPathComponent("icon.png"))
let passData = encoder.encode(signingInfo: (certificate: URL_TO_CERT.PEM, password: CERT_PASSWORD))
// Your archived .pkpass file is in passData as Data
}
在使用该库之前,您还需要设置 Apple WWDR 证书 URL,您可以在下面阅读相关内容。
注意! 此库中的操作都是同步的,因此建议在单独的
OperationQueue
上运行它们,以避免阻塞您的线程。
对于 pass.json
中的每个不同的 passTypeId
,您都需要重复此步骤。
Certificates.p12
。openssl pkcs12 -in Certificates.p12 -out PassCert.pem
。PassCert.pem
中!您还需要下载 Apple Worldwide Developer Relations Intermediate Certificate - G4 文件来签名 passes。
从此处下载中间证书。
将其导入到钥匙串访问 (双击它)。
在钥匙串访问中找到它,并将其导出为 .pem 文件。
在您的代码中,将 PassSigner
的 WWDR URL 设置为该文件。
PassSigner.shared.appleWWDRCertURL = URL(fileURLWithPath: PATH_TO_WWDR_CERT.PEM)
要充分利用该软件包,请查看文档,并查看所有可供您使用的方法和变量。
欢迎为 PassEncoder 的源代码做出贡献,使其变得更好! 只需尽量遵守通用的编码风格,使其尽可能易于阅读。
如果您在使用代码或在使用过程中发现问题,请创建一个 issue。 如果可以,我们鼓励您贡献代码并提交pull request。
本项目基于 MIT 许可证 授权。 请确保您在使用它的过程中遵守其条款。