【问题标题】:How to test in-app-purchases easily, without publishing or signing it first?如何轻松测试应用内购买,而无需先发布或签名?
【发布时间】:2014-01-24 08:49:15
【问题描述】:

背景

我的应用有一些应用内结算(如this one),我希望在发布之前对其进行测试。

我看了一些 google IO 讲座并阅读了一些文章,并准备了一切。

根据我了解到的(谈到here),我只需将我的电子邮件添加到测试帐户,它不会被收费。

问题

似乎在开发者控制台中,无法激活应用内项目。

我认为这是因为该应用尚未发布,但这就是测试的重点 - 我想在发布之前测试该应用...

我还发现,为了测试应用内计费,我必须做很多事情才能让它发挥作用,同时也有很多限制和烦恼:

  1. 签署应用程序并将其上传到 Play 商店。如果您不使用已签名的应用程序,您会收到this message(“此版本的应用程序未配置市场计费...”)。

  2. 让信用卡用于设备,即使它们不会花费任何费用。

  3. 让其他人代替自己进行测试,因为我的帐户不能用于此。不仅如此,您必须创建一个 google 组,然后将能够使用该应用程序的人放在那里,并且所有人都必须拥有一个 google+ 帐户,而不是添加您想要添加的确切内容...您将还需要等待一段时间,直到测试人员能够使用您应用的应用内计费,然后他们才会收到错误消息“用户不符合此购买条件”。

  4. 由于 #1,我需要在应用程序本身内设置某种机制来重置购买,但我也不应该忘记为最终用户删除/隐藏此功能,以便他们不会误重置

  5. 因为#1,如果我希望能够调试应用程序,我需要在清单上更改它,并选择在Eclipse中调试应用程序,并且记得在实际发布之前取消选中此标志应用程序。

  6. 由于应用程序在 Play 商店中,因此您无法修改应用内购买项目(例如它们的 ID),而不是在发布应用程序之前可以修改的许多内容。它不再是像使用简单开发那样灵活的开发。就像您的应用程序应该使用您选择的内容进行密封,即使您尚未发布它。

问题

为什么会这样?

为什么没有简单的方法来测试应用内计费?

你会如何处理我所写的问题?

是否可以在应用发布之前测试应用内购买?

为什么我不能使用自己的谷歌帐户?

另外,假设我确实进行了(假)购买,我如何重置它(所有/特定购买)以便再次检查它?除了应用程序本身,我真的无法做到吗?

我错过了什么吗?

【问题讨论】:

  • 在 Android 中很糟糕。很容易在 iOS 中测试应用购买。
  • @coolcool1994 实际上它变得更容易了。现在,如果您使用自己的帐户,它的功能就像真正的购买一样(当然不会向您收费)

标签: android testing google-play in-app-billing


【解决方案1】:

您不必为了测试它而发布应用程序,您只需将 apk 上传到您的开发者控制台,不要发布它。如果您的帐户已链接到您的开发者控制台,您将无法使用该帐户,并且必须创建一个测试帐户来测试 IAP

【讨论】:

  • 为什么我不能使用同一个帐户?谷歌只是不允许吗?另外,既然我有一个工作帐户,我可以用它来代替吗?无论如何,我如何让应用程序使用我想要的帐户?我只有一个 APK 文件...
  • 我不知道您无法使用您的开发者帐户进行测试的具体原因,但是如果您尝试,您会收到一条错误消息,指出您无法使用该帐户购买该商品。您只能使用链接到 google play 商店的帐户进行测试,因此如果您的工作帐户已链接,那么只需在设备上创建另一个用户并在测试时切换到该用户
  • 哦,但我没有这个功能,因为它只适用于平板电脑。也许有一个root设备切换用户的工具?
【解决方案2】:

您必须公开该应用,但要以 Beta 模式发布,以便您可以测试应用内购买。 Beta 模式将允许以有限的用户集测试功能。

【讨论】:

  • 那里的所有关卡到底有什么区别?
【解决方案3】:

是的,您可以在不发布的情况下测试您的应用(也无需在 beta 模式下发布)。有指令http://developer.android.com/google/play/billing/billing_testing.html#billing-testing-test。请记住,在 1 点之后可能需要等待大约一两个小时。

似乎在开发者控制台中,无法激活应用内项目。

没关系,只需检查您是否将其标记为活动。在您发布应用之前,它看起来不活跃,但您可以对其进行测试。

我可以使用自己的谷歌帐户,对吧?

我强烈建议只为测试购买设置额外的帐户。

另外,假设我确实进行了(假)购买,我如何重置它(所有/特定购买)以便再次检查它?

您必须为您的测试帐户填写帐单信息。但是当您进行测试购买时,没有任何真钱交易。每个应用内都可以在应用消费后再次测试。

【讨论】:

  • 但是我如何选择使用哪个帐户?我只有一个APK文件......另外,你在说什么“1点”?我也不明白购买的重置 - 这可以在开发者控制台上完成,还是我应该添加一个隐藏功能来消费应用程序本身内的所有购买?
  • 抱歉耽搁了。您必须在设置中进入开发者控制台并添加测试帐户 (developer.android.com/google/play/billing/…)。然后用测试账号登录你的手机。然后在手机中安装APK文件。就是这样,您可以测试购买。你说:“另外,你说的“1分”是什么意思?”对不起,误会了。我的意思是,有时您需要在开发者控制台上传 APK 文件后等待几个小时。
  • 你说:“我也不明白购买的重置 - 这可以在开发者控制台上完成,还是我应该添加一个隐藏功能来消费应用程序本身内的所有购买?” .是的,你需要。看developer.android.com/google/play/billing/api.html#consume
  • 没有更好的方法来重置购买吗?为什么应用内计费有这么多限制?太烦人了:你需要签署应用程序,把它放在Play商店,设置其他人的测试账户(除了你自己出于某种原因),添加信用卡(即使他们不会被收费),添加重置在应用程序内购买(并记住为最终用户隐藏/删除它),......为什么不能像在 eclipse 中测试应用程序一样,就像正在测试(和修复)正常功能一样?他们让讲座看起来很轻松,但这是一件非常烦人的事情。
  • 其实可以用假货购买developer.android.com/google/play/billing/…。您无法测试所有案例,但其中大多数应该可以工作。希望对您有所帮助。
【解决方案4】:

我还在研究如何以最佳方式测试 Android 应用内结算。

对于我来说,真实的交易似乎真的太复杂了,而且需要付出太多的努力。所以我目前正在考虑“只”用静态响应(http://developer.android.com/google/play/billing/billing_testing.html#billing-testing-static)测试这些东西。

理论上,我想一旦这可行,它在生产中也应该没问题,因为在源代码中,只有 SKU id 被更改以进行实时发布..

【讨论】:

  • 但您收到的回复不包括您购买的商品。它只说明你成功与否。没用的……
  • 是的,一次只能测试一项
  • 这不仅仅是一项。就是它没有告诉你购买的是什么,它不记得你已经购买了它。没什么。它只返回您告诉它返回的内容。
  • 是的,下一个 Google IO 是在 2014-06-25 上。也许他们会展示更好的东西。
猜你喜欢
  • 1970-01-01
  • 2012-12-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-04-21
  • 1970-01-01
  • 2012-12-14
相关资源
最近更新 更多