iPhone InApp购买问题 - canMakePayments总是失败

时间:2011-08-12 09:43:50

标签: iphone in-app-purchase

我一直在努力寻找这个问题,也有类似的问题,但找不到我的问题的答案。

问题是“[SKPaymentQueue canMakePayments]”总是失败。代码非常简单如下。

if ([SKPaymentQueue canMakePayments]) //
{ 
    NSLog(@"able to make payments");
    [[SKPaymentQueue defaultQueue] addTransactionObserver:g_custom_store_observer]; // Register the observer

    SKMutablePayment *myPayment = [SKMutablePayment paymentWithProductIdentifier: strItemName];
    myPayment.quantity = 2;
    [[SKPaymentQueue defaultQueue] addPayment:myPayment];
}
else{
    NSLog(@"not able to make it");
    return KD_FALSE;
}

我想我在测试过程中遗漏了一些东西。我到目前为止所做的是

  • 将我的应用程序注册到iTunesConnect(创建了一个新应用程序,并检查了Bundle ID)
  • 设置'权利和定价',我的是'免费'应用
  • 从iTunesConnect上的“管理应用内购买”菜单中添加了“耗材”。 填写所有文本字段,上传图片以供审核,所有这些字段现在处于“等待审核”状态。
  • 创建了一个测试用户
  • 重建(清理并构建)我的应用程序,检查Bundle ID,使用正确的分发证书进行代码签名。捆绑包ID与iTunesConnect页面上的应用程序详细信息中显示的完全相同。
  • 将我新建的应用程序上传到iTunesConnect(已上传二进制文件,无代码信号错误),现在处于“等待审核”状态。
  • 现在我想查看应用内购买工作,我在iPad设备上运行了我的应用程序的调试版本。它内置在调试模式下,使用我的开发人员证书进行代码签名,完全相同的代码上传到iTunesConnect。
  • 在我的iPad上,我从iTunesStore退出
  • Ran my App
  • 当我触发上面的代码时,'canMakePayments'总是失败。

唯一不同于其他普通iPhone应用程序的是我的基于OpenGl的游戏,因此大部分代码都是用C ++编写的,与用ObjectiveC / C ++编写的iPhone平台特定内容连接。

因此上面的代码是从C ++模块调用的,并且还没有创建iOS特定的UIViewController。在我调用[SKPaymentQueue canMakePayments]之前我是否需要UIViewController?

我错过了什么吗?

提前致谢。

1 个答案:

答案 0 :(得分:4)

我很惭愧和尴尬,这完全是我的错误......:$

我再次按照说明进行操作 http://troybrant.net/blog/2010/01/in-app-purchases-a-full-walkthrough/ (谢谢'特洛伊')但没有收获...... 我尝试撤销并重新颁发证书和配置文件,构建我的应用程序并将其上传到AppStore ..我浪费了几天。

最后我发现了问题所在。 :$

问题是我的iPad设置..(设置 - >一般 - >限制) 我记得很久以后我启用了限制,以避免孩子的错误购买商业用品......

对不起家伙这个烂摊子......:$