What is "We’ve detected that your app is using an old version of the Google Play developer API" warning in Google Developer Console?

Solution 1:

The problem is that your project on Google Cloud Platform is using an old version of Developer Web API. It was automatically set up for you when you enabled developer services intentionally/unintentionally from Google Play Console's API Access section in Developer Settings.

Web API for subscriptions and purchases is actually part of Android Developer API:

The Google Play Developer API allows you to perform a number of publishing and app-management tasks. It includes two components:

The Subscriptions and In-App Purchases API lets you manage in-app purchases and subscriptions.
The Publishing API lets you upload and publish apps, and perform other publishing-related tasks.

You are not using above API in your app, this API is for management not the actual purchases. You are using SDK which has different versioning so no need to upgrade. This API was set up in your GCP project however.

To find which Project on GCP is associated with your Play Console, go to this link: https://play.google.com/apps/publish/#ApiAccessPlace

enter image description here

You just need to Go to GCP, find your project, find Google Android Developer API and change the version there. Or you can just disable the API if you don't use it.

For example, my GCP project was automatically named Google Play Android Developer so yours might probably be the same.

I can't see an option on my console probably because they removed it for new projects, but if your project is already using an old version, you probably will have a warning there as well.

enter image description here

Solution 2:

Any one have idea, what does it mean by "We’ve detected that your app is using an old version of the Google Play developer API" ?

The simple explanation for this message is that: An app either yours or a third party app is hitting the below api

https://www.googleapis.com/androidpublisher/v1/applications

or

https://www.googleapis.com/androidpublisher/v2/applications

passing your app's package name along

com.android.myapp

in other to perform automated tasks like

Retrieve billing Info
Publish app to store
Retrieve review comments
etc..

Nevertheless those apis are deprecated an they're meant to go through the below api instead

https://www.googleapis.com/androidpublisher/v3/applications

Some third-party plugins have been confirmed to trigger this message, simply because they are using deprecated apis to perform their actions.

For example:

  • Fastlane for android --See discussion
  • Visual Studio IDE Distribution Channel for android apps with Xamarin.Forms --See discussion
  • Jamesmontemagno Billing Library for Xamarin and Windows --See discussion

There is also a possibility that you are the one referencing the deprecated api maybe from your server side or "just maybe" in your own app code. The bottom line is that a call somewhere is hitting a deprecated api with your app's package name. An advice from me to you would be: Update your billing library if you use one.

Wrapping this up with the statement from Google Developer API v3 doc

Usage of the API can also be indirect, not by the app itself, but by a third-party plugin (e.g. a plugin for rolling out new releases). Many third-party plugins are already using version 3 of the API. If you use a plugin that does not support version 3, you will need to contact the maintainer.

Solution 3:

This isn't related to billing since you don't have server side validation. It's the AndroidPublisher API as other have mentioned, which means you probably have a pretty nasty security flaw. So, how to go about finding it?

  1. Go to https://play.google.com/apps/publish/#AdminPlace
  2. In there, you'll see a list of "Users with access." Some will be real, others will be Service Accounts. The latter end in @gcp-project-id.iam.gserviceaccount.com
  3. If there's anything you don't recognize, remove the account
  4. If you want to further clean things up, go to https://console.developers.google.com/apis/credentials?project=gcp-project-id with the gcp-project-id from above
    1. Don't remove random service accounts here, most are auto generated from various other Google service and things will break if they disappear. Do remove the service accounts that had access to the Play Console if they aren't used to access other APIs.

Solution 4:

Google Play Developer API is not directly used inside your app (APK), so you cannot fix it in build.gradle. It contains some services to help you automate app publishing (Continuous integration, CI) and also an API to validate in-app purchases.

You should check how your backend is validating in-app purchases and update to the latest version. You may also check how your CI server is uploading the APK to the Play Store and also update to the latest version.

You can read more about Google Play Developer API here https://developers.google.com/android-publisher/