SKReceiptRefreshRequest 是否仅限于测试环境,或者我可以在应用程序的最终版本中调用它吗?

Is SKReceiptRefreshRequest limited to the testing environment, or can I call it in the final version of the app?

我正在开发一个使用 In App Purchase 的 iOS 应用程序,我不确定我是否对 SKReceiptRefreshRequest 有很好的理解。它只能在测试环境中使用,还是可以在商店的最终应用程序版本中使用它? IAP 中的许多功能都依赖于更新收据,但一个问题是,在测试环境中,触发 SKReceiptRefreshRequest 会导致应用程序提出对 Apple ID 凭据的请求。如果 SKReceiptRefreshRequest 也用于最终的应用程序版本,它是否也会在用户设备上触发凭据请求?

您不应该打电话给 SKReceiptRefreshRequest 来更新收据。如您所见,只要您访问收据,它就会触发凭据请求。这是因为收据链接到设备上的 iTunes 帐户。

如果您经常需要收据中的信息,您应该将其存储在服务器上并在那里保持最新。您可以使用 Apple 的 /verifyReceipt 端点更新服务器上的收据,这样就无需从设备获取用户凭据。