Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Google Play APIs v1 and v2 are about to be retired #129

Closed
bandyguy opened this issue Apr 25, 2019 · 23 comments · Fixed by #134
Closed

Google Play APIs v1 and v2 are about to be retired #129

bandyguy opened this issue Apr 25, 2019 · 23 comments · Fixed by #134

Comments

@bandyguy
Copy link

According to Google: "Starting December 1, 2019, versions 1 and 2 of the Google Play Developer API will no longer be available." Does this project use v3 of their APIs?

@lkillgore
Copy link
Contributor

Hi @bandyguy, currently the 'release' and 'promote' tasks use V2, and 'rollout update' uses V3. It's on our roadmap to update the others (I'm confident we'll get to it before the deadline).

@meteorra
Copy link

Hi, @lkillgore, are you still on the road to meet the deadline? Thx in advance

@lkillgore
Copy link
Contributor

Hi @meteorra, yes, we're on track. Thanks!

@lkillgore
Copy link
Contributor

This work is complete. I had to bump the major version of the task, so you'll need to update your definitions to get the changes with the new API.

@MouthOfMadness
Copy link

I'm getting a different error with the new release GooglePlayRelease@3

##[section]Starting: GooglePlayRelease

Task : Google Play - Release
Description : Release an app to the Google Play Store
Version : 3.156.0
Author : Microsoft Corporation
Help : ms-resource:loc.helpMarkDown

Found main APK to upload: d:/a/1/b/Release/android/com.droidaim.apk (version code 3684)
Authenticated with Google Play and getting new edit
Appending changelog d:\a\1\s\droid\ReleaseNotes.txt
Updating track information...
##[error]Error: Release is not compliant with the Play 64-bit requirement.
##[section]Finishing: GooglePlayRelease

@lkillgore
Copy link
Contributor

Do you get that same error when you manually upload your APK using the google play console? Does it happen when you use the '2.*' version of the task? It seems that you're running into this issue, which shouldn't be related to the update of the task.

(FWIW, it looks like the requirement started to be enforced on August 1st.)

@MouthOfMadness
Copy link

MouthOfMadness commented Aug 7, 2019

No on the console.

When I use @2, I get ##[error]Error: Error in edits.commitAsync(): {"cause":{"code":403,"errors":[{"domain":"androidpublisher","reason":"releaseValidationErrorKeyNotCompliantWith64BitRequirementError","message":"Release is not compliant with the Play 64-bit requirement."}]},"isOperational":true,"code":403,"errors":[{"domain":"androidpublisher","reason":"releaseValidationErrorKeyNotCompliantWith64BitRequirementError","message":"Release is not compliant with the Play 64-bit requirement."}]}

Earlier in the day, I had reviewed the link you've just posted, I've set the build to arm64-v8a only, and defined the min SDK version to be 8.1. Unfortunately, we're not using Android Studio and so we don't have access to the analyzer, does VS 2019 have a comparable version of the apk analyzer?

The timeframe is about right, I had builds working the week before last.

@andrelundin
Copy link

Make sure you also target 64-bit in release, not only in debug.
Guys: Thanks for the fix. I will test it out if it now work tonight.

@lkillgore
Copy link
Contributor

Weird that they allow uploads using the console but not the API. :-/

The hosted image is defined here. This says that it's included in the SDK tools, so I would expect that it should be on the image.

@MouthOfMadness
Copy link

@lkillgore @andrelundin

The console is a do as I say, not as I do.

From my yaml:

My android build task looks like this:

task: XamarinAndroid@1
displayName: "build android"
inputs:
projectFile: '**/droid.csproj'
outputDirectory: '$(outputDirectory)'
configuration: '$(buildConfiguration)'
msbuildArchitectureOption: x64
createAppPackage: true

My publish task looks like this:

task: GooglePlayRelease@2
inputs:
authType: 'JsonFile'
serviceAccountKey: $(googleApi.secureFilePath)
apkFile: '$(outputDirectory)/*.apk'
track: 'internal'
changeLogFile: 'droid/ReleaseNotes.txt'

@lkillgore
Copy link
Contributor

@MouthOfMadness, you've uploaded the exact same binaries manually and it doesn't give a warning or error? (If you're using a hosted agent, you'd need to post the APK as an artifact, download it, and manually upload it through the console.) Does it not even give the warning about supporting 64-bit architectures? You should at minimum see something like this:
image

It seems from the error that this is not a problem with the upload, it's a problem with the APK.

@MouthOfMadness
Copy link

It seemed to work on Tuesday.

aimobile

@lkillgore
Copy link
Contributor

If it's failing with V2 of the task, then it has to be something that changed on Google's side. It's possible they waited a few days before pulling the trigger for the Aug 1st deadline, but that's just a conjecture.

@MouthOfMadness
Copy link

Yes, definitely the V2 task is failing and I've updated to V3 and received a different error related to 64-bitness.

@MouthOfMadness
Copy link

I speculate that because it's in a deactivated state, there doesn't seem to be a way to update the existing apk with an armeabi-v8a version (this version is 7a)

image

@MouthOfMadness
Copy link

@lkillgore
Here's the real fix.

After updating my pipeline to use the GoogleRelease@3 task, I had to hand edit the android csproj file to be arm64-v8a;x86_64.

It all worked after that.

@andrelundin
Copy link

Works fine here.

@lkillgore
Copy link
Contributor

Glad to hear it @MouthOfMadness! And, thanks for posting your fix!

@MouthOfMadness
Copy link

I feel a bit sheepish; I should have looked at the csproj file right away, Visual Studio hasn't been able to edit its project files correctly for the last couple of years.

@dhruvcom
Copy link

@MouthOfMadness Sorry for being naive. Can you please let me know how you updated updating my pipeline to use the GoogleRelease@3 task ? Is the Task version in "Release Step" in the pipeline?

@MouthOfMadness
Copy link

@dhruvcom

I'm using YAML for my pipeline and my code looks like this:

- task: GooglePlayRelease@3
  inputs:
    authType: 'JsonFile'
    serviceAccountKey: $(googleApi.secureFilePath)
    apkFile: '$(outputDirectory)/*.apk'
    track: 'internal'
    changeLogFile: '$(path)/ReleaseNotes.txt'       

@dhruvcom
Copy link

@MouthOfMadness Thank you . It helps.

@MouthOfMadness
Copy link

@druvcom

I should have mentioned that I using a single yaml file for both build and deployment for google; it didn't make sense to separate build and release for the google environment as internally they don't have a concept of dev/qa/production environments, but rather the internal/alpha/beta... track. There are yaml tasks to do the track promotion, but I'm not using them.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

6 participants