iOS Sandbox - 无法两次购买耗材

use*_*688 7 itunesconnect objective-c ios

问题:我正在尝试使用沙盒帐户测试应用内购买,但每次尝试两次购买耗材时,都会收到以下错误消息:

You've already purchased this In-App Purchase but it hasn't been downloaded. 
                         [Environment: Sandbox]
Run Code Online (Sandbox Code Playgroud)

这只发生在使用iOS <6时.我读过这可能是与沙箱相关的问题.有谁知道这个陈述是否有任何真相?

我确信正在进行以下调用以完成第一笔交易:

[[SKPaymentQueue defaultQueue] finishTransaction:transaction]
Run Code Online (Sandbox Code Playgroud)

我也尝试过这个调用,以便在没有运气的情况下清除队列:

[[SKPaymentQueue defaultQueue]  restoreCompletedTransactions];
Run Code Online (Sandbox Code Playgroud)

我也确定在测试iAP之前,我已经退出了iTunes商店.此外,我还检查了构建和版本号是否在Xcode中我的Target的Summary窗格中.

met*_*eth 0

问题可能是您的代码中缺少这行

[[SKPaymentQueue defaultQueue] addTransactionObserver:self];

几天前我遇到了同样的错误。这条线为我解决了问题。此行添加了应用程序内的观察者。