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

[Android] Warnings re version of version of Google Play Developer API #221

Closed
jrc14 opened this issue Apr 24, 2019 · 51 comments · Fixed by #237
Closed

[Android] Warnings re version of version of Google Play Developer API #221

jrc14 opened this issue Apr 24, 2019 · 51 comments · Fixed by #237

Comments

@jrc14
Copy link

jrc14 commented Apr 24, 2019

Google have sent me a warning email saying that "versions 1 and 2 of the Google Play Developer API will no longer be available" and mentioning that "you are currently using one of these versions". As far as I can see, my project is not directly referencing any version of the Google Play Developer API, so I think this must be triggered by the InAppBillingPlugin.

Is the current build of InAppBillingPlugin using v3 of the Google Play Developer API?

Bug Information

Version Number of Plugin: 2.0.0
Device Tested On: various
Simulator Tested On: none
Version of VS: 2017 15.9.3
Version of Xamarin: 4.12.4.73
Versions of other things you are using:

Steps to reproduce the Behavior

Run the app in production.

Expected Behavior

Google do not send me emails about deprecated versions of the Google Play Developer API.

Actual Behavior

Google do send me emails about deprecated versions of the Google Play Developer API.

Code snippet

n/a

Screenshots

None - but here is the text of Google's email to me:
Hello Google Play Developer,

Starting December 1, 2019, versions 1 and 2 of the Google Play Developer API will no longer be available. We’re reaching out because you are currently using one of these versions, and we wanted to make sure you are aware that if you do not migrate to version 3 by this date, API calls will result in errors.

At last year’s Google I/O, we introduced version 3 of the Google Play Developer API. In addition to all the features offered in versions 1 and 2, version 3 allows you to transactionally start, manage and halt staged releases on all tracks, including production, open testing, closed testing (including the new additional testing tracks) and internal testing.

Action required

If you use the Google Play API client libraries, please upgrade to the latest versions, which already support version 3 of the API. In many cases, changing the version of the client library should be all that you need to do.
If you currently use version 1 of the API, you will also need to link your API project to the Google Play Console before converting to version 3. You can learn more about this process here. Note that code changes may also be required.

For more information, please reference our blog post.

We hope you enjoy the new features of the Google Play Developer API, and we look forward to your continued feedback to help us improve the developer experience on Google Play.

@RobbiewOnline
Copy link

Hi @jrc14 - we are using this plugin and have not yet received an email from Android. I'll be keeping a close eye on this just in case 👀

Maybe you just need to update the Xamarin.Android.Support files and/or Xamarin.GooglePlayServices to their latest?

If you see a newer version being offered (in brackets to the right of each entry highlighted) then I would update those first. I'm not sure how you can verify what version of the Google Play API client libraries otherwise.

Check the Nuget versions via this...
Check the Nuget versions

Perhaps verify these are on the latest version?
Perhaps verify these?

@jamesmontemagno
Copy link
Owner

Yes, it is using version 2. I will put this on my list to implement version 3 soon.

@mfeingol
Copy link

Looking forward to seeing this fixed as well.

Aside: would it make sense for this plugin to fold into Xamarin Essentials?

@RobbiewOnline
Copy link

Yes, it is using version 2. I will put this on my list to implement version 3 soon.

Hi @jamesmontemagno How soon do you think we can have version 3 support by?

@jveltd
Copy link

jveltd commented Jul 17, 2019

@jamesmontemagno any movement on the upgrade to v3 on billing?

@jamesmontemagno
Copy link
Owner

Yes, we have a binding in place and I plan on working on it by end of this month. Not sure how large the change is just yet.

@mzhukovs
Copy link

mzhukovs commented Aug 5, 2019

Would be awesome to see this updated soon. Hope it's not too major. Thanks for this great plugin.

@chrisfoulds
Copy link

Heh, how is the work going ? , I have three apps using this so need to schedule time to upgrade and test them all before the Dec 1st cut off.

@jamesmontemagno
Copy link
Owner

Work has started on this :) https://github.com/jamesmontemagno/InAppBillingPlugin/tree/feature/android-billing-client I am working with @Redth on the binding to the new API. It is going to be some work that is for sure.

@erviem99
Copy link

I can see three commits on this feature branch. Does this mean that there will be a release anytime soon? I'm holding back on a new app until this issue is resolved.

@bellissimo
Copy link

Does this affect absolutely everyone who uses this module? I use it for making and retrieving purchases, but I have never seen a warning in the Google Play Console regarding this... ...a little surprising considering the effect it would have if I were to take no action.

@jamesmontemagno
Copy link
Owner

