87

我从SKProductsRequest.

我做了以下步骤:

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

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

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

  4. (void)productsRequest:(SKProductsRequest *)request didReceiveResponse:(SKProductsResponse *)response回调中设置断点

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

提前致谢,

拉古

4

16 回答 16

175

我尝试了 Apple 论坛和此处建议的所有内容,但仍然无法正常工作。

找到了解决方案:

您的应用需要通过 Xcode 传输才能启用沙箱。

您的应用需要通过 Xcode 在本地构建和安装而不是从 App Store 下载。

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

因此,从您的设备中删除该应用程序。然后使用 Build & Run 将应用程序重新安装到设备上,并将您的设备连接到 Mac。它现在应该可以工作了:)

于 2010-04-30T01:51:33.080 回答
71

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

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

于 2010-01-23T11:59:39.200 回答
41

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

这对我有用。我有同样的问题。

于 2010-01-11T21:25:29.583 回答
21

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

  1. 好的,我的错误,我忘记创建正确的分发配置文件:已修复

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

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

还是行不通。

  1. 检查我的设备是否与 iTunes 帐户连接。

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

还是行不通。

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

它奏效了。

我认为有时我们有不止 1 个错误,当你纠正所有错误时,很难知道问题的确切原因是什么。

现在我很高兴

于 2010-07-30T21:27:24.677 回答
19

我们的问题是 Apple 常见问题解答中的最后一个要点,“为什么我的产品标识符会在invalidProductIdentifiers数组中返回? ”:

  • 您没有完成所有财务要求(请参阅本文档的“合同、税务和银行信息”部分)。
  • 您没有使用明确的 App ID。
  • 您没有使用与您的显式 App ID 关联的 Provisioning Profile。
  • 您没有在代码中使用正确的产品标识符。有关产品标识符的更多信息,请参阅技术问答、QA1329、“应用内购买产品标识符”。
  • 您没有清除在 iTunes Connect 中出售的应用内购买产品。
  • 您可能已经修改了您的产品,但这些更改尚不适用于所有 App Store 服务器。
  • 如果您或 App Review 在 iTunes Connect 中拒绝了您最近的二进制文件。

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

于 2011-12-08T01:09:34.153 回答
13

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

您无需添加整个域(例如 com.company.product.inappname)即可使 InApp 正常工作。

您必须使用您在 iTunes Connect 上创建的确切产品 ID。就我而言,我刚刚创建了“Product1”,在调用 SKProductsRequest 时使用了它,仅此而已。

没有更多的痛苦。

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

于 2011-11-14T20:58:17.920 回答
2

您是否从 Settings.app 注销了 AppStore?只有当您注销时,才会提示您重新登录。

您的 App ID 是否启用了应用内购买?不能为应用内购买启用带有通配符 (*) 的应用 ID。对于您的应用,您应该创建一个新的 App ID。

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

于 2009-10-21T02:10:34.103 回答
2

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

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

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

于 2011-05-17T22:06:55.383 回答
1

您的应用内购买是否“已清除出售”?这是我第一次没有检查的设置。

于 2010-01-12T19:03:13.737 回答
1

除了本主题中发布的所有内容外,我刚刚安装了正确的调试配置文件,从我的 iPhone 中删除了应用程序,重新启动了我的设备并砰的一声,获得了产品信息。

我在通过模拟器获取产品信息后尝试了这个(现在可以使用最新的 Xcode)。我正要上传二进制文件然后拒绝它,但后来我尝试了上面的方法并得到了它。希望能帮助到你!

于 2011-11-24T13:59:01.387 回答
1

我有 15 种非消耗品。

突然,所有 15 个设备都开始在我的一台设备(iPod Touch 4G)中显示为“无效”,但在另一台设备(iPhone 4S)中有效;确实很奇怪。

我删除/重新安装,现在它工作正常。

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

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

于 2011-10-24T08:07:09.703 回答
1

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

于 2011-03-29T08:16:33.333 回答
1

将产品名称设置为提交给 iTunes Connect 的相同名称为我解决了这个问题。

于 2010-01-14T10:54:19.507 回答
1

我今天发现了另一件事会导致这种问题。有时,由于奇怪的原因,应用程序被损坏,所有尝试购买的东西都以错误告终。我解决了从设备中删除应用程序、清理 Xcode 上的构建并将其重新构建到设备的问题。

于 2011-01-22T17:54:37.557 回答
1

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

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

于 2010-10-21T13:45:30.217 回答
0

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

于 2010-01-05T00:05:44.170 回答