应用内购买测试流程

19

我疯了一样地测试我的应用内购买功能。但我无法获得任何有效的产品。

我将在这里提出一些问题,希望有人能够回答。

  1. 我是否需要在iTunes Connect上上传我的测试应用程序的二进制文件?我的应用程序从未在应用商店发布过,它只是一个全新的测试应用程序。

  2. 如果我必须上传二进制文件,那么我上传一个分发签名的二进制文件。现在,我必须在我的测试中使用相同的二进制文件(分发签名),还是可以使用开发人员二进制文件?

  3. 我已经多次检查了所有关键和已知的问题,例如绑定ID、税收信息、销售清单复选框以及所有这些事情。它们都没有问题。

  4. 添加完一个应用内购买产品后,它标记为“等待审核”,这样做正确吗?还是我必须等待它更改状态,然后才能将其视为有效?

9个回答

5
在SANDBOX环境中测试应用内购买时,完全不需要提交应用程序二进制文件。应用内购买产品将处于“准备提交”状态。enter image description here

@Rose 不了解谷歌播放商店的运作方式...这是关于iOS的。 - Pranav Jaiswal

4
不必纠结于与应用内购买相关的所有神秘建议,官方的苹果技术笔记TN2259详细描述了所有步骤...并且它是有效的。

这份文档(以及它链接到的IAP FAQ:https://developer.apple.com/library/content/technotes/tn2413/_index.html)是整个过程中缺失的关键。为什么文档本身不能如此清晰和直接,这既是一个谜团又是一种悲剧。谢谢。 - 2manyprojects

4

我曾经遇到同样的问题。

对我有帮助的是以下两件事情的结合:

  1. 重新上传二进制文件以消除“被拒绝”的状态
  2. 不要使用越狱设备

但是在FAQ 6中,列出了更多导致此问题的原因:

  • 您没有完成所有财务要求(请参见本文档的“合同、税收和银行信息”部分)。

  • 您没有使用明确的应用程序ID。

  • 您没有使用与您的明确应用程序ID关联的配置文件。

  • 您没有在代码中使用正确的产品标识符。有关产品标识符的更多信息,请参见技术问答QA1329,“应用内购买产品标识符”。
  • 您没有在iTunes Connect中将您的应用内购买产品设置为可销售状态。
  • 您可能已经修改了您的产品,但这些更改尚未在所有App Store服务器上生效。
  • 如果您或App审核在iTunes Connect中拒绝了您最近的二进制文件。

希望这能帮助更多人。


2
您无需上传二进制文件。 您可以在iTunes Connect中设置应用程序,然后设置与之关联的产品。 您的产品上的“等待审核”状态将一直等待审核,直到您提交二进制文件并提交应用程序并获得批准。即使您的产品处于“等待审核”状态,您仍然可以进行测试。 我记得还有一个过渡状态,开发人员必须在测试完毕后将其标记为已批准。
注意:一旦在iTunes Connect中创建应用程序,您必须在90天内提交二进制文件,否则他们会收回您的应用程序名称。
注意2:在提交前使用调试版本进行测试时,必须使用开发沙箱服务器。 有关更多信息,请参阅IAP文档。

2
根据你所说的和我所做的,我应该让产品列表工作了,但不幸的是它没有工作。可能需要等待几个小时或几天才能进行测试时产品才会变得可用吗?我在许多其他论坛上也读到过这种情况。 - user720784
1
我只需要注销iTunes商店账户就可以使用沙盒服务器吗?这是我从IAP文档中理解的。 - user720784
由于iCloud的问题,使用新的SDK(beta)很难真正注销您的iPhone iTunes帐户。但是现在模拟器支持storekit了!试试看吧 ;) 当然,除非您不在开发计划中... 您应该尝试我的建议,我相信您的问题可能出在您的配置文件上。 - Jef
我真的很讨厌Apple的开发。这些东西过于复杂,而且与文档描述不符,不必要地复杂。 - Felipe

1

我也曾花费太多时间在这个问题上... 你不需要上传二进制文件来进行应用内购买测试,这意味着在iTunes Connect中,您不能向iTunes货架上的现有产品添加其他产品。例如,如果您的应用程序已经上线并且处于1.0版本,并且v1.0仅提交了一个与之连接的应用内购买,那么v1.0永远不会有第二个应用内购买产品,要添加第二个(或更多)应用内购买产品,您需要重新提交,升级到1.01或其他版本。我忽略的关键是,希望这可以帮助到您,就是您必须使用为该应用程序制作的配置文件,而不是xCode的小助手向导默认构建的通用配置文件。试试看吧。


1
++并确保您在appInfo.plist中正确填写了应用程序ID。 - Jef
这让我有些困惑。如果您的开发配置文件不是通用的,或者您的应用程序版本状态为“开发人员拒绝”,是否可能返回有效产品?这似乎是我的情况... - Nicolas Miari

0

在发布我的应用程序之前,我正在尝试测试......发生了这样的事情...

- 我的应用内购买产品已准备好提交。但我无法获取提取请求。无法进行测试。

- 首先,当我归档我的应用程序时,我可以开始测试......

因此,归档是测试应用内购买所必需的。


0

请确保项目的Bundle ID与在itunesconnect注册应用程序的ID相同。


0

如果你在应用内购买(IAP)方面遇到了问题,确保以下几点正确:

  • 像发布应用一样在iTunes中创建您的应用
  • 设置应用内购买(提供所有内容,包括截图)
  • 创建测试用户(非常重要,因为在沙盒中不能使用真实用户进行测试)
  • 进入您的应用程序详细信息页面并确保看到您设置的应用内条目出现在那里,如果没有,“编辑”该部分以选择适当的应用内条目(非常重要)
  • 点击“准备上传二进制文件”按钮(同样非常重要)。此时不用担心上传二进制文件,因为您有90天的时间来上传二进制文件。
  • 在您的代码中实现IAP(有很多示例可用。我更喜欢http://xcodenoobies.blogspot.com/2012/04/implementing-inapp-purchase-in-xcode.html
  • 如果您想在设备上测试,请确保注销(设置> iTunes和App Store> 注销(非常重要)

完成所有这些步骤后,您应该能够使用这些测试账户进行应用内购买。对于我来说,在经历了一些令人头疼的问题之后,它终于起作用了。


-1

第一次设置应用内购买是一个巨大的头痛。我相信您需要在iTunes Connect中提交一个二进制文件。只需提交它,然后立即“开发者拒绝”它。如果这样不起作用,那么等待几个小时或一天,然后看看是否有效。此外,请确保在iTunes Connect中为您的应用内购买勾选“可销售”。

编辑:您应该提交分发二进制文件,但可以继续使用开发二进制文件进行测试。


提交然后拒绝根本没有任何意义。 - Till
这是我使用的教程,他说:“您必须提交应用程序的二进制文件才能成功测试应用内购买。”它对我有用,所以它应该对你也有用。http://troybrant.net/blog/2010/01/in-app-purchases-a-full-walkthrough/ - edc1591
我记得对我来说它并没有马上起作用。也许明天再检查一下,看看是否能够运行。让我们知道结果怎样:)。 - edc1591

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接