此版本的应用程序未配置为通过Google Play结算

Gat*_*per 252 android apk in-app-billing google-play

当我尝试使用应用内结算,我得到的错误运行我的应用程序:"这个版本的应用程序未配置为通过谷歌Play结算有关详情,请访问帮助中心".

我已经在清单文件中获得了结算权限,并且我已经将已签名的.apk作为草稿上传到Google Play上,并且我还在我的手机上安装了相同的已签名的apk.

有关如何解决此问题的任何帮助?

Lut*_*ten 317

此错误可能由多种原因引起.

以下是Google IAB测试的要求列表.

先决条件:

  1. AndroidManifest必须包含"com.android.vending.BILLING"权限.
  2. APK是在发布模式下构建的.
  3. APK已与发布证书签名.
  4. APK上传到alpha/beta分发渠道(之前 - 作为草稿)至少一次到开发者控制台.(需要一些时间~2h-24h).
  5. IAB 产品已发布,其状态设置为活动状态.
  6. 测试帐户已添加到开发人员控制台中.

测试要求:

  1. 测试APK具有上传到开发者控制台的版本相同的版本代码.
  2. 测试的APK 签署具有相同的证书(S)作为一个上传到dev.console.
  3. 测试帐户(不是开发人员) - 是设备上的主要帐户.(主要帐户可能没有必要 - 根据@MinosL评论)
  4. 测试帐户选择作为测试人员,并且它与有效的付款方式相关联.(@Kyone)

PS:使用发布证书进行调试:https://stackoverflow.com/a/15754187/1321401(链接的Thnx @dipp)

PPS:希望已经很长时间制作这份清单了.

Thnx @zlgdev,@ Kyone,@ MinosL获取更新

  • 如果谷歌可以提供如此精美而精简的列表,而不是将信息隐藏在分布在六页以上的大量文本块中,那将是多么美妙....拥有+1 (12认同)
  • 只是*测试* IAP 难道不应该更容易吗?或者测试一般的东西.. (9认同)
  • 这里最好的答案是,谷歌自己的文档没有这样的回合是一种耻辱.由于文档较差且分散,使用Google Play商店一直令人沮丧. (7认同)
  • 不要忘记确保您用来测试IAB的帐户**作为测试人员**选择**使用上传构建后生成的"选择加入的网址"; 并且它与有效的付款方式**相关联**. (5认同)
  • 这应该是这个问题的公认答案! (2认同)
  • 还值得注意;测试帐户不应链接到开发者帐户(不应具有上传 APK 的权限) (2认同)
  • 也值得注意 如果启用了“应用程序签名证书”,则由于我们无法使用签名证书进行签名,因此我们无法使用本地APK测试实际购买的商品。(花了我3个小时才找到答案) (2认同)
  • 我已经成功地测试了 1) **签名的调试应用程序**,即 2) **不是设备上的主帐户**,因此 Google IAB 测试的过程似乎没有上面提到的那么严格。 (2认同)

Gat*_*per 188

啊,在尝试了几个小时之后找到了解决方案.

  1. 谷歌需要一段时间来处理应用程序并将其更新到他们的服务器,对我而言需要大约半天时间.因此,在将Google作为草稿保存在Google Play上之后,您必须等待几个小时才能使应用内商品正常响应并允许定期购买.
  2. 导出并签名APK.未签名的APK尝试购买将收到错误.

  • 哇,这是严重的吗?刚遇到同样的问题.谷歌要求我做的所有事情都是为了测试应用内结算,但仍然会收到相同的回避错误消息.我想我得等着看.但谷歌真的希望我们的开发人员每次需要更新我们的应用程序时都要等待数小时才能实现应用内结算吗?至少可以说,对我来说这似乎是不合适的. (69认同)
  • 请注意,您可以在工作时直接从IDE使用调试版本.您只需将调试密钥库更改为与发布商店匹配的密钥库即可.有关如何:http://stackoverflow.com/questions/10886814/configure-eclipse-to-use-signed-keystore的更多信息,请参阅此帖子 (8认同)
  • 您可以在连接到调试器时连接到Android Studio /运行时进行测试吗?或者你需要通过USB安装发布apk吗? (6认同)
  • 说真的,我不能使用带有调试证书的应用程序并测试In-App Billing? (4认同)
  • 是否有更简单的方法来测试购买过程,除了Android工具>导出签名项目...等,然后手动将APK复制到设备,测试,....重复?我肯定错过了什么? (3认同)
  • 即使安装了签名的apk,我仍然会收到此错误. (3认同)
  • 看起来测试设备必须安装与Google Play完全相同的APK.它不需要在生产中,beta也可以.但这使得开发非常困难.要对其进行测试,您必须将APK上传到Google Play,并且需要几个小时才能刷新.所以,如果我只想添加一个记录器调用,我需要等待数小时才能工作.或者我错过了什么? (3认同)

