【问题标题】:In-App Purchase returning 0 products and invalidProductIdentifier应用内购买返回 0 个产品和 invalidProductIdentifier
【发布时间】:2011-08-03 22:57:57
【问题描述】:

我只是检查和我的:

- (void)productsRequest:(SKProductsRequest *)request didReceiveResponse:(SKProductsResponse *)response {

返回了一个产品数组大小为 0 的 SKProducstResponse。这是为什么呢?如果找不到产品,它应该返回 0 对吗?我检查了产品 ID,它与我在 iTunes Connect 中的 ID 匹配。检查了捆绑标识符,它也匹配。是的,我在设备上测试了这个

更新:

我检查了

response.invalidProductIdentifier

它返回了我试图获取的产品 ID。我浏览了这个列表:

• your app is InApp Purchases enabled? **yes**
• do you have an InApp Purchase test account? **yes**
• the product we offer is marked as "Cleared for Sale"? **yes**
• Did you upload the application to iTunes Connect? **no** (don't think it's necessary since 2011, correct me if I am wrong)
• do you generate and install a provisioning profile for the new "App ID"? **yes**
• Does your project is signed with the new provisioning profile? **yes**
• Are you compiling the project for IOS 3.0 or higher? **yes** 
• Are you using the full product ID when you make a SKProductRequest? ie for example: com.company.sampleapp.productid? **yes**
• Has it been several hours since you added the products to iTunes Connect? **yes**
• Does the contract payment application in the iTunes Connect is complete?  **just submitted it**

为了让 IAP 运行,我真的应该让付费合同生效吗?

【问题讨论】:

  • 您是否得到任何响应对象或它的空值?希望这个bit.ly/qifemx 可以帮助你。
  • 我得到一个响应对象
  • 你等得够久了吗?有时可能需要几个小时才能显示新产品。
  • 是的,检查了我上面更新的帖子

标签: iphone objective-c ipad


【解决方案1】:

参考你的帖子:

• 您在发出 SKProductRequest 时是否使用了完整的产品 ID? 即例如:com.company.sampleapp.productid? 是的

实际上,您需要准确指定您在 iTunes Connect 中输入的字符串 (productId) 作为应用内购买项目。因此,如果您指定了productId,您的 SKProductRequest 需要准确设置该字符串(没有任何 com.a.b.)。如果您在 iTunes 中指定了 com.a.b.item 之类的内容(推荐),那么您需要在产品请求中完整设置。

编辑 帖子In-App-Purchase 指出,付费应用程序合同必须有效才能允许在应用程序内购买。所以这可能是你的问题的原因。

【讨论】:

  • 合同必须按照此处发布的有效stackoverflow.com/questions/5799833/in-app-purchase
  • 谢谢,这是我的问题。我假设 itunesconnect 会为您添加 com.a.b。您的产品 ID 正是您在产品列表中看到的。
  • 非常感谢马库斯,你让我开心:)
【解决方案2】:

我遇到了同样的问题,请按照以下方法解决:

  1. 转到 iTunes connect > 协议、税务和银行业务
  2. 查看“付费应用程序”合同
  3. 我已设置联系信息、银行信息、税务信息
  4. 填写上述详细信息后,合同状态更改为“待处理”
  5. 将合同状态更改为准备就绪大约需要 30 分钟

就是这样。现在我将从以下代表那里获取产品列表。

func productsRequest(_ request: SKProductsRequest, didReceive response: SKProductsResponse)

注意:在完成上述步骤之前,我可以在上述委托方法的 SKProductsResponse.invalidProductIdentifiers 列表中看到我的产品 ID。

【讨论】:

    猜你喜欢
    • 2017-03-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-13
    相关资源
    最近更新 更多