Ios 将应用程序发布到应用商店后,应用内购买恢复不起作用

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

我有一个很奇怪的问题。我已经为我的非耗材应用程序实施了应用程序内购买机制。它工作得很好,通过了我所有的测试。但在将应用程序提交到商店并下载后,它的恢复机制无法正常工作

以下是场景:从应用商店下载应用程序。使用我的apple ID进行应用内购买。已删除的应用。重新安装它。请求使用相同的apple ID进行还原,我得到了以下错误:找不到您输入的apple ID,或者您的密码不正确。请再试一次。。而且它刚刚开始了存储套件流程

下面是我的代码:

    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中启动应用程序?无论如何,试试这些步骤