如何通过Google Play Console API自动推送内部轨道草稿至内部测试人员
解决Play Console API上传后版本停留在内部测试草稿的问题
问题根源
你遇到的报错Only releases with status draft may be created on draft app.,核心原因是你的应用目前处于草稿状态——也就是还没完成Play Console要求的首次发布前置配置,这种状态下API只能创建草稿版本,无法直接推送给测试人员。
前置必做操作(仅需一次)
先在Play Console网页端完成以下操作,把应用从草稿状态"激活":
- 填写应用所有必填的商店信息:描述、截图、应用图标、内容评级问卷、隐私政策链接等
- 手动在内部测试轨道发布至少一个版本(哪怕是旧版本),完成这一步后应用就不再是草稿状态了
修正后的API代码步骤
完成前置操作后,修改轨道更新代码的版本状态,提交后就能直接让内部测试人员获取新版本:
1. 创建编辑
edit_request = service.edits().insert(body={}, packageName=package_name) result = edit_request.execute() edit_id = result['id']
2. 上传安装包
media = clienthttp.MediaFileUpload(package_path, mimetype='application/octet-stream') uploaded_version = service.edits().bundles().upload(editId=edit_id, packageName=package_name, media_body=media).execute().upload_result['versionCode']
3. 更新内部测试轨道(核心修改)
将status从draft改为completed,这样版本提交后会直接生效:
name = f'API release for version {uploaded_version}' track_response = service.edits().tracks().update( editId=edit_id, track='internal', packageName=package_name, body={ 'releases': [{ 'name': name, 'status': 'completed', # 关键修改:设置为完成状态 'versionCodes': [str(uploaded_version)], # 部分API版本要求版本号为字符串类型 }] }).execute()
4. 提交编辑
service.edits().commit(editId=edit_id, packageName=package_name).execute()
额外说明
- 如果内部测试轨道已有活跃版本,API会自动将新版本合并进去,测试人员打开Google Play就能收到更新提示
- 确保你的API服务账号拥有
Android Developer或Release Manager权限,避免出现权限不足的报错
内容的提问来源于stack exchange,提问作者Adrian Real
相关产品推荐
相关产品推荐

