microsoft / google-play-vsts-extension

Visual Studio Team Services (VSTS) extension for performing continuous delivery to the Google Play store from your automated CI builds
Other
81 stars 57 forks source link

Failed to upload the deobfuscation file #210

Open liumiaojq opened 3 years ago

liumiaojq commented 3 years ago

Hi,

We have set up a ADO pipeline to release our app to Google play store and it works fine till today. We don't change anything but get the following error:

2020-11-13T00:31:27.8716691Z ##[section]Starting: Release to production 10% 2020-11-13T00:31:27.8850893Z ============================================================================== 2020-11-13T00:31:27.8851252Z Task : Google Play - Release 2020-11-13T00:31:27.8851563Z Description : Release an app to the Google Play Store 2020-11-13T00:31:27.8852020Z Version : 3.174.0 2020-11-13T00:31:27.8852275Z Author : Microsoft Corporation 2020-11-13T00:31:27.8853095Z Help : ms-resource:loc.helpMarkDown 2020-11-13T00:31:27.8853426Z ============================================================================== 2020-11-13T00:31:29.1414109Z 074b9815-d7e4-4077-9087-5781e70dc5cc exists true 2020-11-13T00:31:29.2248407Z Found main APK to upload: D:/a/r1/a/ProductionName-CI/ProductionFlavor/ProductionAPK.apk (version code 0000001) 2020-11-13T00:31:29.3277605Z Authenticated with Google Play and getting new edit 2020-11-13T00:31:39.6266541Z Found deobfuscation (mapping) file: D:/a/r1/a 2020-11-13T00:31:39.6360057Z ##[error]Unhandled: EISDIR: illegal operation on a directory, read 2020-11-13T00:35:39.6631398Z ##[error]Error: Failed to upload the deobfuscation file D:/a/r1/a. Failed with message: Error: socket hang up. 2020-11-13T00:35:39.6898489Z ##[section]Finishing: Release to production 10%

I have rerun the job several times but it keeps failing with the same error. I'm able to manually upload the deobfuscation file to play store.

anatolybolshakov commented 3 years ago

Hi @liumiaojq do you use self-hosted or ms hosted agent? Could you please also share logs in diagnostic mode?

liumiaojq commented 3 years ago

I'm using hosted agent. Can you let me know how can I get logs in diagnostic mode? Please note this only happens in our release to production pipeline and I'm not able to run it again until our next production roll out.

anatolybolshakov commented 3 years ago

@liumiaojq for release pipeline you can set System.Debug variable as 'true' - to enable diagnostic mode

liumiaojq commented 3 years ago

I'm able to repro when releasing to internal test track. Here are the logs in diagnostic mode:

