我正在使用RMStore
在应用启动时进行收据验证。如果我在 iPhone 上登录 App Store 并在我的应用程序中进行购买,那么一切正常。当我决定在启动时测试收据刷新时,我决定退出 App Store。当我启动应用程序时,我在应用程序委托中有此代码(仅用于测试目的):
RMAppReceipt *receipt = [RMAppReceipt bundleReceipt];
DLog(@"receipt.inAppPurchases: %@", receipt.inAppPurchases);
然后我看到所有产品 ID 都存在:
[AppDelegate application:didFinishLaunchingWithOptions:] [Line 61] receipt.inAppPurchases: (
"<RMAppReceiptIAP: 0x12753f230>",
"<RMAppReceiptIAP: 0x1276485c0>",
"<RMAppReceiptIAP: 0x127647a90>",
"<RMAppReceiptIAP: 0x12764e490>",
"<RMAppReceiptIAP: 0x127645dc0>",
"<RMAppReceiptIAP: 0x12764eb20>",
为什么所有的都RMAppReceiptIAP
在场?我没有登录。理论上,RMStore 不应该知道我的任何事情。当我以原始购买者身份登录时,这些RMAppReceiptIAP
's 仍然存在于应用程序启动中,这是有道理的。最后,如果我以从未从我的应用程序购买过我的产品的用户身份登录 App Store,那么RMAppReceiptIAP
's 不存在(这很好),但是当我再次注销帐户并再次启动应用程序时,这第二次没有RMAppReceiptIAP
's。收据似乎被暂时缓存了。也许我错过了文档中的某些内容?有人可以解释为什么RMAppReceiptIAP
即使在购买者退出后仍然存在,但在新用户登录然后再次退出之后却没有?
谢谢