【问题标题】:Can retrieve pass from PassBook ok on Simulator but not on iOS device可以在模拟器上从 PassBook 中检索通行证,但在 iOS 设备上不行
【发布时间】:2013-03-11 07:39:44
【问题描述】:

我遇到了一个我无法解决的问题。我们有一个可以存储卡片的应用程序,这些卡片可以添加到 iOS 上的存折中。我们对此没有任何问题。 但是,当我们需要更新存折中的卡时,我们无法从存折中检索卡 - 我们总是返回 nil。但是在模拟器上它总是有效的。

这就是我的称呼

_passLib = [[PKPassLibrary alloc] init];
NSString* serialId = [[NSString alloc] initWithFormat:@"%@", card.serialId];
PKPass *oldPass = [_passLib passWithPassTypeIdentifier:@"pass.com.mydomain.iphone.Product" serialNumber:serialId];

标识符和序列号 100% 正确。添加卡时,我输出这些值以仔细检查它们是否与上述相同。有没有人有这个或有一些想法可以帮助我解决这个问题? 非常感谢

编辑 1 只是补充。如果我尝试再次添加通行证 - PKAddPassesViewController 会显示新通行证,但“添加”按钮是灰色的,因为我们已经添加了通行证。所以它就像它知道它在那里,但是方法 containsPass 和 passWithPassTypeIdentifier 都失败了..

【问题讨论】:

  • 你的App有权限访问passTypeIdentifier吗?
  • 不确定 - 这些权限是如何设置的?
  • 应用程序本身正在将通行证添加到 Passkit。我们对两者使用相同的 passTypeIdentifier。它也与我们在权利文件中的内容相匹配。我们还缺少什么?
  • 我还注意到 containsPass 在设备上也不起作用(在模拟器上还可以),并且查看您甚至不需要权利的文档
  • 如果 containsPass 方法告诉您该通行证不在设备上,您应该首先确保该通行证实际上已添加到通行证库中。打开 Passbook 应用程序并确保它确实存在。在您尝试添加通行证之前不会验证通行证,因此即使它显示在设备上,它也可能不会实际添加。如果无效,请检查控制台日志(Xcode 设备管理器)以获取更多信息。

标签: ios passbook


【解决方案1】:

好吧,终于明白了。我需要在开发中心配置我的 App Id 并启用“通过”。然后我必须生成一个新的配置文件并使用它。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-16
    • 2014-12-24
    • 1970-01-01
    • 1970-01-01
    • 2014-04-08
    相关资源
    最近更新 更多