应用内购买返回 0 个产品和 invalidProductIdentifier

Posted

技术标签:

【中文标题】应用内购买返回 0 个产品和 invalidProductIdentifier【英文标题】:In-App Purchase returning 0 products and 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 StoreKit - invalid product id's的可能重复 【参考方案1】:

参考你的帖子:

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

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

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

【讨论】:

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

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

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

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

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

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

【讨论】:

以上是关于应用内购买返回 0 个产品和 invalidProductIdentifier的主要内容,如果未能解决你的问题,请参考以下文章

IOS 应用内购买产品

应用内购买产品 ID 更新一个落后

swift 4 中的应用内购买无效的产品标识符

多个产品的应用内购买

在 Flutter 中从 Play 商店获取产品时应用内购买崩溃

应用内购买,始终无效的产品ID