2020-11-17T18:35:19.9693265Z ##[debug]Evaluating condition for step: 'Release to internal test debug' 2020-11-17T18:35:19.9695186Z ##[debug]Evaluating: succeeded() 2020-11-17T18:35:19.9695712Z ##[debug]Evaluating succeeded: 2020-11-17T18:35:19.9696916Z ##[debug]=> True 2020-11-17T18:35:19.9698058Z ##[debug]Result: True 2020-11-17T18:35:19.9698776Z ##[section]Starting: Release to internal test debug 2020-11-17T18:35:19.9923768Z ============================================================================== 2020-11-17T18:35:19.9924390Z Task : Google Play - Release 2020-11-17T18:35:19.9925105Z Description : Release an app to the Google Play Store 2020-11-17T18:35:19.9925541Z Version : 3.174.0 2020-11-17T18:35:19.9925784Z Author : Microsoft Corporation 2020-11-17T18:35:19.9927657Z Help : ms-resource:loc.helpMarkDown 2020-11-17T18:35:19.9928297Z ============================================================================== 2020-11-17T18:35:20.0329326Z ##[debug]Using node path: C:\agents\2.175.2\externals\node\bin\node.exe 2020-11-17T18:35:20.3388242Z ##[debug]agent.TempDirectory=D:\a_temp 2020-11-17T18:35:20.3390794Z ##[debug]loading inputs and endpoints 2020-11-17T18:35:20.3398543Z ##[debug]loading ENDPOINT_AUTH_074b9815-d7e4-4077-9087-5781e70dc5cc 2020-11-17T18:35:20.3416850Z ##[debug]loading ENDPOINT_AUTH_PARAMETER_074b9815-d7e4-4077-9087-5781e70dc5cc_PASSWORD 2020-11-17T18:35:20.3422025Z ##[debug]loading ENDPOINT_AUTH_PARAMETER_074b9815-d7e4-4077-9087-5781e70dc5cc_USERNAME 2020-11-17T18:35:20.3425999Z ##[debug]loading ENDPOINT_AUTH_PARAMETER_SYSTEMVSSCONNECTION_ACCESSTOKEN 2020-11-17T18:35:20.3430625Z ##[debug]loading ENDPOINT_AUTH_SCHEME_074b9815-d7e4-4077-9087-5781e70dc5cc 2020-11-17T18:35:20.3433056Z ##[debug]loading ENDPOINT_AUTH_SCHEME_SYSTEMVSSCONNECTION 2020-11-17T18:35:20.3437535Z ##[debug]loading ENDPOINT_AUTH_SYSTEMVSSCONNECTION 2020-11-17T18:35:20.3440445Z ##[debug]loading INPUT_APKFILE 2020-11-17T18:35:20.3442644Z ##[debug]loading INPUT_AUTHTYPE 2020-11-17T18:35:20.3444875Z ##[debug]loading INPUT_CHANGELOGFILE 2020-11-17T18:35:20.3447261Z ##[debug]loading INPUT_LANGUAGECODE 2020-11-17T18:35:20.3448157Z ##[debug]loading INPUT_MAPPINGFILEPATH 2020-11-17T18:35:20.3450936Z ##[debug]loading INPUT_METADATAROOTPATH 2020-11-17T18:35:20.3452938Z ##[debug]loading INPUT_ROLLOUTTOUSERFRACTION 2020-11-17T18:35:20.3455218Z ##[debug]loading INPUT_SERVICEACCOUNTKEY 2020-11-17T18:35:20.3457117Z ##[debug]loading INPUT_SERVICEENDPOINT 2020-11-17T18:35:20.3459551Z ##[debug]loading INPUT_SHOULDATTACHMETADATA 2020-11-17T18:35:20.3461574Z ##[debug]loading INPUT_SHOULDPICKOBBFILE 2020-11-17T18:35:20.3482970Z ##[debug]loading INPUT_SHOULDPICKOBBFILEFORADDITONALAPKS 2020-11-17T18:35:20.3483540Z ##[debug]loading INPUT_SHOULDUPLOADAPKS 2020-11-17T18:35:20.3483893Z ##[debug]loading INPUT_SHOULDUPLOADMAPPINGFILE 2020-11-17T18:35:20.3484243Z ##[debug]loading INPUT_TRACK 2020-11-17T18:35:20.3484580Z ##[debug]loading INPUT_UPDATESTORELISTING 2020-11-17T18:35:20.3485898Z ##[debug]loading INPUT_USERFRACTION 2020-11-17T18:35:20.3486568Z ##[debug]loading INPUT_VERSIONCODEFILTERTYPE 2020-11-17T18:35:20.3509911Z ##[debug]loaded 25 2020-11-17T18:35:20.3556402Z ##[debug]Agent.ProxyUrl=undefined 2020-11-17T18:35:20.3558793Z ##[debug]Agent.CAInfo=undefined 2020-11-17T18:35:20.3559664Z ##[debug]Agent.ClientCert=undefined 2020-11-17T18:35:20.3561902Z ##[debug]Agent.SkipCertValidation=undefined 2020-11-17T18:35:21.4021349Z ##[debug]check path : D:\a_tasks\GooglePlayRelease_8cf7cac0-620b-11e5-b4cf-8565e60f4d27\3.174.0\task.json 2020-11-17T18:35:21.4022483Z ##[debug]adding resource file: D:\a_tasks\GooglePlayRelease_8cf7cac0-620b-11e5-b4cf-8565e60f4d27\3.174.0\task.json 2020-11-17T18:35:21.4023608Z ##[debug]system.culture=en-US 2020-11-17T18:35:21.4049885Z ##[debug]Prepare task inputs. 2020-11-17T18:35:21.4072594Z ##[debug]authType=ServiceEndpoint 2020-11-17T18:35:21.4073317Z ##[debug]serviceEndpoint=074b9815-d7e4-4077-9087-5781e70dc5cc 2020-11-17T18:35:21.4073816Z 074b9815-d7e4-4077-9087-5781e70dc5cc exists true 2020-11-17T18:35:21.4076134Z ##[debug]074b9815-d7e4-4077-9087-5781e70dc5cc exists true 2020-11-17T18:35:21.4076593Z ##[debug]apkFile=D:\a\r1\a\ProductionName-CI\ProductionRelease*.apk 2020-11-17T18:35:21.4077103Z ##[debug]Main APK pattern: D:\a\r1\a\ProductionName-CI\ProductionRelease*.apk 2020-11-17T18:35:21.4119238Z ##[debug]check path : D:/a/r1/a/ProductionName-CI/ProductionRelease/production-1.0.0.apk 2020-11-17T18:35:21.5339845Z Found main APK to upload: D:/a/r1/a/ProductionName-CI/ProductionRelease/production-1.0.0.apk (version code 0000001) 2020-11-17T18:35:21.5341315Z ##[debug] Found the main APK file: D:/a/r1/a/ProductionName-CI/ProductionRelease/production-1.0.0.apk (version code 0000001). 2020-11-17T18:35:21.5343941Z ##[debug]additionalApks=null 2020-11-17T18:35:21.5347354Z ##[debug]versionCodeFilterType=all 2020-11-17T18:35:21.5349333Z ##[debug]track=internal 2020-11-17T18:35:21.5352061Z ##[debug]rolloutToUserFraction=false 2020-11-17T18:35:21.5354067Z ##[debug]shouldAttachMetadata=false 2020-11-17T18:35:21.5356016Z ##[debug]updateStoreListing=false 2020-11-17T18:35:21.5367209Z ##[debug]shouldUploadApks=true 2020-11-17T18:35:21.5368505Z ##[debug]shouldPickObbFile=false 2020-11-17T18:35:21.5371128Z ##[debug]shouldPickObbFileForAdditonalApks=false 2020-11-17T18:35:21.5372187Z ##[debug]changelogFile=D:\a\r1\a 2020-11-17T18:35:21.5374247Z ##[debug]languageCode=en-US 2020-11-17T18:35:21.5375097Z ##[debug]Getting a package name from D:/a/r1/a/ProductionName-CI/ProductionRelease/production-1.0.0.apk 2020-11-17T18:35:21.5376154Z ##[debug]Updating Global Parameters 2020-11-17T18:35:21.5377042Z ##[debug]SETTING packageName TO "com.example.testapp" 2020-11-17T18:35:21.5379280Z ##[debug]Global Params set to {"auth":null,"params":{"packageName":"com.example.testapp"}} 2020-11-17T18:35:21.5380127Z ##[debug]Initializing JWT. 2020-11-17T18:35:21.5384493Z ##[debug]Initializing Google Play publisher API. 2020-11-17T18:35:21.5385131Z ##[debug]Authorize JWT. 2020-11-17T18:35:21.6956396Z Authenticated with Google Play and getting new edit 2020-11-17T18:35:21.6958095Z ##[debug]Creating a new edit transaction in Google Play. 2020-11-17T18:35:21.6964207Z ##[debug]Creating a new edit 2020-11-17T18:35:21.6964823Z ##[debug]Additional Parameters: {"packageName":"com.example.testapp"} 2020-11-17T18:35:23.2504648Z ##[debug]Updating Global Parameters 2020-11-17T18:35:23.2505509Z ##[debug]SETTING editId TO "04114249820640510881" 2020-11-17T18:35:23.2523094Z ##[debug]Global Params set to {"auth":{"domain":null,"_events":{},"_eventsCount":0,"transporter":{},"credentials":{"access_token":"[xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx]","token_type":"Bearer","expiry_date":1605641720000,"refresh_token":"jwt-placeholder"},"certificateExpiry":null,"refreshTokenPromises":{},"eagerRefreshThresholdMillis":300000,"email":"","keyFile":null,"key":"","scopes":["https://www.googleapis.com/auth/androidpublisher"],"subject":null,"gtoken":{"token":"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx","expiresAt":1605641720000,"rawToken":{"access_token":"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx","expires_in":3599,"token_type":"Bearer"},"tokenExpires":null,"keyFile":null,"key":"***","iss":"***","sub":null,"scope":"https://www.googleapis.com/auth/androidpublisher"}},"params":{"packageName":"com.example.testapp","editId":"04114249820640510881"}} 2020-11-17T18:35:23.2530810Z ##[debug]Uploading 1 APK(s). 2020-11-17T18:35:23.2532755Z ##[debug]Uploading APK D:/a/r1/a/ProductionName-CI/ProductionRelease/production-1.0.0.apk 2020-11-17T18:35:23.2535977Z ##[debug]Request Parameters: {"packageName":"com.example.testapp","media":{"body":{"_readableState":{"objectMode":false,"highWaterMark":65536,"buffer":{"head":null,"tail":null,"length":0},"length":0,"pipes":null,"pipesCount":0,"flowing":null,"ended":false,"endEmitted":false,"reading":false,"sync":true,"needReadable":false,"emittedReadable":false,"readableListening":false,"resumeScheduled":false,"defaultEncoding":"utf8","ranOut":false,"awaitDrain":0,"readingMore":false,"decoder":null,"encoding":null},"readable":true,"domain":null,"_events":{},"_eventsCount":1,"path":"D:/a/r1/a/ProductionName-CI/ProductionRelease/production-1.0.0.apk","fd":null,"flags":"r","mode":438,"end":null,"autoClose":true,"bytesRead":0},"mimeType":"application/vnd.android.package-archive"}} 2020-11-17T18:35:34.2799817Z ##[debug]returned: {"versionCode":000001,"binary":{"sha1":"a47bdd6dd644999a2735a1c3a8b9a9755c442937","sha256":"b5e301df078c4333dd82bc144e67ea847d147bee50b7bb7ee0c8048f72caabce"}} 2020-11-17T18:35:34.2801211Z ##[debug]Uploaded D:/a/r1/a/ProductionName-CI/ProductionRelease/production-1.0.0.apk with the version code 0000001 2020-11-17T18:35:34.2801715Z ##[debug]shouldUploadMappingFile=true 2020-11-17T18:35:34.2802067Z ##[debug]mappingFilePath=D:\a\r1\a 2020-11-17T18:35:34.2802434Z ##[debug]Mapping file pattern: D:\a\r1\a 2020-11-17T18:35:34.2811990Z ##[debug]check path : D:/a/r1/a 2020-11-17T18:35:34.2812548Z Found deobfuscation (mapping) file: D:/a/r1/a 2020-11-17T18:35:34.2813628Z ##[debug]Uploading mapping file D:/a/r1/a 2020-11-17T18:35:34.2850503Z ##[debug]Request Parameters: {"deobfuscationFileType":"proguard","packageName":"com.example.testapp","apkVersionCode":000001,"media":{"body":{"_readableState":{"objectMode":false,"highWaterMark":65536,"buffer":{"head":null,"tail":null,"length":0},"length":0,"pipes":null,"pipesCount":0,"flowing":null,"ended":false,"endEmitted":false,"reading":false,"sync":true,"needReadable":false,"emittedReadable":false,"readableListening":false,"resumeScheduled":false,"defaultEncoding":"utf8","ranOut":false,"awaitDrain":0,"readingMore":false,"decoder":null,"encoding":null},"readable":true,"domain":null,"_events":{},"_eventsCount":1,"path":"D:/a/r1/a","fd":null,"flags":"r","mode":438,"end":null,"autoClose":true,"bytesRead":0},"mimeType":""}} 2020-11-17T18:35:34.2891791Z ##[debug]task result: Failed 2020-11-17T18:35:34.2931829Z ##[error]Unhandled: EISDIR: illegal operation on a directory, read 2020-11-17T18:35:34.2952177Z ##[debug]Processed: ##vso[task.issue type=error;]Unhandled: EISDIR: illegal operation on a directory, read 2020-11-17T18:35:34.2954258Z ##[debug]Processed: ##vso[task.complete result=Failed;]Unhandled: EISDIR: illegal operation on a directory, read 2020-11-17T18:39:34.3584055Z ##[debug]Failed to upload deobfuscation file D:/a/r1/a 2020-11-17T18:39:34.3585513Z ##[debug]Error: socket hang up 2020-11-17T18:39:34.3586855Z ##[debug]Exception thrown releasing to Google Play: Error: Failed to upload the deobfuscation file D:/a/r1/a. Failed with message: Error: socket hang up. 2020-11-17T18:39:34.3588950Z ##[debug]task result: Failed 2020-11-17T18:39:34.3593702Z ##[error]Error: Failed to upload the deobfuscation file D:/a/r1/a. Failed with message: Error: socket hang up. 2020-11-17T18:39:34.3596499Z ##[debug]Processed: ##vso[task.issue type=error;]Error: Failed to upload the deobfuscation file D:/a/r1/a. Failed with message: Error: socket hang up. 2020-11-17T18:39:34.3599907Z ##[debug]Processed: ##vso[task.complete result=Failed;]Error: Failed to upload the deobfuscation file D:/a/r1/a. Failed with message: Error: socket hang up. 2020-11-17T18:39:34.4025164Z ##[section]Finishing: Release to internal test debug