This is every single app ever created for Android regardless of framework. @bellissimo

I wouldn't hold back your app release @erviem99 based on this. I am not sure if just adding the new library will actually pass or if I need to implement the fully new API, so we will see. I'll probably push out a new beta soon to test, but need to see what the console says.

@BioTurboNick
Copy link
Contributor

@bellissimo I just recently saw a notice in the Play developer console (no e-mail), suspect it is this. Perhaps Google is just very slowly checking all the apps on the store for compatibility?

@jamesmontemagno Thanks for working on it.

@bellissimo
Copy link

@BioTurboNick Still nothing for me in the console, so you may be right. Considering this is such a serious breaking change, I am surprised they have not been more pro-active in raising this with developers. This would cause a major issue for my app if I don't address it well in advance of 1st Dec.

@jamesmontemagno While waiting for this module to be fixed, would be it be fine to use the Xamarin.Android.Google.BillingClient package in the meantime? This has very few downloads in NuGet, but seems to be a wrapper for the Google Play Billing Library. Presumably this avoids the API issue we have here?

@erviem99
Copy link

@jamesmontemagno Is there a fix for this coming anytime soon? Dec. 1 is not very far away and Google is warning me about this.

@EmilAlipiev
Copy link

I am wondering how about this nuget. Is that something we can use ?

https://github.com/xamarin/XamarinComponents/tree/master/Android/GoogleBillingClient

@bellissimo
Copy link

@EmilAlipiev I asked this a month ago, but not heard back yet. From the looks of it that is a relatively new binding for the Android Billing library, so I guess it should be fine to use. I will have to switch to that package instead, if this library is not updated soon. Users need time to update their apps and I don't want to leave it till the last minute.

@jveltd
Copy link

jveltd commented Oct 3, 2019

@jamesmontemagno how is progress going on integrating with the new billing V3 API? As mentioned, we're not far off from 1st December and I'm sure we would all like time to integrate, test and prepare for new app releases ahead of this date, realistically by 1st Nov which is only 28-days away.

Could you give us an indicated ETC please?

@c-lamont
Copy link

c-lamont commented Oct 3, 2019

Also, what can we do to help?

@bellissimo
Copy link

I second the request for an update. While I would much prefer to keep using this plugin, it would be good to know if there will be an update completed for the start of November so that we can start to code and test an alternative integration.

@mgoodfellow
Copy link
Contributor

It looks like that is the billing client that James has started to use already if you check his PR: https://github.com/jamesmontemagno/InAppBillingPlugin/pull/237/files#diff-08c081149f48aedb20064b092c4d9217R55

@jveltd being OSS, I don't believe you can ask for, let alone get, a ETC considering it is being done in someones free time.

Unfortunately you are right, and we are fast approaching a deadline, and knowing how poor users are at updating their apps, this is not looking great.

The PR is open and can be branched, so I guess it is up to us to try to work in a solution and then contribute that back to the community.

@RobbiewOnline
Copy link

+1 for a definitive route for Google Play IAP's v3 asap - we too would like to roll out before November to iron out any issues.

@RobbiewOnline
Copy link

RobbiewOnline commented Oct 3, 2019

The PR is open and can be branched, so I guess it is up to us to try to work in a solution and then contribute that back to the community.

Not everyone has the experience to do this - I certainly don't, but I'd be willing to learn if there's a resource that guides you (Git pulls, Android bindings, adding automated tests, etc).

I think that if Microsoft want to continue pushing Xamarin as their platform for mobile then it's them that should be ensuring key nugets are maintained (I think IAP falls firmly in this category), not relying on James, or falling back to the good will of contributors - who are all amazing.

I have seen the Sponsor button in #237 - not sure if this is the best place to sponsor, or directly in this page? Would sponsoring assist getting this completed earlier?

@mgoodfellow
Copy link
Contributor

I have seen the Sponsor button in #237 - not sure if this is the best place to sponsor, or directly in this page? Would sponsoring assist getting this completed earlier?

I saw this too - I would be happy to sponsor this fix to be rushed into this library, but it seems to point towards James's podcast as a recurring monthly subscription thing? It wasn't clear if it related directly to this library.

@bellissimo
Copy link

bellissimo commented Oct 3, 2019

@mgoodfellow I think the point is that if there is an update imminent, then people can hold off from doing their own separate implementations. It was stated a while ago that work has started on this, so it doesn't seem unreasonable to ask whether it may be ready in time, regardless of whether this is a voluntary project or not. I am certainly not expecting an exact release date, just an idea of which direction to take based on whether James has the time to complete this or not.

