【问题标题】:In IOS in app purchase, how to check why response.products.count is always 0?IOS in app purchase,怎么查看response.products.count为什么总是0?
【发布时间】:2019-09-11 04:25:15
【问题描述】:

我正在尝试为消耗品实施 Ios 应用内购买。我在 appstore connect 中的应用中添加了 2 个产品,其中 id 如下:net.company.app.3000 和 net.company.app.10000。两者都明确出售。在我的代码中,我尝试了类似的方法:

@IBAction func addButtonPushed(_ sender: Any) {
    let ids = Set(["net.company.app.3000","net.company.app.10000"])
    let r = SKProductsRequest(productIdentifiers: ids)
    r.delegate = self
    print("r=\(r)")
    r.start()
}

func productsRequest(_ request: SKProductsRequest, didReceive response: SKProductsResponse) {             
     print(response.products.count)
     print(response.invalidProductIdentifiers.description)
    }

这里的产品计数始终为 0。我还提交了带有版本的产品,但被拒绝了,他们拒绝了,因为购买不起作用。当然,没有拼写错误。

现在,我的问题是,我怎样才能得到我的 product.count 始终为 0 的原因/响应?

【问题讨论】:

  • 您是否使用沙盒测试仪对其进行测试?而且您是否尝试过不使用 Set 而只是这样做: ids = ["net.company.app.3000","net.company.app.10000"] ?
  • 是的,我是沙盒用户,现在只是尝试不使用 set,它显示此错误:无法将类型“[String]”的值转换为预期的参数类型“Set”。此外,它曾经可以工作,而我从公司的帐户上传了相同的代码。现在,我正在尝试从客户的帐户上传它,并更改捆绑 ID 和产品 ID。但是,它现在不工作了。
  • 检查您的SKResponse 上的invalidProductIdentifiers 的内容 - 您的产品标识符可能不正确;您是否已完成 App Store Connect 中付费应用的所有协议?
  • ["net.company.app.10000", "net.company.app.3000"] -> invalidProductIdentifiers 内容。我检查了很多次拼写。他们是正确的。此外,它不是付费应用程序。该应用程序是免费的,只是有一些消耗品可以购买。
  • @TazwarUtshas 你有什么解决办法吗?实际上我在 IAP 中遇到了同样的问题,我已经配置了协议税收和银行业务,沙盒测试器,尝试使用测试器帐户登录,在目标功能中的应用程序购买是开启的,在配置文件中启用了 IAP,所以我重新安装了很多次应用程序,但我的产品数量仍然是 0。

标签: ios swift in-app-purchase


【解决方案1】:

请检查以下几点:

1) In app purchase in target's capabilities?  
2) IAP should be enable in provision profile. 
3) Also have a look into contract. 
4) Try to delete and install again.

【讨论】:

  • 这些我都试过了。不知道为什么他们不工作。
  • 其实我的代码没问题。我做了代码,首先通过我的公司帐户上传了应用程序,那时它运行良好。然后我将相同的代码上传到我的客户帐户,现在它无法正常工作。
【解决方案2】:

你能强制转换设置你的 SKProduct 请求,如下所示

    let productIDs = Set([
                          "net.company.app.3000",
                          "net.company.app.10000",
                          ])
    //Force Cast
    let request = SKProductsRequest(productIdentifiers: productIDs as! Set<String>)
    request.delegate = self
    request.start()

如果您的 id 是真实的并添加到 AppStore Connect 帐户,这应该可以工作

【讨论】:

    【解决方案3】:

    我发现,主要问题在于帐户所有者的付款帐户设置。因此,在这种情况下,无法从代码中找到错误。

    【讨论】:

      猜你喜欢
      • 2016-03-15
      • 2013-06-02
      • 2016-11-23
      • 2021-02-15
      • 1970-01-01
      • 2013-02-11
      • 1970-01-01
      • 2017-05-29
      • 2015-05-05
      相关资源
      最近更新 更多