liumiaojq commented 3 years ago

Hello, is there any progress? This still repros consistently. Let me know what I can help here

anatolybolshakov commented 3 years ago

@liumiaojq is 'D:/a/r1/a' intended to be deobfuscation file for you application? According to EISDIR error - it seems to be the directory instead of a file

anatolybolshakov commented 3 years ago

Hi @liumiaojq is this issue still actual for you?

anatolybolshakov commented 3 years ago

@liumiaojq closing this due to inactivity - please feel free to reopen or ask any further questions.

liumiaojq commented 3 years ago

@anatolybolshakov Sorry for late response. I got more clues from the logs. Can you reopen this issue?

The extension correctly picked up the apk in the path I provided, but it attempted to find the mapping file in a different path:

2021-02-26T03:44:25.1457035Z ##[debug]Uploaded D:/a/r1/a/XXXXXX-CI/ProductionLtw21Release/XXX-1.12345.67.0.apk with the version code xxxxxx 2021-02-26T03:44:25.1458159Z ##[debug]shouldUploadMappingFile=true 2021-02-26T03:44:25.1459185Z ##[debug]mappingFilePath=D:\a\r1\a\XXXXXX-CI\ProductionLtw15Release\mapping\mapping.txt 2021-02-26T03:44:25.1460174Z ##[debug]Mapping file pattern: D:\a\r1\a\XXXXXX-CI\ProductionLtw15Release\mapping\mapping.txt 2021-02-26T03:44:25.1466777Z ##[debug]check path : D:\a\r1\a\XXXXXX-CI\ProductionLtw15Release\mapping\mapping.txt 2021-02-26T03:44:25.1468116Z ##[debug]Exception thrown releasing to Google Play: Error: Not found mappingFilePath: D:\a\r1\a\XXXXXX-CI\ProductionLtw15Release\mapping\mapping.txt 2021-02-26T03:44:25.1469080Z ##[debug]task result: Failed 2021-02-26T03:44:25.1505389Z ##[error]Error: Not found mappingFilePath: D:\a\r1\a\XXXXXX-CI\ProductionLtw15Release\mapping\mapping.txt 2021-02-26T03:44:25.1515668Z ##[debug]Processed: ##vso[task.issue type=error;]Error: Not found mappingFilePath: D:\a\r1\a\XXXXXX-CI\ProductionLtw15Release\mapping\mapping.txt 2021-02-26T03:44:25.1517888Z ##[debug]Processed: ##vso[task.complete result=Failed;]Error: Not found mappingFilePath: D:\a\r1\a\XXXXXX-CI\ProductionLtw15Release\mapping\mapping.txt 2021-02-26T03:44:25.1628367Z ##[section]Finishing: Release to production 10%

There is no way to specify a mapping file path in the parameter of the extension, so I have no idea why this path is being used here. Actually "ProductionLtw15Release" was a build flavor we used before and has been renamed to ProductionLtw21Release. we tried to reconfigure the build artifacts in release pipeline, but that doesn't help.

anatolybolshakov commented 3 years ago

@liumiaojq sure, reopening this - let us take a look