StoreKit In App购买无效的商品标识码

时间:2009-09-24 12:43:34

标签: iphone storekit

  

可能重复:
  iPhone StoreKit - invalid product id's

我从SKProductsRequest获得了一系列空的产品标识符。

我做了以下步骤:

  1. 在iTunes Connect中的“管理用户”下创建了一个应用内购买测试用户帐户

  2. 在“管理您的应用内购买”下创建了一些应用内购买产品。

  3. 将应用程序加载到iPhone上,转到设置→存储并退出常规商店

  4. (void)productsRequest:(SKProductsRequest *)request didReceiveResponse:(SKProductsResponse *)response回调

  5. 中设置断点

    所有提交的产品ID都在响应的invalidProductIdentifiers属性中。提交请求时,我尝试了在步骤2中创建的产品ID以及前缀为Bundle ID的ID。

    提前致谢,

    Raghu

16 个答案:

答案 0 :(得分:171)

我尝试了在Apple论坛和这里建议的所有内容,仍然无法让它工作。找到解决方案 - 您的应用需要通过Xcode传输才能启用沙箱。

明显,对吗?好吧,如果您正在使用现有应用程序的更新,设备仍会将其视为App Store安装的应用程序。

因此,请从您的设备中删除该应用。然后使用Build& amp;将应用程序安装回设备上。将您的设备连接到Mac上运行。它现在应该工作:)

答案 1 :(得分:69)

我一直在编制产品标识符无效的原因列表。以下是潜在原因的清单:

http://troybrant.net/blog/2010/01/invalid-product-ids/

答案 2 :(得分:30)

付费应用程序的合同必须生效才能接收有关已配置的应用内购买的数据。

这对我有用。我遇到了同样的问题。

答案 3 :(得分:21)

我是这里的受害者之一。好吧,我是。 昨天,我遇到了问题并且修改了很多次所有步骤。 今天,我查看了troybrant的所有列表。

1)确定我的错误,我忘了创建正确的分发配置文件:修复

2)上传了一个二进制文件并立即拒绝:他们说它比没有上传更好

3)好的,其他修复:从xcode(XXXXXXXXXX.company.app到com.company.app)中的任何地方删除了我的域名之前的10位数字

仍然无法正常工作。

4)检查我的设备是否与itunes帐户无关。

5)每次清理构建并有时从设备中删除应用程序

仍然无法正常工作。

6)最后,在询问产品时,我只使用了productID,而不是整个com.company.app.productID。

它有效。

我认为有时我们会犯一个以上的错误,当你纠正所有这些错误时,很难知道究竟是什么原因造成的。

现在我很高兴

答案 4 :(得分:17)

我们的问题是Apple常见问题解答中的最后一点,“Why are my product identifiers being returned in the invalidProductIdentifiers array?”:

  • 您未完成所有财务要求(请参阅本文档的“合同,税务和银行信息”部分)。
  • 您没有使用明确的应用ID。
  • 您没有使用与您的显式应用ID相关联的配置文件。
  • 您未在代码中使用正确的产品标识符。有关产品标识符的更多信息,请参阅技术Q& A,QA1329,“在应用内购买产品标识符”。
  • 您未在iTunes Connect中清除待售应用内购买产品。
  • 您可能修改过您的产品,但这些更改尚未提供给所有App Store服务器。
  • 如果您或App Review拒绝了iTunes Connect中的最新二进制文件。

我通过点击iTunes Connect中的“准备上传二进制文件”将最新版本(已被拒绝)更改为“等待上传”,问题在大约10分钟后解决。

答案 5 :(得分:12)

似乎人们对产品ID感到困惑。

您无需为InApp添加整个域(例如com.company.product.inappname)。

您必须使用在iTunes Connect上创建的EXACT产品ID。 就我而言,我刚刚创建了“Product1”,在调用SKProductsRequest时使用了它,就是这样。

不再痛苦。

此链接有很多有用的信息,但缺少这个小细节: http://troybrant.net/blog/2010/01/in-app-purchases-a-full-walkthrough/

答案 6 :(得分:2)

您是否从Settings.app注销了AppStore?只有当您退出时,系统才会提示您再次登录。

是否为您的应用ID启用了应用内购买?无法为应用内购买启用带外卡(*)的应用ID。对于您的应用,您应该创建一个新的应用ID。

我的两分钱...... http://blog.mugunthkumar.com/coding/iphone-tutorial-%e2%80%93-in-app-purchases/

答案 7 :(得分:2)

我的问题是这里描述的第一个问题:

https://devforums.apple.com/thread/23344?start=0&tstart=0

“首先,您需要确保您在Portal中的app-id是正确的。”

答案 8 :(得分:1)

您的In App Purchase是否已“清除待售”?这是我第一次没有检查的设置。

答案 9 :(得分:1)

将产品名称设置为提交给iTunes Connect的同名解决方案。

答案 10 :(得分:1)

我今天发现了另一件可能导致这类问题的事情。有些时候,由于奇怪的原因,应用程序被破坏,所有尝试购买的东西都以错误结束。我解决了从设备中删除应用程序的问题,清除Xcode上的构建并再次将其构建到设备上。

答案 11 :(得分:1)

我发现如果您的应用程序在另一种语言中有不同的标题,那么除非您将iPhone语言设置为英语,否则您将遇到此问题。它只发生在开发中;生产似乎没有问题。

答案 12 :(得分:1)

我有15种不可消费的产品。

突然间,其中15个在我的一个设备(iPod Touch 4G)中开始显示为“无效”,但在另一个设备(iPhone 4S)中有效;非常奇怪。

我已删除/重新安装,现在可以正常使用。

有人说你必须从Xcode发布,但这不一定是真的。我有许多使用AdHoc版本和测试用户帐户的beta测试人员,而且大多数时候他们似乎都可以购买OK。

也就是说,整个沙盒环境总是不稳定,并且有很多“停机时间”。有时等待是答案。

答案 13 :(得分:1)

以防万一有人仍然无法获得“无效产品ID”... 除了本主题中发布的所有内容,我刚刚安装了正确的调试配置文件,从我的iPhone中删除了应用程序,重新启动了我的设备并发出了爆炸声,获得了产品信息。 我通过模拟器获取产品信息后尝试了这一点(现在可以使用最新的XCode)。我准备上传二进制文件然后拒绝它,但后来我尝试了上面的内容并得到了它。希望它有所帮助!

答案 14 :(得分:0)

确保xcode中的“产品名称”与提交给iTunes Connect的应用程序相同。

答案 15 :(得分:0)

经过一天左右的努力退回无效产品后,我的解决方案归结为确保购买项目是“开发商批准销售”。即使项目旁边有一个绿色标记说“已售出”,我仍然需要上传截图并选择批准。

这似乎是一种倒退且不合逻辑的做事方式,因为我仍在测试我的应用程序而尚未准备好将其发售。