/apkup

🚀 Publish APKs to Google Play directly from the terminal

Primary LanguageTypeScriptMIT LicenseMIT

Apkup

npm Build Status GitHub Issues GitHub Pull Requests semantic-release


Publish APKs to Google Play directly from the terminal

This package offers a streamlined way to publish packages in the Google Play Store.

A fork of playup.

📝 Table of Contents

🏁 Getting Started

Getting started with apkup is pretty easy and straight forward.

Install the apkup package globally or locally:

npm i -g apkup
apkup -h

# or if you just want to use the CLI locally
npx apkup -h

# or install the library into your project
npm i -D apkup

CLI

Then use the CLI:

apkup \
  --key api.json \
  --apk /path/to/Package.apk \
  --deobfuscation /path/to/mapping.txt \ # optional
  --release-notes "en-US=lorem ipsum dolor" \
  --obbs /path/to/Expansion.obb \  # optional
  --obbs /path/to/Expansion2.obb   # optional

You can also specify each parameter via environment variables prefixed with APKUP_ (e.g. APKUP_KEY or APKUP_APK).

Library

Or use the JavaScript library!

// typescript / modulejs
import { Apkup } = from 'apkup';
// or commonjs
const { Apkup } = require('apkup');

const apkup = new Apkup({
  client_email: '',
  private_key: ''
});

apkup
  .upload('/path/to/apk', {
    obbs: [
      // optional expansion files (max 2)
      '/path/to/somefile.obb'
    ],
    releaseNotes: [
      {
        language: 'en-US',
        text: 'Minor bug fixes...'
      }
    ]
  })
  .then(data => {
    console.log(` > ${data.packageName} version ${data.versionCode} is up!`);
  });

🔒 Authentication

First you have to create a Google Play API Access. To do that go to the Google Play Developer Console and then with the account owner go to Settings -> API access and create a Google Play Android Developer project.

After that follow the instructions to create a Service Account. When you click Create Client ID, choose Service Account. You will get a JSON file with a public key and the service email.

The created Service Account needs the following role:

  • Release manager

🎈 Usage

See the full docs here.

✍️ Authors

See also the list of contributors who participated in this project.

🎉 Acknowledgements

  • The original project, playup!
  • Hat tip to anyone whose code was used