san*_*one 132

如果您发布的版本与您在手机上测试的版本不同,也会发生同样的情况.

例如,上传的版本是android:versionCode="1",您在手机上测试的版本是android:versionCode="2"

  • 你可以告诉我,如果上传的版本是`android:versionCode ="1"`和手机是`android:versionCode ="2"`剂量它确定或我必须改变我的apk谷歌播放? (2认同)
  • 您需要做的是将本地版本降低到“1”,以便它与当前的实时版本匹配,至少暂时用于测试。 (2认同)
  • 看起来这个错误有两个常见的修复程序,具体取决于您的情况.就我而言,就是这个. (2认同)

Chi*_*tel 46

您需要使用实时证书对APK进行签名.然后将其安装到您的测试设备上.然后,您可以测试InAppBilling.如果您通过eclipse直接运行到设备来测试应用程序(在调试模式下),那么您将收到此错误.

如果您使用android.test.purchasedSKU,它将一直有效,但您不会在最终响应中使用developerPayload.

如果您在应用程序项目中使用自己的草稿,您可以一直测试但是您将被收取费用,因此必须在之后自行退款.

您无法使用与Google Play开发控制台相同的Gmail帐户购买商品.


dor*_*506 18

2021年的结论

对于大家关心的调试谁-你CAN运行和调试和测试在调试模式下的代码

以下是测试该过程的方法:

(这当然取决于您已经添加并激活了您的产品,并且您的代码已准备好与这些产品集成)

  1. com.android.vending.BILLING添加到清单
  2. 上传签名的 apk到内部测试
  3. 添加 许可证测试人员播放控制台 -> 设置 -> 许可证测试)- 如果您在设备上使用多个帐户并且不确定要使用哪个帐户,只需将所有帐户添加为测试人员即可。
  4. 像往常一样从 Android Studio 运行该应用程序(* 该应用程序的版本代码应与您刚刚上传到内部测试的版本代码相同)

我做了上面的,它工作得很好。

  • 我无法用这个答案来报答你拯救了我的生命、我的婚姻和我的理智。祝福你。 (9认同)
  • 我仍然无法理解为什么 Google 添加了对侧载和调试版本的支持,但仍然**强制 versionCode 匹配**上传到 GPlay 商店的版本。文档中也没有提及(至少不再提及)。但话又说回来,我们仍然无法重置订阅试用,并且每次都需要重新创建 Google 帐户,所以也有这样的情况。我希望谷歌有人读到这篇文章,让我们的生活更轻松。 (2认同)

Pab*_*rra 16

在开发者控制台中:

Settings- > Account details- > License Testing- >具有测试访问权限的Gmail帐户

并在此输入您的帐户

  • 特别注意“按‘Enter’”部分。我只是单击“保存”,电子邮件并未添加到列表中。 (10认同)
  • 我无法用这个答案来报答你拯救了我的生命、我的婚姻和我的理智。祝福你。 (4认同)
  • 您好,我的电子邮件已添加到许可证帐户中。我仍然收到错误 (3认同)

Law*_*nez 14

如果您从2018年起来,则需要直接从Play商店下载APK并安装"衍生"APK.也许是因为Google的Play商店有一项功能"Google Play for Google Play".


Mah*_*oud 12

这是针对调试/发布版本以及应用程序是否由 Play Signing 进行签名(这意味着从 Google Play 交付的应用程序的签名证书与使用 Android Studio 从您的计算机安装应用程序时的证书不同)进行测试。

检查以下步骤:

  1. 在 Google Play 管理中心创建您的产品并激活它。
  2. 添加许可证测试人员(打开Google Play Console -> 设置 -> 许可证测试)。添加您的 Android 设备上列出的所有 Google 帐户。
  3. 将已签名的应用程序上传到内部测试轨道(必须处于发布模式)。
  4. 使用测试链接检查应用程序是否可供下载(确保上传到内部轨道的应用程序版本与您在调试模式下测试的版本匹配)。需要一些时间才能看到最新上传的版本,因此我建议清除 Play 商店应用程序的缓存。
  5. 从 Android Studio 以调试模式运行您的应用程序。(同样,应用程序版本和内部版本号必须与已发布版本上的值匹配到内部轨道)。

我在两个不同的 Google Play Console 帐户(两个不同的应用程序)上进行了测试,并且它有效。