应用内购买是否适用于具有iOS测试版的用户?

应用内购买是否适用于具有iOS测试版的用户?,ios,iphone,beta,in-app,Ios,Iphone,Beta,In App,我在app store中有一个应用程序,并已确认我的应用程序内购买在最新的官方版本中有效。然而,我的一些应用程序用户很狡猾,他们拥有未发布的iOS版本。我的应用程序的应用内购买是否仍适用于iOS测试版?因为至少有一个或两个用户报告他们的应用程序内购买未被正确标记为已购买 如果您想了解详细信息,当我的应用程序将物品标记为已购买时,不会下载太多内容。它只需在docs目录中写入一个文件,就可以无限播放 更新: 我在苹果开发者论坛上读到 “存储套件流程”是在尝试 购买“应用内购买”项目,以便商店套件确定

我在app store中有一个应用程序,并已确认我的应用程序内购买在最新的官方版本中有效。然而,我的一些应用程序用户很狡猾,他们拥有未发布的iOS版本。我的应用程序的应用内购买是否仍适用于iOS测试版?因为至少有一个或两个用户报告他们的应用程序内购买未被正确标记为已购买

如果您想了解详细信息,当我的应用程序将物品标记为已购买时,不会下载太多内容。它只需在docs目录中写入一个文件,就可以无限播放

更新:

我在苹果开发者论坛上读到

“存储套件流程”是在尝试 购买“应用内购买”项目,以便商店套件确定 用户的storekit帐户存在问题 例如,当信用卡信息过期时。当这个问题 如果检测到,则用户可以选择进入应用商店 应用程序来更新他们的帐户信息。过去的情况是 StoreKit会提醒用户,并要求他们在应用程序中修复问题 应用商店,当检测到问题时。从iOS 7开始 在尝试实际充电之前,检查不会打扰用户- 请求下载应用程序或用户尝试下载应用程序时 应用内购买

因此,我认为我的代码可能已经提前完成了事务。这是我认为与我的怀疑有关的代码。有人能再次检查或澄清吗

- (void)failedTransaction:(SKPaymentTransaction *)transaction  //Working
{
    //NSLog(@"failedTransaction.");
    if (transaction.error.code != SKErrorPaymentCancelled)
    {
        // error!
        NSLog(@"Transaction error: %@", transaction.error.localizedDescription);
        [self finishTransaction:transaction wasSuccessful:NO]; //TODO: Remove this, it may be causing the bug with transaction errors in Multi Path Audio 1.1.4
    }
    else
    {
        //NSLog(@"failedTransaction, user just cancelled.");
        // this is fine, the user just cancelled
        [[SKPaymentQueue defaultQueue] finishTransaction:transaction];
    }
}

只有当您将商品交付给用户时,您才必须调用finishTransaction。行动的顺序是:苹果拿走用户的钱。你送货。您可以调用finishTransaction。如果你不发货,那没关系,苹果会记住并再次询问你,直到你打电话给finishTransaction。如果您在未交付的情况下调用finishTransaction,则表示您在欺骗客户


如果用户与商店的互动结束,而用户没有交钱,你将永远不会被告知购买情况

除了9.1测试版中可能出现的bug外,IAP应该可以正常工作。也许您的代码做出了一些在iOS 9下失败的错误假设。在你的问题中显示你的相关代码,这样人们可以看到你是否做得不正确。好的,谢谢!我已经用一些可疑代码和更多信息更新了我的问题。另一方面,beta意味着beta,意思是“如果东西不起作用,就没有权利抱怨”。我在StackOverflow上读到了这里,还有几个地方应该称为finishTransaction,有三个地方。。。SKPaymentTransactionStatePurchased、SKPaymentTransactionStateRestored、SKPaymentTransactionStateFailed。这是正确的吗?因此,我可能会创建一个新的测试,以确保在调用finishTransaction之前货物已经交付。谢谢你的建议!这最终是正确的答案。在iOS 9中,由于我检查的方式,我的存储套件逻辑没有返回准确的响应,我必须添加额外的逻辑,以确保在完成交易之前购买并交付物品。谢谢