尝试在我的 iPhone/iPad 应用中测试应用内购买功能时,我不断收到“没有有效产品”的消息。我检查了网上的许多列表,并且肯定我涵盖了所有内容。
1 回答
在解决这个错误数小时后,我终于发现了实际问题,因此找到了解决方案。
是的,您不需要提交二进制文件来测试应用内购买。但是,由于我无法弄清楚问题出在哪里,我还是决定提交我的二进制文件。我想,我已经做了其他一切可能会伤害的事情。
所以,这就是我所做的:
- 归档我的应用
- 点击“分发”按钮
- 选择“提交到iOS App Store”并点击下一步
- 再次单击下一步以登录 iTunes Connect
砰!
我收到消息:“没有可用于签名的身份”
什么?!!!这意味着什么?
这是一个非常好的信息,可以让我缩小问题的范围。这告诉我我无法将我的应用程序提交到应用程序商店,嗯,所以我认为我应该仔细检查捆绑 ID。在应用程序中看起来不错,在 iTunes 连接中呢?我登录到 iTunes Connect 并转到管理应用程序并选择我的应用程序。
呃,哦!什么?我输入了错误的捆绑包 ID?怎么来的?
嗯,这是因为当我在最新的 Xcode 中创建我的应用程序的这个新版本时,我决定创建一个全新的项目,我更改了项目的名称,当然它有一个不同的 bundle id。啊哈!
下一步是将bundle id更改为旧的(这与Xcode项目的名称无关)问题是当我选择我的Target时,bundle id最后是我的新Xcode项目的灰色名称它不允许我删除名称。我用谷歌搜索了这个问题,这是你需要做的:
打开您的 -info.plist 并编辑 Bundle 标识符。删除后缀 ${PRODUCT_NAME}。现在您可以正确设置捆绑 ID。
就是这样!一旦我设置了捆绑 ID,我的应用内购买就可以工作了!耶!
提示:我误以为因为应用内购买项目的产品 ID (com.name.newprojectname) 与我的新捆绑包 ID (com.name.newprojectname) 匹配,所以一切正常。不。您可以在产品 ID 中添加任何您想要的内容。当您在 Xcode 中运行应用程序并尝试进行应用内购买时,它应该检查您在 Xcode 中运行的应用程序的捆绑 ID 是否存在于 iTunes 连接中,并在它们不匹配时显示一条消息。那会为我节省很多时间。
最后我可以将我的应用提交到应用商店。
我希望这个解决方案为其他一些开发人员节省了一些时间和头发。