在苹果钱包中添加多个通行证

Add mutliple pass in apple wallet

我的应用需要在苹果钱包中添加多个通行证(一组通行证)

我有PKAddPassesViewController,它有一个添加多个pass的方法,但是添加之后,它只显示1个pass。

//destinationURLs are download file URL
let pkfile1 : Data = try! Data(contentsOf: destinationURL1)
let pkfile2 : Data = try! Data(contentsOf: destinationURL2)
var pkPasses = [PKPass]()
let pass : PKPass = PKPass(data: pkfile1 as Data, error: nil)
let pass1 : PKPass = PKPass(data: pkfile2 as Data, error: nil)
pkPasses.append(pass)
pkPasses.append(pass1)

let vc = PKAddPassesViewController(passes: pkPasses) as PKAddPassesViewController
vc.delegate = self
appDelegate.window?.rootViewController!.present(vc, animated: true, completion: nil)

使用这段代码,我只得到 1 个格式正确的图表

我的 PKAddPassesViewController 通行证截图

查看您的代码,pass 和 pass1 包含相同的数据。

您上面的评论解释了为什么您只看到一张通行证,因为通行证由证书和序列号唯一索引。

电子钱包不允许使用相同索引的 2 次传递,因此您的第二次传递很可能会覆盖您的第一次传递。生成第二遍时使用不同的序列号,您将没有问题。