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

Nan*_*nde 3 iphone in-app-purchase ios ios6

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

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

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

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

提前致谢.

Ale*_*liy 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];
}];
Run Code Online (Sandbox Code Playgroud)