1

Apple 拒绝了我的申请,原因如下:“应用程序以非标准方式启动应用内购买流程。

应用程序没有先显示项目描述并在用户点击确定后要求登录,而是先要求登录,这是错误的顺序。"

我检查了我的代码,但它与我的其他应用程序相同,应用程序内购买工作正常。然后我更改了捆绑 ID 和产品 ID(从我的其他应用程序设置捆绑 ID)并且效果很好!

我觉得这很奇怪。有人遇到过这个问题吗?你能帮助我吗?

升级版:

在调试器中,我看到了这个错误:

“完成交易期间出现意外异常:无法完成购买交易”

它此时发生在代码中:

    @try 
    {
        [[SKPaymentQueue defaultQueue] finishTransaction: transaction]; 
    }
    @catch (NSException *exception) 
    {
        NSLog(@"Unexpected exception during finish transaction: %@", exception);
    }
4

2 回答 2

7

您的错误消息似乎表明您正在尝试完成状态为SKPaymentTransactionStatePurchasing.

您应该[transaction transactionState]首先检查交易的状态,以确保交易是:

SKPaymentTransactionStateFailed

SKPaymentTransactionStatePurchased

SKPaymentTransactionStateRestored

有关进一步说明,请参阅 Apple 文档:

您的应用程序应该从收到付款队列通知的事务观察器调用此方法。在事务上调用 finishTransaction: 会将其从队列中移除。您的应用程序应该调用 finishTransaction: 只有在它成功处理了事务并解锁了用户购买的功能之后。

在处于 SKPaymentTransactionStatePurchasing 状态的事务上调用 finishTransaction: 会引发异常。

于 2012-10-19T12:45:26.997 回答
0

是的,我解决了这个问题。这很奇怪,但是在 itunesconnect.apple.com 中重新创建我的游戏对我有帮助。

于 2012-10-23T10:56:21.997 回答