【问题标题】:InAppPurchase invalid product identifiers - Possible ReasonsInAppPurchase 无效的产品标识符 - 可能的原因
【发布时间】:2012-07-08 09:36:03
【问题描述】:

在我的应用内购买试验中追查这个问题已经是一个漫长的夜晚,但我似乎无法解决这个问题。我的产品标识符不断返回为“无效的产品标识符”。希望有人指出; (使用当前的配置文件和 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"]];
    

可以提供任何其他信息。

【问题讨论】:

    标签: iphone ios ios5 in-app-purchase


    【解决方案1】:

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

    根据文档,SKProductRequest 应该是;

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

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

    com.my_site.my_app.my_product
    

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

    解决方案 #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 列表的原因”, here 。您还可以找到他关于实施和设置 IAP 的详细演练, here

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

    【讨论】:

    • 我已经尝试了几个小时,但我快疯了。出于某种原因,您的解决方案 1 有效。谢谢!
    • 谢谢谢谢,我刚刚发送了没有捆绑ID前缀的产品ID,它起作用了!
    • @Bartu:我们在 iOS7 下的 App Store 上遇到了一个非常奇怪的问题,请参阅stackoverflow.com/questions/28849100/…,我愿意尝试这个。我想知道您在 iTunes Connect 中设置的标识符是什么?是 com.my_site.my_app 还是只是 my_product?
    • 在这个问题上花了 2 天时间,但可以找到任何解决方案。从字面上看,一切都像地狱一样尝试。我什至尝试使用应用程序 ID,但不使用名称,并且应用程序名称的解决方案编号 1 有效.. 非常感谢.. 问题和答案都 +1..
    【解决方案2】:

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

    • 请从设备中删除现有应用程序并安装 来自 Xcode 的全新构建。

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

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

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

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

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

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

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

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

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

    请参考Reference

    【讨论】:

    • #3 帮了我大忙——如果您使用多个构建目标灵活地为不同的 API 环境编译应用程序,这似乎是一个很常见的陷阱。
    • 对我来说,我必须在最后一部分上传一个项目截图(在应用审查之前可以使用虚拟截图)才能最终让事情正常进行。
    【解决方案3】:

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

    【讨论】:

      【解决方案4】:

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

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

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

      【讨论】:

        【解决方案5】:

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

        【讨论】:

        • 是的。我在创建应用内购买后尝试使用新的配置文件和我之前创建的配置文件。没有任何效果。
        【解决方案6】:

        事情最终对我有用:

        • 我使用 Xcode 自动配置文件,但我在应用商店连接网页上与配置文件有点混淆。我确保 id 在 Xcode 和网页上匹配。
        • 我只需要产品 ID,而不是完整的 com.company.app.product
        • 我花了大约 2 个小时才搞定,所以 Apple 的服务器可能需要一些刷新时间

        【讨论】:

          【解决方案7】:

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

          • 确保 iTunes Connect 中的 BundleID 与 Xcode 项目中的匹配。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2014-08-04
            • 2012-08-08
            • 1970-01-01
            • 2017-09-05
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多