I must admit I thought that James worked for Microsoft and that this was an officially endorsed plugin. There does not seem to be any other working IAP module for Xamarin Android (other than the recently created Android Billing nuget).

@mgoodfellow
Copy link
Contributor

@bellissimo Judging by the activity on this library and on the PR, it seems work was started when James was last active on this thread, and nothing has happened since then. Even after further posts on this issue thread.

Unfortunately, it is OSS, and it is fully dependent on someone's free time - hence I just wanted to make sure we were maybe asking for things in a mindful manner, rather than being demanding about this. Yes it affects all of us, and yes we have looming deadline. James is active elsewhere on github judging by his activity in my feed, but not on here, so I guess we need to work on something ourselves.

Now unless I'm going crazy - going on from what @devology-rob said - actually I just checked the Xamarin docs and I can find iOS StoreKit docs: https://docs.microsoft.com/en-us/xamarin/ios/platform/in-app-purchasing/

But actually it seems the Android docs have been pulled (tried searching), and I cannot find them in the menu here: https://docs.microsoft.com/en-us/xamarin/android/

So that is pretty shocking if Microsoft have dropped support for it...

@bellissimo
Copy link

Were the docs ever there though? They would have to have pointed surely to this library (given that until recently there was no other library available for Android IAPs), and if this library is not official then that seems unlikely...

@mgoodfellow
Copy link
Contributor

No, they were there previously - it spoke about using the Xamarin Android Support libraries (as this library uses)

When I started the project I was working on a few years back, I was looking at building a shim layer myself when I found this library which made my life a lot easier.

