iPhone - 在App中购买,没有有效的产品

时间:2012-10-04 13:22:39

标签: ios in-app-purchase bundle

尝试在iPhone / iPad应用中测试应用内购买功能时,我不断收到“无效产品”消息。我在网上检查过很多名单,并且我对所有内容都很满意。

1 个答案:

答案 0 :(得分:1)

经过几个小时的处理这个bug后,我终于发现了实际的问题,因此解决了这个问题。

是的,您不需要提交二进制文件来测试应用内购买。但是,由于我无法弄清问题是什么,所以无论如何我决定提交我的二进制文件。我想,我已经完成了其他所有可能会受到伤害的事情。

所以,这就是我所做的:

  1. 存档我的应​​用
  2. 点击“分发”按钮
  3. 选择“提交至iOS App Store”并单击“下一步”
  4. 再次单击“下一步”以登录iTunes Connect
  5. BAMM!

    我收到了消息:“没有可用于签名的身份”

    什么?!这是什么意思?

    这是一个非常好的信息,以便我缩小问题的范围。这告诉我,我无法将我的应用程序提交到应用程序商店,嗯,所以我想我应该仔细检查软件包ID。在应用程序中看起来不错,iTunes连接怎么样?我登录iTunes Connect并转到管理应用程序并选择了我的应用程序。

    呃,哦!什么?我有错误的捆绑ID?怎么来的?

    嗯,这是因为当我在最新的Xcode中创建我的应用程序的这个新版本时,我决定创建一个全新的项目,我更改了项目的名称,当然它有一个不同的包ID。 AHHA!

    下一步是将bundle id更改为旧的(这与Xcode项目的名称无关)问题是当我选择了我的Target时,bundle id以灰色显示我的新Xcode项目的名称在最后,它不允许我删除该名称。我搜索了这个问题,这就是你需要做的事情:

    打开您的-info.plist并编辑Bundle标识符。删除后缀$ {PRODUCT_NAME}。现在,您可以正确设置捆绑包ID。

    就是这样!一旦我设置了捆绑ID,我的应用程序内购买工作正常! YAY!

    提示:我误以为由于应用程序内购买项目(com.name.newprojectname)的产品ID与我的新包ID(com.name.newprojectname)相匹配,所以一切正常。不。你可以把任何你想要的东西放在产品ID中。当您在Xcode中运行应用程序并尝试进行应用程序内购买时,应检查您在Xcode中运行的应用程序的软件包ID是否存在于iTunes中,并在不匹配时显示消息。这样可以节省我很多时间。

    最后,我可以将我的应用提交到应用商店。

    我希望这个解决方案能让其他开发人员节省一些时间和精力。