使用TFS Google Play-Promote任务推广安卓应用失败:缺失editId参数
解决TFS Google Play推广任务中"Missing required parameters: editId"错误
我之前帮团队处理过类似的TFS安卓应用发布自动化问题,你遇到的这个Google Play - Promote任务失败(从Internal test轨推广到Beta轨),核心错误是Missing required parameters: editId,这是因为Google Play Publisher API在操作发布轨时,必须先创建一个编辑会话获取editId,但任务内部没正确完成这个步骤。
错误日志详情
2018-05-30T08:52:56.3968703Z ##[section]Starting: Promote Company app to Beta 2018-05-30T08:52:56.3973547Z ============================================================================== 2018-05-30T08:52:56.3973821Z Task : Google Play - Promote 2018-05-30T08:52:56.3974042Z Description : Promote an app from one release track to another 2018-05-30T08:52:56.3974263Z Version : 2.135.0 2018-05-30T08:52:56.3974451Z Author : Microsoft Corporation 2018-05-30T08:52:56.3974645Z Help : 2018-05-30T08:52:56.3974852Z ============================================================================== 2018-05-30T08:52:57.1629965Z 6e783899-b52e-421e-a965-71a07243996a exists true 2018-05-30T08:52:57.1787632Z Authenticating with Google Play 2018-05-30T08:52:57.3281897Z Getting information for track internal 2018-05-30T08:52:57.3328244Z { Error: Missing required parameters: editId 2018-05-30T08:52:57.3328709Z at createAPIRequest (D:\a_tasks\GooglePlayPromote_4dae1f76-29d3-482f-97d5-e3189a8347c2\2.135.0\node_modules\googleapis\lib\apirequest.js:109:14) 2018-05-30T08:52:57.3330082Z at Object.get (D:\a_tasks\GooglePlayPromote_4dae1f76-29d3-482f-97d5-e3189a8347c2\2.135.0\node_modules\googleapis\apis\androidpublisher\v2.js:1133:16) 2018-05-30T08:52:57.3389969Z ##[error]Failed to promote APK. 2018-05-30T08:52:57.3401865Z at Object.tryCatcher (D:\a_tasks\GooglePlayPromote_4dae1f76-29d3-482f-97d5-e3189a8347c2\2.135.0\node_modules\bluebird\js\main\util.js:26:23) 2018-05-30T08:52:57.3402370Z at Object.ret [as getAsync] (eval at makeNodePromisifiedEval (D:\a_tasks\GooglePlayPromote_4dae1f76-29d3-482f-97d5-e3189a8347c2\2.135.0\node_modules\bluebird\js\main\promisify.js:163:12), :13:39) 2018-05-30T08:52:57.3403181Z at getTrack (D:\a_tasks\GooglePlayPromote_4dae1f76-29d3-482f-97d5-e3189a8347c2\2.135.0\google-play-promote.js:112:25) 2018-05-30T08:52:57.3403680Z at D:\a_tasks\GooglePlayPromote_4dae1f76-29d3-482f-97d5-e3189a8347c2\2.135.0\google-play-promote.js:53:20 2018-05-30T08:52:57.3404270Z at tryCatcher (D:\a_tasks\GooglePlayPromote_4dae1f76-29d3-482f-97d5-e3189a8347c2\2.135.0\node_modules\bluebird\js\main\util.js:26:23) 2018-05-30T08:52:57.3404726Z at Promise._settlePromiseFromHandler (D:\a_tasks\GooglePlayPromote_4dae1f76-29d3-482f-97d5-e3189a8347c2\2.135.0\node_modules\bluebird\js\main\promise.js:510:31) 2018-05-30T08:52:57.3405176Z at Promise._settlePromiseAt (D:\a_tasks\GooglePlayPromote_4dae1f76-29d3-482f-97d5-e3189a8347c2\2.135.0\node_modules\bluebird\js\main\promise.js:584:18) 2018-05-30T08:52:57.3405525Z at Async._drainQueue (D:\a_tasks\GooglePlayPromote_4dae1f76-29d3-482f-97d5-e3189a8347c2\2.135.0\node_modules\bluebird\js\main\async.js:128:12) 2018-05-30T08:52:57.3405915Z at Async._drainQueues (D:\a_tasks\GooglePlayPromote_4dae1f76-29d3-482f-97d5-e3189a8347c2\2.135.0\node_modules\bluebird\js\main\async.js:133:10) 2018-05-30T08:52:57.3406289Z at Immediate.Async.drainQueues (D:\a_tasks\GooglePlayPromote_4dae1f76-29d3-482f-97d5-e3189a8347c2\2.135.0\node_modules\bluebird\js\main\async.js:15:14) 2018-05-30T08:52:57.3406619Z at runCallback (timers.js:672:20) 2018-05-30T08:52:57.3406823Z at tryOnImmediate (timers.js:645:5) 2018-05-30T08:52:57.3407049Z at processImmediate [as _immediateCallback] (timers.js:617:5) 2018-05-30T08:52:57.3407219Z cause: 2018-05-30T08:52:57.3407400Z Error: Missing required parameters: editId 2018-05-30T08:52:57.3407668Z at createAPIRequest (D:\a_tasks\GooglePlayPromote_4dae1f76-29d3-482f-97d5-e3189a8347c2\2.135.0\node_modules\googleapis\lib\apirequest.js:109:14) 2018-05-30T08:52:57.3408026Z at Object.get (D:\a_tasks\GooglePlayPromote_4dae1f76-29d3-482f-97d5-e3189a8347c2\2.135.0\node_modules\googleapis\apis\androidpublisher\v2.js:1133:16) 2018-05-30T08:52:57.3408428Z at Object.tryCatcher (D:\a_tasks\GooglePlayPromote_4dae1f76-29d3-482f-97d5-e3189a8347c2\2.135.0\node_modules\bluebird\js\main\util.js:26:23) 2018-05-30T08:52:57.3408844Z at Object.ret [as getAsync] (eval at makeNodePromisifiedEval (D:\a_tasks\GooglePlayPromote_4dae1f76-29d3-482f-97d5-e3189a8347c2\2.135.0\node_modules\bluebird\js\main\promisify.js:163:12), :13:39) 2018-05-30T08:52:57.3411121Z at getTrack (D:\a_tasks\GooglePlayPromote_4dae1f76-29d3-482f-97d5-e3189a8347c2\2.135.0\google-play-promote.js:112:25) 2018-05-30T08:52:57.3411753Z at D:\a_tasks\GooglePlayPromote_4dae1f76-29d3-482f-97d5-e3189a8347c2\2.135.0\google-play-promote.js:53:20 2018-05-30T08:52:57.3412167Z at tryCatcher (D:\a_tasks\GooglePlayPromote_4dae1f76-29d3-482f-97d5-e3189a8347c2\2.135.0\node_modules\bluebird\js\main\util.js:26:23) 2018-05-30T08:52:57.3412666Z at Promise._settlePromiseFromHandler (D:\a_tasks\GooglePlayPromote_4dae1f76-29d3-482f-97d5-e3189a8347c2\2.135.0\node_modules\bluebird\js\main\promise.js:510:31)
问题原因分析
- 任务版本过旧:你当前使用的是2.135.0版本的Google Play - Promote任务,这个版本存在已知的editId获取逻辑缺陷,新版本已经修复了这个问题。
- 服务账号权限不足:用于认证的Google服务账号没有足够权限创建编辑会话,需要确保账号拥有
Google Play Developer角色,且已在Google Play控制台添加为项目成员。 - 配置信息错误:任务中填写的应用包名与Google Play控制台的包名不匹配,或者源轨/目标轨名称配置有误(注意Google的轨名称是小写:
internal、beta)。
解决方案步骤
- 升级任务版本:在TFS的任务管理界面,找到Google Play相关任务,更新到最新版本,新版本会正确处理editId的创建和传递。
- 验证服务账号权限:登录Google Play控制台,检查服务账号是否被添加为项目成员,且分配了
Google Play Developer角色;同时确认服务账号的密钥文件配置正确。 - 核对任务配置:仔细检查任务中的应用包名、源轨(Internal)、目标轨(Beta)名称是否完全正确,避免大小写或拼写错误。
- 手动测试API:可以用Google Play Publisher API手动调用创建编辑会话的接口,验证是否能成功获取editId,排除API层面的访问问题。
内容的提问来源于stack exchange,提问作者Santhosh
相关产品推荐
相关产品推荐

