12

在我的应用内购买试验中追查这个问题已经是一个漫长的夜晚,但我似乎无法解决这个问题。我的产品标识符不断返回为“无效的产品标识符”。希望有人指出;(使用当前的配置文件和 appId 我得到了推送通知)

  1. 我的 App ID 已生成(没有通配符) - 已启用 inApp 购买

  2. 我的 IAP(应用内购买)被添加到“管理您的应用内购买”中并被清除出售。

  3. 我的 IAP 是在 24 小时前添加的(可能还要几个小时)并且处于“等待审核”状态

  4. 我的应用程序本身被开发者拒绝 > 状态为“准备上传”,应用程序内购买已添加到应用程序中。

  5. 我的手机没有越狱(至少现在没有,两种方式都没有)

  6. 我正在使用 3GS、5.1 iOS。

  7. 我当前的配置文件是“开发人员配置文件”而不是“分发配置文件”。“分发配置文件”仅在上传应用程序二进制文件时使用。

  8. 我正在为 iOS 5.0 构建并且构建配置设置为调试。

  9. 从字面上看,我现在删除了该应用程序 100 次。

  10. 所有详细信息都在 iTunes Connect 中设置,包括银行详细信息。

  11. 我创建了一个测试用户,并从设备上的“设置 > 商店”登录。

  12. 我的SKProductRequest

    SKProductsRequest *productRequest = [[SKProductsRequest alloc]initWithProductIdentifiers:[NSSet setWithObject:@"com.my_site.my_app.my_product"]];
    

可以提供任何其他信息。

4

7 回答 7

8

我不知道如何,也不知道它是否仍然有效。但这是一个有趣的解决方案,它让我解决了我的问题。

根据文档, SKProductRequest 应该是;

SKProductsRequest *productRequest = [[SKProductsRequest alloc]initWithProductIdentifiers:[NSSet setWithObject:@"com.my_site.my_app.my_product"]];

你的产品要求应该是这样的;

com.my_site.my_app.my_product

但在我的情况下,我只是发送了我的产品 ID,就像这样,它工作了

解决方案#1

SKProductsRequest *productRequest = [[SKProductsRequest alloc]initWithProductIdentifiers:[NSSet setWithObject:@"my_product"]];

在深入研究时,我发现对于某些人来说,这种表示法也有效;

解决方案#2

SKProductsRequest *productRequest = [[SKProductsRequest alloc]initWithProductIdentifiers:[NSSet setWithObjects:@"com.my_site.my_app","my_product",nil]];

我的设置没有问题,应该提供上面列出的东西,如果有人遇到无效产品标识符的问题,我建议他们访问 Troy Brant 的“无效产品 ID 列表的原因”,这里您还可以在此处找到他关于实施和设置 IAP 的详细演练。

如果您感到绝望,我强烈建议您尝试这两种解决方案,它们可以使您免于数小时的挫败感。

于 2012-07-09T10:33:16.637 回答
5

请确保您没有错过以下列表中的任何内容。

  • 请从设备中删除现有应用程序并从 Xcode 安装新版本。

  • 您是否为您的 App ID 启用了应用内购买?

  • 您项目的 .plist Bundle ID 是否与您的 App ID 匹配?

  • 您是否为新的 App ID 生成并安装了新的配置文件?

  • 您是否已将项目配置为使用此新的配置文件进行代码签名?

  • 您在发出 SKProductRequest 时是否使用了完整的产品 ID?

  • 将产品添加到 iTunes Connect 后,您是否等待了几个小时?

  • 您的银行详细信息在 iTunes Connect 上是否有效?

  • 你的设备越狱了吗?如果是这样,您需要恢复越狱才能使 IAP 正常工作。

如果您对这些问题中的任何一个回答“否”,那就是您的问题。

请参考参考

于 2017-02-27T05:27:21.693 回答
3

我的付费应用程序协议在 iTunes Connect 中无效。我一同意新的,它就解决了问题。

于 2016-12-18T14:56:28.733 回答
1

就我而言,问题是我之前创建了“ StoreKit 配置文件”,然后在产品方案中进行了更改:

转到产品 > 方案 > 编辑方案并在选项下的运行/调试选项卡中选择 StoreKit 配置文件。

显然这个配置被用来代替我的 App Store Connect IAP。因此,解决方案是取消选中该选项。如果出于某种原因仍需要 StoreKit 配置文件,则不必删除它。

于 2021-09-14T13:10:03.837 回答
0

您正在使用最新的配置文件权利(在设置应用内购买后下载)。

于 2012-07-09T07:09:33.777 回答
0

花了几天的时间。这是我缺少的东西:

  • 确保 iTunes Connect 中的 BundleID 与 Xcode 项目中的匹配。
于 2018-03-13T22:26:43.397 回答
0

事情最终对我有用:

  • 我使用 Xcode 自动配置文件,我在应用商店连接网页上与配置文件有点混淆。我确保 id 在 Xcode 和网页上匹配。
  • 我只需要产品 ID,而不是完整的 com.company.app.product
  • 我花了大约 2 个小时才完成工作,所以苹果服务器可能需要一些刷新时间
于 2019-07-06T18:59:08.570 回答