2011-07-16 45 views
1

苹果指出,使用应用程序内购买的所有应用程序都将这个iPhone - 应用程式内未能购买测试

[[SKPaymentQueue defaultQueue] addTransactionObserver:self.observer]; 

在应用程序的开始,以处理任何成功的销售,由于某种原因,设备尚未收到发布内容的确认。

我试图测试这个,试图打电话时它即将完成交易,退出应用程序或在交易完成前停止Xcode,但由于某种原因,即使当我退出Xcode,iOS似乎继续处理事务并且应用程序永远不会收到SKPaymentTransactionStateRestored。该应用程序总是收到SKPaymentTransactionStatePurchased并且看起来是失败证明(也许当发布StoreKit时,新的iOS 4处理比3.2版更好)。

我的问题是:你们是否知道我可以在这里创建的任何情况来生成失败并在应用程序启动时收到SKPaymentTransactionStateRestored?我需要测试应用程序是否适合这种情况。

感谢

回答

2

SKPaymentTransactionStateRestored只有当你调用restoreCompletedTransactions(这样用户就可以在新设备上恢复他们的应用程序内购买)进行。如果您在不致电finishTransaction:的情况下退出应用程序,交易将保留在队列中,您将再次获得SKPaymentTransactionStatePurchased

+0

啊,好的,但现实生活中会发生什么样的情况,交易永远不会结束? – SpaceDog

+0

无。只要您注册了观察员,回调将始终被调用。如果失败,有SKPaymentTransactionStateFailed。 – jtbandes

+0

好吧。谢谢!!!! – SpaceDog