如何从事务队列中删除非常旧的,已停止使用的应用内购买

时间:2013-08-13 13:41:18

标签: iphone ios ios6 in-app-purchase

我公司最近将iOS应用程序的开发外包给第三方开发人员。该应用程序包含了大量的应用程序内购买,开发人员向我们发送了各种版本,其中许多版本都是预备版并包含错误。结果,我的手机(iPhone 4S)似乎有很多已停止的应用内购买尝试,导致它每天多次出现密码请求。

已删除购买的测试帐户。 该应用已从手机中删除。

一些谷歌搜索并查看stackoverflow似乎表明,有一些购买卡在队列中,一旦我使用另一个应用程序内购买的应用程序,一直试图完成。但是我不知道如何清除这个队列并删除这些烦人的弹出窗口。

是否有一个万无一失的方法,或者我可以使用的短代码提取方法可以做到这一点?我可以访问Xcode和Xamarin Studio,并且具有中等技术知识,但不是iOS开发方面的专家。

提前致谢。

1 个答案:

答案 0 :(得分:6)

AFAIK,无法接收和处理发送到其他应用程序的交易。

你“确定”你删除了该应用吗?您确定使用的应用程序可能与其他名称一样,使用与旧应用程序相同的bundleID吗?

编辑:根据Nande的建议,我正在为实际答案添加代码,以便人们可以看到它而无需查看我的链接。

// take current payment queue
SKPaymentQueue* currentQueue = [SKPaymentQueue defaultQueue];
// finish ALL transactions in queue
[currentQueue.transactions enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {
    [currentQueue finishTransaction:(SKPaymentTransaction *)obj];
}];