配置Github Actions上传AAB至PlayStore遇权限错误求助
排查方向整理
确认服务账号已在Play Console中配置角色
即便Google Cloud账号拥有所有者权限,也必须在Google Play Console的「用户和权限」页面,将JSON密钥对应的服务账号邮箱添加为项目成员,并分配至少应用发布者或管理员角色。添加后需等待15-30分钟让权限生效,不要立即测试。验证JSON密钥的正确性与配置
- 确保密钥是从Google Cloud Console的「服务账号」页面下载的完整JSON文件,而非其他类型密钥。
- 在Github Secrets中粘贴密钥时,不要添加多余换行或空格,直接复制原文件内容。
- 检查Actions工作流中
r0adkll/upload-google-play的参数配置,确认serviceAccountJson已正确关联Github Secret,示例配置:- name: 上传至Google Play uses: r0adkll/upload-google-play@v1 with: serviceAccountJson: ${{ secrets.GOOGLE_PLAY_SERVICE_ACCOUNT_JSON }} packageName: com.your.app.package releaseFiles: app/build/outputs/bundle/release/app-release.aab track: internal
确认Google Play Android Developer API已启用
登录Google Cloud Console,找到对应项目,搜索「Google Play Android Developer API」,检查其状态为「已启用」。若未启用,启用后等待数分钟再测试。检查应用的Play Console初始化状态
- 确保应用包名已在Play Console中注册,且完成了商店信息的必填项填写。
- 新创建的应用需先手动上传一次AAB/APK到Play Console(哪怕是内部测试轨道),完成初始发布流程后,才能通过API进行后续上传。
验证工作流中的参数与文件路径
- 确认
track参数符合应用当前状态:新应用仅能上传至internal或closed beta轨道,无法直接上传到production。 - 在上传步骤前添加文件检查命令,确认AAB文件存在:
- name: 检查AAB文件 run: ls app/build/outputs/bundle/release/
- 确认
排查服务账号的域限制
若Google Cloud项目设置了域权限限制,确认服务账号邮箱未被限制,或已被允许访问Google Play相关API。本地测试服务账号权限
使用gcloud工具本地验证服务账号是否正常:- 安装gcloud SDK,并用密钥登录:
gcloud auth activate-service-account --key-file=your-service-account.json - 调用API测试:
gcloud alpha android apps list。若能返回应用列表,说明权限正常,问题可能出在Github Actions配置;若报错,需重新检查服务账号权限配置。
- 安装gcloud SDK,并用密钥登录:
内容的提问来源于stack exchange,提问作者David Aleksanyan
相关产品推荐
相关产品推荐

