当我尝试使用应用内计费运行我的应用程序时,我收到错误消息:“此版本的应用程序未配置为通过 Google Play 计费。有关更多信息,请查看帮助中心”。
我已经在 Manifest 文件中获得了计费权限,并且我有一个已签名的 .apk 作为草稿上传到 Google Play,并且我还在我的手机上安装了相同的签名 apk。
有关如何解决此问题的任何帮助?
当我尝试使用应用内计费运行我的应用程序时,我收到错误消息:“此版本的应用程序未配置为通过 Google Play 计费。有关更多信息,请查看帮助中心”。
我已经在 Manifest 文件中获得了计费权限,并且我有一个已签名的 .apk 作为草稿上传到 Google Play,并且我还在我的手机上安装了相同的签名 apk。
有关如何解决此问题的任何帮助?
此错误可能是由多种原因引起的。
以下是 Google IAB 测试的要求列表。
先决条件:
测试要求:
PS:使用发布证书进行调试:https ://stackoverflow.com/a/15754187/1321401 (链接为Thnx @dipp)
PPS:想列这个名单很久了。
Ahh 在尝试了几个小时后找到了解决方案。
如果您发布的版本与您在手机上测试的版本不同,也会发生同样的情况。
比如上传android:versionCode="1"
的版本是 ,你在手机上测试的版本是android:versionCode="2"
您需要使用您的实时证书签署您的 APK。然后将其安装到您的测试设备上。然后您可以测试 InAppBilling。如果您通过 eclipse 直接运行到设备(在调试模式下)来测试您的应用程序,那么您将收到此错误。
如果您android.test.purchased
作为 SKU 使用,它将一直有效,但您的最终响应中不会包含 developerPayload。
如果您在应用程序项目中使用自己的草稿,您可以一路测试,但您需要付费,因此之后必须自己退款。
您不能使用与 google play 开发控制台相同的 gmail 帐户购买商品。
2021年的结论
对于所有关心调试的人 - 您可以在调试模式下运行、调试和测试代码
以下是您可以如何测试该过程:
(这当然取决于您已经添加并激活了您的产品,并且您的代码已准备好与这些产品集成)
我做了上述,它工作得很好。
如果您从 2018 年开始在这里,您需要直接从 Play 商店下载 APK 并安装“派生”APK。可能是因为 Google 的 Play Store 有一个功能“App Signing by Google Play”。
如果您使用的 apk 版本与 google play 中的版本不同,则会发生这种情况。
与 SO 和其他网站上的许多答案和评论相反,您不必使用已从 Google Play 下载到您的测试设备的产品的 alpha/beta 版本执行初步测试(alpha/beta 发布过程通常会吃光半天)。您也不必从开发人员工作室加载和重新加载签名的发布 apk 到您的测试设备。
您可以使用调试应用程序在应用程序计费服务中调试初步的 Google Play,该调试应用程序通过 ADB 从您的开发人员工作室直接加载到您的测试设备。如果您遇到阻止这种情况的错误,则可能是您在代码中做错了什么。请特别注意您的 SKU(产品 ID)的 CASE 及其格式(例如,如果您将 APK 加载为 com.mydomain.my_product_id,请务必尝试以这种方式购买 - 提供相同的案例和域) . 此外,请特别注意您的 itemType - 这应该是“inapp”或“subs”,分别用于应用程序购买或订阅中的托管/非托管。
根据 Chirag Patel 的建议,只要您正确建立了计费代码,请在初步测试期间使用 android.test.purchased Sku(产品 ID)执行所有测试。在您的计费操作中检查此 ID 以通过签名、令牌和有效负载检查,因为 Google 测试系统不提供此数据。此外,为您的测试产品之一提供此 ID 以测试其购买、解锁/加载和通过您的模式进行的演示。要清除购买,只需使用它,传递相同的 Sku 和以这种方式格式化的令牌字符串 - 没有其他字段相关:
"inapp:"+appContext.getAppContext().getPackageName()+":android.test.purchased";
完成此阶段的测试后,请使用您的 alpha/beta 产品进行半实时测试。创建一个 Google 群组(本质上是一个邮件列表),将您的测试用户电子邮件添加到其中,然后添加/邀请该群组在此阶段测试您的设备(在您应用的 Google 开发者列表的“APK”部分执行)。购买将是模拟的,但不会实际收费 - 但是为了清除和重新测试购买,Google 表示您必须从您的 Google 钱包中退款。这是唯一需要使用 alpha/beta 负载和测试用户的耗时过程的测试阶段。
让我补充一下发生在我身上的事情,可能会对某人有所帮助。
主要是因为签约。
由于我在项目结构中添加了签名详细信息,我在想每次运行时,都会安装预期的签名 apk。但是选择了构建类型“调试”。
下面的修复为我解决了这个问题。
就我而言,由于已安装的 apk 和上传到市场的 apk 的签名不同,我看到了相同的消息。
有同样的问题,在我阅读 DZDomi 的帖子之前没有解决。突然想到谷歌开发者控制台中有一个设置需要启用。在“应用内购买”部分,您的产品有一行,最右边有一个状态。它应该是活跃的!
如果您想调试 IAB,您需要做的是:
向 google 提交对清单具有 IAB 权限的应用版本:
在 google play 上向您的应用添加产品:管理应用内结算
设置签名的自定义调试密钥库:将Eclipse 配置为使用签名的密钥库
最近 google 对其系统进行了更改,由于您已将至少一个 APK 上传到您的控制台,您可以使用任何版本代码/编号的应用程序测试您的应用程序内请求。
交叉参考链接
配置
gradle
为对调试版本进行签名以进行调试。
android {
...
defaultConfig { ... }
signingConfigs {
release {
storeFile file("my-release-key.jks")
storePassword "password"
keyAlias "my-alias"
keyPassword "password"
}
}
buildTypes {
debug {
signingConfig signingConfigs.release
...
}
}
}
2022 答案:
这是针对调试/发布版本进行测试的,或者如果应用程序由 Play 签名签名(这意味着从 Google Play 交付的应用程序的签名证书与使用 Android Studio 从您的机器安装应用程序时的证书不同)。
检查以下步骤:
我在两个不同的 Google Play 控制台帐户(两个不同的应用程序)上进行了测试,并且可以正常工作。
我的问题是我试图用 debug.keystore 检查它,我的意思是通过 eclipse 运行它。我用我以 alpha 模式发布的密钥库导出它(它必须在你测试它之前发布)。安装它我的手机,比我可以正常测试它。
如果您在上传 apk 后添加了应用内购买,但尚未在 play 商店(alpha、beta 和生产)中发布应用程序,也会出现此问题。
这基本上意味着,您必须在 Play 商店(alpha、beta 和生产)中发布 apk 之后添加应用内购买。否则您将无法购买或查询应用内购买。
这里没有提到的另一个原因是您需要在真实设备上进行测试。随着模拟器变得非常好,这是一个容易犯的错误。
解决方案
将您的应用上传到 Play 商店后稍等片刻,因为谷歌需要一些时间来更新应用版本。它会起作用的!
如果您想与另一个未发布但具有相同 id、版本代码和已部署版本名称的应用程序集成,请不要忘记在 Flutter 应用程序中编辑 appname.iml 文件版本,因为我坚持使用同样的错误。
如果所有设置都正常但您仍然收到错误消息This version of the application is not configured for billing through Google Play. Check the help center for more information.
在 Play 商店中编辑您的应用内产品定价或停用和激活应用内产品。这将解决问题。