2010-04-01 40 views
1

我想在应用程序购买中测试我的应用程序。我创建了功能,测试用户,在iPhone上从iTunes注销并使用开发人员证书。以调试模式从XCode加载应用程序。在应用程序购买中测试的问题

当我点击“购买”按钮,我通过所有检查网络可用性,canMakePayments并调用

SKPayment *payment = [SKPayment paymentWithProductIdentifier:featureId]; 
[[SKPaymentQueue defaultQueue] addPayment:payment]; 

但所有我看到的是一个未决的视图,几分钟后,在

- (void) failedTransaction: (SKPaymentTransaction *)transaction 
{ 
    if (transaction.error.code != SKErrorPaymentCancelled)  
    {  
     NSLog(@"failedTransaction"); 
    } 
    [[MKStoreManager sharedManager] paymentCanceled]; 
    [[SKPaymentQueue defaultQueue] finishTransaction: transaction]; 
} 
失败

请问我应该去哪个方向找出问题以及我应该检查什么。

P.S.所有关于SO的相关问题都没有检查过。

回答

0

在这里,你有一些想法:

  1. 负载的产品,允许用户进行购买前。您需要做的第一件事是SKProductsRequest,并确保您提供的产品可以购买。

  2. 判别错误,检查SKError.h以查看商店可以返回的不同种类的 错误。通过这种方式,您将对发生的事情有更清晰的了解

  3. 某些错误(如-1003)没有记录,它们在沙箱环境中似乎是 奇怪的情况。

  4. 对于这些错误,请确保您:

    • 使用正确的测试用户。
    • 已正确配置iTunes连接中的产品。
    • 从商店注销并清除安装应用程序。只有在购买确认弹出框中要求您这样做时才能登录。
    • 如果失败,请重置网络设置,然后重新安装应用程序并再次测试。
    • 如果失败,请重置所有设置,然后重新安装应用程序并再次测试。
    • 如果失败,请重置您的设备,清除安装应用程序并再次测试。

最后,来看看这些网页:

http://troybrant.net/blog/2010/01/invalid-product-ids/

http://troybrant.net/blog/2010/01/in-app-purchases-a-full-walkthrough/