【发布时间】:2021-05-06 05:50:23
【问题描述】:
我一直在尝试在我的设备上测试购买 Play 商店订阅,但尽管遵循了几个分步指南,但我没有成功[1][2][3]。
我的终极目标是通过使用 Android Studio 构建和安装应用程序来测试我的 USB 连接设备上的订阅。不幸的是,我现在唯一的选择似乎是将应用程序发布到 Play 商店的 Alpha 轨道,等待几个小时,然后在我每次进行更改时下载它。
使用BillingClient.querySkuDetailsAsync 成功查询订阅产品,但是当我启动计费流程(通过BillingClient.launchBillingFlow)时,我在屏幕上看到以下警报:
错误
此版本的应用程序未配置为通过 Google Play 计费。查看帮助中心了解更多信息。
好的
我还在控制台中看到以下内容:
W/ProxyBillingActivity: Activity finished with resultCode 0 and billing's responseCode: 5
W/BillingHelper: Couldn't find purchase lists, trying to find single data.
W/BillingHelper: Received a bad purchase data.
Couldn't find single purchase data as well.
响应码5表示a developer error:
提供给 API 的参数无效。此错误还可能表明应用未正确签名或未正确设置 Google Play 中的应用内结算,或者在其清单中没有必要的权限。
我的应用以与本地构建的 APK 相同的版本名称和版本代码发布到内部、Alpha 和 Beta 版本轨道。在 Play 控制台中,我创建了一个 License Tester 并将其添加到 Alpha 轨道的测试器中,然后通过链接选择测试器加入 Alpha 轨道。在我的设备上,我使用测试人员的 Google 帐户登录。
我已尝试构建一个使用发布证书签名的 APK,其版本名称和代码与商店中发布的 APK 匹配。我最初在 Android Studio 中使用“运行”和“调试”按钮,但发现无论我如何配置签名配置,它们都构建了一个未签名的[7] APK。相反,我使用 Build->Make Project 菜单项进行构建,并使用 ADB[5] 安装生成的签名 APK。 “Active Build Variant”设置为“Release”。
我突然想到,使用与 Play 商店分发的 APK 相同的密钥对本地构建的 APK 进行签名可能是不可能的,因为我的应用启用了“Play App Signing”(这会导致 Google 重新签署APK 使用不同的密钥,我无法访问)。但是,StackOverflow 上有一个线程表明即使使用 Play App Signing[6],其他人也取得了成功。
我还尝试在将新版本发布到 Alpha 轨道和尝试购买订阅之间等待几天,因为我了解到 Play 商店有时需要长达 24 小时来处理版本。
我在 MacOS 10.15.7 上使用 Android Studio 4.2,并使用三星 A5 手机进行测试。
【问题讨论】:
-
您是否检查过添加在 license testers 中的账号是您手机中唯一登录的账号?
-
如果你想调试你的发布版本,你可以设置 signinConfigs 并设置 debuggable true 然后你可以调试你的发布版本。
标签: android android-studio google-play in-app-purchase in-app-billing