无法从服务器下载 PKpass

Unable to download PKpass from server

我一直在尝试通过几个链接从服务器下载 pkpass,但每当我下载它时,它都会显示文件大小“0 kb”,因此我无法将其转换为 pkpass 数据。 动态 pkpass 还有其他方法吗? 或者其他方式下载并加载到钱包?

它这样做是因为 pkpass 包含证书和私人信息,这就是它不下载的原因吗?

我找不到任何方法在使用 swift 4.2 或更高版本的应用程序中集成动态 pkpass。

我一直在使用但 none 有效的链接

-> Downloading PKPass in an iOS custom app from my server

->

-> open .pkpass file from Wallet using share extension iOS

终于找到了从服务器获取 pkpass 的解决方案: -> 只需从 api 响应中获取 base64 字符串 -> 将该 base64 转换为如下所示的数据

private func convertBase64ToData (base64Str:String) -> Void {
    let data = Data(base64Encoded: base64Str, options: .ignoreUnknownCharacters)
    openPkPassDataFile(passData: data!)
}

-> 然后像下面这样将数据转换为 PKPass

private func openPkPassDataFile(passData:Data) -> Void{
    let pass = try? PKPass(data: passData)
    
    let passLibrary = PKPassLibrary()
    if passLibrary.containsPass(pass!) {
        print("This pass already added in wallet. Thanks!")
    } else {
        let pkvc = PKAddPassesViewController(pass: pass!)
        pkvc!.delegate = self
        self.present(pkvc!, animated: true, completion: {() -> Void in
        })
    }
}

注意:在您的控制器中添加 import PassKitPKAddPassesViewControllerDelegate