1

苹果声明所有使用应用内购买的应用都必须把这个

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

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

我正在尝试对此进行测试,尝试在即将完成事务时拨打电话,退出应用程序或在事务完成之前停止 Xcode,但由于某种原因,即使我退出 Xcode,iOS 似乎仍在继续处理事务并且应用程序永远不会收到 SKPaymentTransactionStateRestored。该应用程序总是收到 SKPaymentTransactionStatePurchased 并且似乎是防故障的(也许新的 iOS 4 处理比 StoreKit 发布时的 3.2 更好)。

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

谢谢

4

1 回答 1

2

SKPaymentTransactionStateRestored仅适用于您打电话时restoreCompletedTransactions(因此用户可以在新设备上恢复他们的应用内购买)。如果您在没有调用的情况下退出应用程序finishTransaction:,则事务会留在队列中,您将SKPaymentTransactionStatePurchased再次获得。

于 2011-07-16T22:26:22.810 回答