【问题标题】:PassKit unpredictable crashPassKit 不可预知的崩溃
【发布时间】:2015-05-21 08:28:50
【问题描述】:

我们的应用日志中遇到了奇怪的崩溃:PKPaymentAuthorizationControllerExportedObject authorizationDidFinishWithError 有没有人遇到过这个问题,或者有什么有用的提示?看来这次崩溃是在付款后一段时间发生的

值得注意的是,我们没有直接集成 Apple Pay,而是使用 Braintree 框架为我们完成这项工作。

【问题讨论】:

  • 我有类似的事情(得到一个 EXC_BAD_ACCESS)——你应该仔细检查作为你的 PKPaymentAuthorizationViewControllerDelegate 的人不会很快被释放,或者至少你没有适当时取出 PKPaymentAuthorizationViewController 的委托。
  • 感谢您的评论,很遗憾我没有发现任何可疑之处。在 github here 上开始 Braintree 问题,如果有人应该有同样的问题。
  • 仅供参考,我在这里为此打开了一个雷达:openradar.appspot.com/19767271

标签: ios ios8 applepay passkit


【解决方案1】:

在使用 Braintree 和 Apple Pay 时,我还必须诊断此错误。请记住,告诉我您使用 Braintree framework 并不能说明全部情况,因为 Braintree 有两种可以集成 Apple Pay 的方法,BTPaymentProviderPKPaymentRequest。就我而言,我在使用PKPaymentRequest 时遇到了错误PKPaymentAuthorizationControllerExportedObject authorizationDidFinishWithError。具体来说,它会在第二次购买时崩溃,第一次使用 Apple Pay 时一切正常。最终,我追踪到了完成块:

completion(PKPaymentAuthorizationStatusSuccess);

在我的例子中,通过注释掉上述代码来移除完成块调用防止了这个崩溃并恢复了预期的行为,允许 Apple Pay 成功使用而不会崩溃。

这比将 Apple Pay、Braintree 错误归咎于夏娃、亚当或蛇更有效。 ;)

【讨论】:

  • 好吧,我们使用另一种方式,BTPaymentProvider,这意味着这个完成回调是不可访问的,因为它在 Braintree 实现(pod)中。不过我会调查一下,谢谢你的回复。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-07-31
  • 2012-12-28
  • 1970-01-01
  • 2011-09-08
  • 1970-01-01
  • 2012-09-19
  • 2020-04-18
相关资源
最近更新 更多