首页 文章

iPhone - 无法测试应用内购买

提问于
浏览
1

我已经为应用内购买的沙盒测试创建了一个测试帐户 . 我按照这些步骤进行测试

  • 已退出任何现有帐户

  • 打开应用程序并开始获取可用产品列表

  • 开始下载产品的过程

SKPayment * payment = [SKPayment paymentWithProductIdentifier:productId];

[[SKPaymentQueue defaultQueue] addPayment:payment];

理想情况下,此时我应该被要求输入用户名/密码 . 但我没有提示任何事情,交易失败(显然是因为我没有登录)

如果我尝试从设置 - >商店登录,它会询问我的信用信息,我确信没有必要 .

有人可以帮我解决这个问题 .

谢谢...

4 回答

  • 1

    好 . 这太蠢了!但希望有人可以从我的错误中吸取教训:)我正在使用adhoc发布配置文件测试应用内购买 . 对于Apple工程师来说,只要你这样做,测试帐户就会“停止”成为一个测试帐户 .

    只有在调试模式下通过XCode启动应用程序才能测试应用程序内购买!

    Update

    这不再是真的 . 据说它现在也适用于adhoc构建 .

    来源:最近使用adhoc版本测试应用内购买 .

  • 3

    确保您在配置文件中启用了应用内购买

  • 0
    • 检查canMakePayments

    • 在模拟器中,StoreKit只是没有响应:您应该在设备上进行测试

    • 您必须至少有一名观察员添加到SKPaymentQueue

    • 首先尝试询问产品清单(除了您已经知道productId的事实);听起来很傻,但SK框架远非完美 .

    此外,在向验证服务器发送{“receipt-data”:...}时,请在将收据插入json对象之前使用Base64对收据进行编码 . 官方文档中没有提到这一点:仅限于几个博客 .

  • 0

    我遇到了同样的问题 . 正如Oleg所建议的那样,问题是productID无效 . 设置一个断点

    - (void)productsRequest:(SKProductsRequest *)request didReceiveResponse:(SKProductsResponse *)response and check response.products.
    

    您可能会发现productID不在response.products中 . 发生这种情况时,交易将在用户取消购买时继续进行,因此永远不会提示登录 .

相关问题