应用程序更新后,[NSBundle appStoreReceiptURL]的收据是否仍然存在

tec*_*Mex 7 iphone in-app-purchase ios receipt-validation

在生产环境中,如果用户进行应用内购买,然后更新到应用的较新版本,那么反映应用内购买仍然存在于捆绑中的收据?或者它是否被应用更新消灭了?

Rhy*_*wis 1

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

\n
\n

收据是购买的可信记录,以及用户进行的任何应用内购买\xe2\x80\x94,就像在商店购物时\n收到的纸质收据一样。以下是有关收据的一些\n要点:

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

    \n
  • \n
  • 针对特定版本的应用程序和特定设备发出收据。

    \n
  • \n
  • 收据存储在设备本地。

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

    \n
  • \n
  • 安装应用程序后,将发出与应用程序和设备\n匹配的收据。

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

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

    \n
  • \n
  • 当发生应用内购买时,系统会发出收据,以便可以访问该收据来验证该购买。

    \n
  • \n
  • 恢复以前的交易后,会开具收据,以便可以访问该收据来验证这些购买。

    \n
  • \n
\n
\n

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

\n

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

\n