如何使用Gradle Task将AAB上传至Internal App Sharing
基于Gradle Task直接上传AAB至Google Play内部应用共享的实现路径
完全存在可落地的纯Gradle链路实现方案,不需要依赖Travis这类外部CI环境。公开教程大量提及Travis,只是因为早期很多演示场景选择在流水线流程中跑通上传逻辑,并非实现上传能力的必要前提。
前置准备要求
- 提前通过Google Play开发者后台生成具备对应应用上传权限的服务账号,下载对应的JSON格式鉴权密钥文件,这是所有上传方案绕不开的鉴权基础,和使用外部CI没有关联
- 确保本地Gradle版本、Android Gradle Plugin(AGP)版本满足官方Play发布插件的最低适配要求
核心实现流程
Google官方已推出专用的Play发布插件com.google.android.play:publisher,内置了内部应用共享的全流程上传能力,完全不需要自行拼接HTTP请求、处理OAuth2鉴权、适配接口限流规则,落地步骤非常直接:
- 在应用模块的build.gradle文件中应用该发布插件
- 在插件的专属配置块中指定服务账号密钥的本地存储路径,配置上传任务的目标渠道为内部应用共享,关联本地bundle构建任务的输出文件作为上传输入
- 上传任务执行完成后,插件会直接在控制台日志中输出可直接访问的内部共享下载链接
可参考的基础配置示例:
plugins { id 'com.android.application' // 应用官方Play发布插件 id 'com.google.android.play.publisher' } playPublisher { // 配置服务账号密钥的本地文件路径 serviceAccountCredentials = file("$rootDir/your-service-account-key.json") // 定义AAB上传专用任务 uploadInternalAab { // 指定上传目标为内部应用共享渠道 target = "internal-app-sharing" // 关联release版本AAB构建任务的输出作为上传源文件 aabFile = bundleRelease.outputFile } }
常见认知误区澄清
- 无需绑定外部CI环境:配置完成后直接在本地终端执行
./gradlew uploadInternalAab就能触发完整上传流程,全程在本地Gradle任务链路内完成 - 无需满足应用正式发布的前置校验要求:内部应用共享渠道的上传规则比正式发布渠道宽松很多,就算应用还处于草稿阶段、没有完成首次正式发布,只要服务账号具备对应应用的上传权限,就能正常完成上传
- 不存在“必须配Travis才能上传”的硬约束:早期没有官方发布插件时,不少开发者自行编写Groovy脚本拼接接口实现上传,这类演示大多被放到Travis流水线中运行,慢慢形成了误导性认知,实际上核心上传逻辑完全可以作为独立的Gradle Task存在,和CI环境无关
内容的提问来源于stack exchange,提问作者Ankush Kapoor
相关产品推荐
相关产品推荐