I'm almost certain that Microsoft have pulled the old docs as they are no longer supported by Google, but don't seem to have documented the alternative :(

@bellissimo
Copy link

I guess when the AIDL was a supported way of doing things, it was possible to provide C# based documentation without relying on any third party libraries.

If they want to provide example code in C# now, it would have to be based on the new Android Billing Library in nuget I suppose. Hopefully it will be updated in time.

@mgoodfellow
Copy link
Contributor

Well, the new GoogleBillingClient is raw bindings, and I noticed that they were added by @Redth who James referenced earlier in this thread - #221 (comment)

Might be time to start referring to the raw Java docs - I must admin I haven't had to generate any platform specific bindings before - I've been lucky enough that someone has always mapped them before me

@bellissimo
Copy link

I have done it a few times. It can be tricky, but you can usually muddle through. If you checkout the bindings and change AAR_VERSION to 2.0.3 in the build.cake file, you should then be able to build the bindings for the latest version of the library.

@jamesmontemagno
Copy link
Owner

jamesmontemagno commented Oct 4, 2019

I have released version 3.0.0-beta.

See information here on this: https://github.com/jamesmontemagno/InAppBillingPlugin/pulls/237

I documented what I did in the PR.

@mgoodfellow
Copy link
Contributor

Thanks @jamesmontemagno ! I will load this into a beta and get it out, if all is good I will ship to full production

With regards to the warning however:

Google Play Console has been displaying warnings since mid-May if we detected that your app was still using version 1 and version 2 endpoints. The message is based on all calls to the API in the last seven days and is refreshed daily. If you see this message, it means calls to the Publishing API version 1 or 2 are referencing your app.

https://android-developers.googleblog.com/2019/03/changes-to-google-play-developer-api.html

This means that even an old version being used could trigger the warning I think, so hard to tell if it is effective. Might be worth spinning off a new app and see if the warning comes up maybe?

@jamesmontemagno
Copy link
Owner

So reading this thread: https://stackoverflow.com/questions/56700332/what-is-we-ve-detected-that-your-app-is-using-an-old-version-of-the-google-play I don't actually think it is this library at all to be honest with you. It is saying that your app somehow is connected. I don't get this warning at all on my apps and neither have others.

@jamesmontemagno
Copy link
Owner

My assumption here is that some CI or other tool uploaded to Google Play and used these APIs such as VS, App Center, HockeyApp, CircleCI, Bitrise, DevOps, etc. Or there is receipt validation on the backend. From what I have seen this is not with the use of this library as I have confirmed in my app and in others that they don't get this warnings. Others are saying that this is a false positive on their end.

@mgoodfellow
Copy link
Contributor

Thanks for finding that thread - so following through one of the responses:

image

Takes me to here

image

And sure enough:

image

It is my backend receipt validation!

Thank you for that find - I can get a fix in my side ASAP.

@mfeingol
Copy link

mfeingol commented Oct 4, 2019

A question: for those of you seeing the warning, are you seeing it persistently or transiently? If persistently, where are you seeing it?

Thanks.

(I ask because I recall seeing it once many months ago, but I haven't seen it since.)

@AntRemo
Copy link

AntRemo commented Oct 4, 2019

@mfeingol

In Google Play Console, if I go Dashboard for my app it appears there.

@BioTurboNick
Copy link
Contributor

I put out a new version of my app and stopped seeing the warning. I enabled 64-bit builds for the APK (another coming requirement) and updated Xamarin.Forms, so I wonder if between those things it got fixed?

@bellissimo
Copy link

I received an email warning a few months ago saying my app was using the old API. However as I mentioned previously, I have never seen the warning in the console. I wonder if the warning was generated by Visual Studio, which may use the API to upload builds to the console.

If this is a false positive that is great news. Will check out the beta as well, thanks @jamesmontemagno

@leenephi
Copy link

Just adding to also confirm that this package was not the cause of the warning for us. We found we were using v2 endpoints to verify Google Play IAP receipts. After updating those to v3 the warning has not shown up again and there had been no app updates during that period.

@c-lamont
Copy link

Hi @leenephi can you describe how you have updated your endpoints to v3? We are also verifying Google receipts and its the only thing I can think of that is the issue. In the Google Cloud Platform I use the Google Play Android Developer API to verify receipts and publish app to the store, but I do not see any reference to what version it is or how to update it (or maybe I going down the wrong path).

@mgoodfellow
Copy link
Contributor

mgoodfellow commented Oct 19, 2019

Hi @c-lamont if you are on .NET on your server, simply swap:

https://www.nuget.org/packages/Google.Apis.AndroidPublisher.v2

for

https://www.nuget.org/packages/Google.Apis.AndroidPublisher.v3

The contracts are the same, and no code change is required.

It fixed the issue for me too.

@c-lamont
Copy link

Hi @mgoodfellow We are indeed using https://www.nuget.org/packages/Google.Apis.AndroidPublisher.v3

We had an old version of the app still retained in our account (which is using an old backend) which I have removed and hope that this is the reason I am still getting the error message. Google Play says it checks for up to 7 days if the old API is used so I just have to wait and see if this is the issue.

@jveltd
Copy link

jveltd commented Oct 21, 2019

Just to confirm again, this warning affects server-to-server comms only so this nuget doesn't require an update. I believe on our own server we're already on V3 so we've not seen any of the warnings on the Google Play console.

For in-app billing developers
This deprecation only affects the APIs which are used to interact with Play Billing via server to server communication. Android apps that use the AIDL / Billing Library to provide in-app purchase functionality are unaffected.

https://android-developers.googleblog.com/2019/03/changes-to-google-play-developer-api.html

@SalvinoM
Copy link

SalvinoM commented Nov 4, 2019

Hi

I've many apps on Google Play, all with In App Xamarin billing controll, but and I've seen the "Warning" only in 2 Apps that I've updated recently. To be sure last week I've modified 1 app with the more recent Montemagno sotware and the beta release 3.0.0, but the Warning still remains.
In the same time the Warning for the app that I didn't update last week now has disappeared.
So I think that the problem is only in the VS2019 upload process, in fact after a week of the upload the Warning disappears.

@ludas96
Copy link

ludas96 commented Nov 7, 2019

I'm quite clueless on what causes this issue. As @jamesmontemagno stated, this has nothing to do with this plugin but probably VS2019 distribution.

My question is then, how do I change this to use Api V3?
Do I have to wait for VS to update before the final date and hope it gets fixed before then?

edit I'm using Google Play distribution inside VS2019 to publish directly to Production.

@SalvinoM
Copy link

SalvinoM commented Nov 7, 2019

@ludas96
I tried to upload an app that had the Warning manually, and in this case the Warning doesn't appear.
So for me the problem resides surely in VS2019 distribution.
Now I can only wait for a VS update or:

  • upload apps manually
    or
  • upload apps with VS and wait a week to see the Warning disappeared: but who can knows what will happen after 1th of december?

@ludas96
Copy link

ludas96 commented Nov 7, 2019

@SalvinoM
Right.

I chose "Ad Hoc" after archiving my new build and uploaded the APK directly on Play Console.
Is this the same as manually uploading, or do i have to move away from VS completely while archiving/signing etc?

@SalvinoM
Copy link

SalvinoM commented Nov 7, 2019 via email

@ludas96
Copy link

ludas96 commented Nov 14, 2019

Update on previous comment. Manually uploading the App made the warning go away after 7 days.
Thanks again @SalvinoM 😊

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

Successfully merging a pull request may close this issue.