Ios 将应用程序发布到应用商店后,应用内购买恢复不起作用
我有一个很奇怪的问题。我已经为我的非耗材应用程序实施了应用程序内购买机制。它工作得很好,通过了我所有的测试。但在将应用程序提交到商店并下载后,它的恢复机制无法正常工作 以下是场景:从应用商店下载应用程序。使用我的apple ID进行应用内购买。已删除的应用。重新安装它。请求使用相同的apple ID进行还原,我得到了以下错误:找不到您输入的apple ID,或者您的密码不正确。请再试一次。。而且它刚刚开始了存储套件流程 下面是我的代码:Ios 将应用程序发布到应用商店后,应用内购买恢复不起作用,ios,iphone,objective-c,in-app-purchase,storekit,Ios,Iphone,Objective C,In App Purchase,Storekit,我有一个很奇怪的问题。我已经为我的非耗材应用程序实施了应用程序内购买机制。它工作得很好,通过了我所有的测试。但在将应用程序提交到商店并下载后,它的恢复机制无法正常工作 以下是场景:从应用商店下载应用程序。使用我的apple ID进行应用内购买。已删除的应用。重新安装它。请求使用相同的apple ID进行还原,我得到了以下错误:找不到您输入的apple ID,或者您的密码不正确。请再试一次。。而且它刚刚开始了存储套件流程 下面是我的代码: SKProductsRequest *produc
SKProductsRequest *productsRequest = [[SKProductsRequest alloc] initWithProductIdentifiers:[NSSet setWithArray:productIdentifiers]];
productsRequest.delegate = self;
[productsRequest start];
===============收到回复
- (void)productsRequest:(SKProductsRequest *)request didReceiveResponse:(SKProductsResponse *)response
{
self.products = response.products;
NSMutableArray * invalidProductIdentifiersMutable = [NSMutableArray new];
for (NSString *invalidIdentifier in response.invalidProductIdentifiers) {
[invalidProductIdentifiersMutable addObject:invalidIdentifier];
}
self.invalidProductIdentifiers = [[NSArray alloc] initWithArray:invalidProductIdentifiersMutable];
if (self.products) {
[self restorePurchase];
}
}
================开始
NSURL *receiptURL = [[NSBundle mainBundle] appStoreReceiptURL];
NSData *receipt = [NSData dataWithContentsOfURL:receiptURL];
if (!receipt) {
SKReceiptRefreshRequest * request = [[SKReceiptRefreshRequest alloc] init];
request.delegate = self;
[request start];
}
[self registerAsPurchaseObserver];
[[SKPaymentQueue defaultQueue] restoreCompletedTransactions];
=======结果
-(void)paymentQueue:(SKPaymentQueue *)queue restoreCompletedTransactionsFailedWithError:(NSError *)error
{
[Delegate transactionDidFail];
}
- (void)paymentQueueRestoreCompletedTransactionsFinished:(SKPaymentQueue *)queue
{
NSURL *receiptURL = [[NSBundle mainBundle] appStoreReceiptURL];
NSData *receipt = [NSData dataWithContentsOfURL:receiptURL];
if (receipt) {
[Delegate transactionDidRestorePurchaseSuccessfullyWithReciept:receipt];
}
else{
[Delegate transactionDidFail];
}
}
我强调,它在开发过程中工作正常,并且多次通过了我所有的测试。
但从商店下载后,它就不起作用了,而且再次说明,只有还原功能不起作用。购买工作正常。我的应用程序也有类似问题。我是如何做到这一点的: 删除应用程序 从应用商店下载应用程序 启动应用程序并单击“恢复购买”按钮,可调用: [[SKPaymentQueue defaultQueue]恢复完成的事务] 问题可能是你正在Xcode中启动应用程序?无论如何,试试这些步骤