【问题标题】:Is the receipt at [NSBundle appStoreReceiptURL] still present after an app update应用更新后 [NSBundle appStoreReceiptURL] 的收据是否仍然存在
【发布时间】:2014-11-12 08:12:29
【问题描述】:

在生产环境中,如果用户进行了应用内购买,然后更新到较新版本的应用,那么反映应用内购买的收据是否仍然存在于捆绑包中?还是会因为应用更新而消失?

【问题讨论】:

  • 为什么重要?假设在某些情况下收据可能会被删除,因此如果没有,您的应用需要下载新副本。你有什么问题?
  • 没有具体问题,我很想知道它是否通常会持续存在,或者我是否必须始终请求一个新问题
  • 如果没有,您应该始终请求一个新的。丢失的原因或时间无关紧要。您如何处理无法获得新收据是另一个问题。
  • 请求新收据会提示用户输入他们的 iTunes 密码。我不希望这个提示意外弹出(从用户的角度来看)。因此,我试图更好地了解何时可以删除收据,因为苹果文档像往常一样在这方面含糊不清。
  • 您通过试用找到这个问题的答案了吗?我想知道同样的事情。

标签: ios iphone in-app-purchase receipt-validation


【解决方案1】:

好的,我想我终于找到了这个问题的答案。

收据是值得信赖的购买记录,以及 用户进行的任何应用内购买——就像一张纸 在商店购物时收到的收据。这里有一些关键 关于收据的要点:

  • Apple 通过 App Store 创建并签署收据。

  • 为特定版本的应用程序和特定设备开具收据。

  • 收据本地存储在设备上。

  • 每次安装或更新时都会发出收据 发生。

  • 安装应用程序时,与 申请和设备发行。

  • 更新应用程序时,会发出与应用程序新版本匹配的收据。

  • 每次发生交易时都会发出收据:

  • 当发生应用内购买时,会发出收据,以便可以访问以验证购买。

  • 当恢复之前的交易时,会发出收据,以便访问以验证这些购买。

来自https://www.objc.io/issues/17-security/receipt-validation/

因此,如果您更新收据上有购买历史记录的应用,则此购买历史记录应包含在为新应用版本签发的新收据中。 (当然,除非它是消耗品)。

【讨论】:

  • 恢复购买时,如果我访问未更新的本地应用收据。这发生在生产中。你能证明一下吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-02-19
  • 2015-07-24
  • 1970-01-01
  • 2021-12-27
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多