android 如何测试Play订阅的购买?

pprl5pva  于 2023-01-07  发布在  Android
关注(0)|答案(3)|浏览(242)

我一直在尝试在我的设备上测试购买Play Store订阅,但尽管遵循了几个分步指南[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表示开发人员错误:
为API提供的参数无效。此错误还可能表示应用未正确签名或未在Google Play中正确设置应用内付费,或者在其清单中没有必要的权限。
我的应用发布到内部、Alpha和Beta发布轨道,版本名称和版本代码与本地构建的APK相同。在Play控制台中,我创建了一个许可证测试程序,并将其添加到Alpha轨道的测试程序中,然后通过链接选择测试程序加入Alpha轨道。在我的设备上,我使用测试程序的Google帐户登录。
我尝试过构建一个使用发布证书签名的APK,版本名称和代码与应用商店中发布的APK相匹配。我最初使用Android Studio中的“运行”和“调试”按钮,但发现无论我如何配置签名配置,他们都构建了一个未签名的[7] APK。相反,我使用“构建”-〉“创建项目"菜单项进行构建,并使用ADB[5]安装得到的签名APK。“活动构建变体”被设置为“发布”。
我突然想到,可能无法使用与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手机进行测试。

更新2022

我从来没有在我的三星A5上找到解决这个问题的方法。但是,我购买了三星A52(运行Android 12),它没有出现这个问题。

n9vozmp4

n9vozmp41#

你需要增加版本并上传该版本作为beta版发布。
大部分重复,请检查This version of the application is not configured for billing through Google Play

b4lqfgs4

b4lqfgs42#

如果两个应用的签名密钥或软件包不同,Google Play会将其视为不同的应用
调试和发布版本都应该使用相同的签名密钥,我可以在Android Studio上通过USB调试时进行测试购买,没有任何问题
在应用程序build.gradle上类似这样的内容:

buildTypes {
        release {                        
            signingConfig signingConfigs.mykey
            debuggable false; 
            ....
        }
        debug {
            debuggable true
            signingConfig signingConfigs.mykey
            ....
        }
    }
z9zf31ra

z9zf31ra3#

有一个叫做“幸运补丁”的工具可以修改应用程序代码,以便绕过应用程序购买(是的,它是用于盗版的,但我很确定绕过你自己的应用程序不是盗版),你可以尝试用它来测试你的应用程序。
如果你还没有,一旦你完成了,通过下面的方法来防止它:Lucky patcher, how can I protect from it?

相关问题