API to automatically upload apk to Google Play?

AndroidApiApkPublishGoogle Play

Android Problem Overview


Is there any API or tool that enables me to automatically upload an APK to Google Play? I want to automatically publish customized apps to my account without any manual steps or graphical interface.

I searched around but could not find any API for doing this (only android-publisher but it doesn't support publishing, despite its name). Did anyone solve this already, seems like a basic feature?

Android Solutions


Solution 1 - Android

As of today there is a new official publishing API That allows you to upload to any channel (ie. alpha, beta...) or update title and description and more.

From the docs:

> - Uploading new versions of an app Releasing apps, by assigning APKs to various Tracks (alpha, beta, staged rollout, or production) > - Creating and modifying Google Play Store listings, including > - localized text and graphics and multi-device screenshots

Look here for more info: https://developers.google.com/android-publisher/

Solution 2 - Android

gradle-play-publisher is a Gradle plugin to upload your APK and app details to the Google Play Store.

I simply run ./gradlew publishApkRelease from my terminal and it uploads the APK and the summary of recent changes., there are more task like this available.

It uses the The Google Play Developer API

Solution 3 - Android

There is no official Google API for automating working with Google Play. (This is NOT true after July 2014)

You can create a script that encapsulates a web browser and simulates user bevahiour: find HTML fields, enter info there, submitting the page, etc.

We are working on such open-source Python tool: https://github.com/onepf/AppDF/tree/master/tools/uploader

Solution 4 - Android

I answered this also on this question, but I figured I'd add the same comment here. Let me know if that's the wrong way to do this (duplicating answers).

I was able to create a gradle plugin that does the publishing to any track you wish for any flavor/variant you wish using the new Google Play Publishing APIs.

See the sources here: https://github.com/bluesliverx/savillians-gradle

I'm working on publishing this to maven central so it can be used in a build script, but for now you can grab the android-publisher subdirectory in the repo, put it in the root of your gradle build, and rename the folder to buildSrc. Use the following line in the build.gradle file for the android project you want to publish:

apply plugin: com.savillians.gradle.androidpublisher.AndroidPublisherPlugin

You can then set your publishing settings using an androidPublisher block in the build.gradle file.

android {
	...
}
androidPublisher {
	applicationName = "Company-Name-Product-Name/1.0"
	packageName = "<package name>"
	serviceAccountEmail = "<service account email>"
	serviceAccountKeyFile = file('<p12 keyfile - NOT the json file>')
	track = "alpha" // default, don't need to specify
	variantName = "release" // default, don't need to specify
}

Make sure the service account you create has "release manager" permissions, download the p12 key file and put it in the project's directory. Then run this command:

gradle androidPublish

That will send it to Google Play using the credentials you specified. Good luck and let me know if you have questions since this is brand new.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionMagnusView Question on Stackoverflow
Solution 1 - AndroidsharshiView Answer on Stackoverflow
Solution 2 - AndroidCarlo EspinoView Answer on Stackoverflow
Solution 3 - AndroidVassili PhilippovView Answer on Stackoverflow
Solution 4 - AndroidbksavilleView Answer on Stackoverflow