iOS StoreKit - 模拟不完整和中断的应用内购买

时间:2013-11-07 14:20:11

标签: ios iphone testing sandbox storekit

我的实时应用存在问题,其中不完整的购买操作处理不当。我正在尝试测试我的新代码,以确保这将被处理,所以我下载实时应用程序,导致问题,然后加载我的开发应用程序(或Ad-Hoc应用程序)希望StoreKit观察者将捕获不完整的购买通知无论我如何做(开发或Ad-Hoc),观察者都不会发出通知。

我的一般问题是:如何在App Store测试环境中模拟不完整和中断的购买?

我更具体的问题是:我可以模拟用户必须离开应用以确认应用商店当前信用卡密码的具体问题吗?

2 个答案:

答案 0 :(得分:1)

根据this helpful page

  

测试中断的交易

     

在事务队列观察器中设置断点   paymentQueue:updatedTransactions:方法,这样你就可以控制它了   提供产品。然后在测试中照常购买   环境,并使用断点暂时忽略   事务 - 例如,通过立即从方法返回   在LLDB中使用线程返回命令。终止并重新启动你的   应用程序。 Store Kit调用paymentQueue:updatedTransactions:方法   发射后不久;这一次,让你的应用程序正常响应。   验证您的应用是否正确交付了产品并完成了   事务。

希望这有助于某人。

答案 1 :(得分:0)

提出一般问题:

SKPaymentTransaction提供了多种交易状态,例如SKPaymentTransactionStateFailed 根据{{​​3}},您可以查看error属性,了解发生了什么。 例如,你可以在-(void)paymentQueue:(SKPaymentQueue *)updatedTransactions:(NSArray *)transactions回调中查看它,如此

-(void)paymentQueue:(SKPaymentQueue *)queue updatedTransactions:(NSArray *)transactions{
    for (SKPaymentTransaction * transaction in transactions) {
        switch (transaction.transactionState)
        {
            case SKPaymentTransactionStateFailed:
                ...
                break;
            default:
                break;
        }
    };
}

希望这有帮助。