【问题标题】:SKPayementQueue: restoring transactions finishes without calling 'updatedTransactions' in release config but not debug configSKPayementQueue:恢复交易完成而不在发布配置中调用“updatedTransactions”但不是调试配置
【发布时间】:2009-11-13 01:58:35
【问题描述】:

我正在调试恢复事务,在我的调试配置中一切正常:

我调用的IE:

  [[SKPaymentQueue defaultQueue] restoreCompletedTransactions];

稍后队列调用:

- (void)paymentQueue:(SKPaymentQueue *)queue updatedTransactions:(NSArray *)transactions

然后它会调用:

- (void)paymentQueueRestoreCompletedTransactionsFinished:(SKPaymentQueue *)queue {

每个人都很开心。

但是在我的发布配置中,我从未看到对 updatedTransactions 的调用,因此我从未真正恢复购买。

可能相关,在我尝试还原后它不起作用。我重新启动应用程序,发现向商店索取产品列表时没有得到响应。

【问题讨论】:

  • 我相信这是 storekit 中的一个错误。
  • 发布调试/发布配置中的差异会有所帮助。只是代码签名和优化不同,还是还有其他变化?
  • StoreKit 真的很糟糕;我认为卡尔是对的。我希望你能解决问题,但如果这个问题持续一段时间,我不会感到惊讶。
  • 我遇到了同样的问题。这是4年后的错误吗?或者有什么方法可以进行不同的测试或更改代码?

标签: iphone iphone-sdk-3.0 in-app-purchase storekit


【解决方案1】:

此错误情况与配置无关。这是商店套件中的间歇性错误。

【讨论】:

    【解决方案2】:

    Carl,正如您所说,这似乎是一个间歇性错误。 但是,我还发现,如果我使用美国商店对其进行测试,它不会发生(或者至少我还没有看到)。我一直在使用英国测试用户,今天它每次都失败了。创建了一个美国测试用户,自动切换到美国商店后,再次完美运行。 这不是一个修复,但它可能有用;)

    【讨论】:

      【解决方案3】:

      你是这样把你的支付对象添加到支付队列中的吗?

      SKPayment *payment = [SKPayment paymentWithProductIdentifier:"您的产品标识符"]; [[SKPaymentQueue defaultQueue] addPayment:payment];

      如果你使用这种方式,那么在支付队列中添加支付对象后会立即调用UpdatedTransactions。你不必显式调用它。它由store kit处理。

      【讨论】:

      • 这与 OP 的恢复问题有什么关系?
      猜你喜欢
      • 2013-06-03
      • 2014-03-21
      • 2012-02-19
      • 1970-01-01
      • 2011-04-27
      • 1970-01-01
      • 2011-06-02
      • 2011-05-27
      • 2010-10-16
      相关资源
      最近更新 更多