APKMAN
Generate blank signed Android APKs as placeholder apps for Google Play Console
Description
The Google Play Developer API only allows you to create edits once a first APK has been uploaded.
This package helps you generate a minimal signed APK that can be used for exactly that.
Once uploaded, you can interact with the Google Play Developer API via the specified packageName.
Installation
yarn add apkman
OR
npm install apkman
Usage
Using a new Keystore
const { generateApk, Keystore } = require('apkman')
const store = new Keystore('./keystore.jks', 'mystorepass')
await store.create('myalias', 'mykeypass')
const buffer = await generateApk('com.package.example', store, 'myalias', 'mykeypass')
fs.writeFileSync('app-release.apk', buffer
Using an existing Keystore
const { generateApk, Keystore } = require('apkman')
const store = new Keystore('./keystore.jks', 'mystorepass')
await store.verifyKey('myalias', 'mykeypass')
const buffer = await generateApk('com.package.example', store, 'myalias', 'mykeypass')
fs.writeFileSync('app-release.apk', buffer
Methods
Initialize Keystore:
new Keystore(filename, storepass, options = {
validity: 10000,
keysize: 2048,
keyalg: 'RSA',
sigalg: 'SHA1withRSA',
destalias: null,
startdate: new Date(),
x509ext: [],
})
Create new key:
await keystore.create(alias, keypass, dname = {
commonName: 'John Doe',
organizationUnit: 'IT',
organizationName: 'Sample Inc.',
localityName: 'Singapore',
stateName: 'Singapore',
country: 'SG'
})
Verify existing key:
await keystore.verifyKey(alias, keypass)
Generate APK:
await apkman.generateApk(packageName, keystore, alias, keypass, options = {
targetSdkVersion: 28,
buildToolsVersion: '28.0.3',
})
Synopsis
apkman create [packageName] [keystorePath] [apkPath]
Create android APK at outputPath
Arguments:
packageName desired APK package name
keystorePath existing or desired Keystore output path
apkPath desired APK output path
Options:
-s, --storepass [default: random password]
-a, --alias [default: "app"]
-k, --keypass [default: random password]
-f, --force override existing keystore [boolean] [default: false]
-v, --verbose print verbose output [boolean] [default: false]
--help Show help [boolean]
--version Show version number [boolean]
License
apkman
is available under an MIT-style license.