AndBasicExample

Android basic example app

Purpose of this application is to showacse minimalistic Android app.

Prop More
Home https://pexmor.github.io/AndBasicExample/
package io.github.pexmor.abe

Publishing to Google Play

One-time setup

1. Generate a release keystore (do this once; back it up securely — losing it means you can never update the app):

./setup-keystore.sh

This creates release.jks and keystore.properties in the project root. Both are gitignored.

2. Create a Google Play service account

3. Create the app listing in Play Console

The app must exist on Play Console (at least a draft) before the first upload. Create it manually via the console, using application ID io.github.pexmor.abe.

Publish

# Upload to the internal test track (default)
./publish.sh

# Upload to a specific track
./publish.sh --track=alpha
./publish.sh --track=production

The script checks that keystore.properties and service-account.json are present, then runs ./gradlew publishReleaseBundle which builds a signed AAB and uploads it via the Google Play Developer API.

Note: publishReleaseBundle uploads the bundle and creates a draft release — it does not make the app live. After a successful upload you must manually promote the release in Play Console:

  1. Open Play Console → your app → the target track (e.g. Production).
  2. Click Review release.
  3. Resolve any warnings or policy issues.
  4. Click Start rollout to Production (or the equivalent for the chosen track).

Google then reviews the release before it becomes visible to users (typically fast for updates, up to a few days for new apps or significant changes).

Tip: To skip the manual promotion step you can set userFraction in the play {} block in app/build.gradle.kts (e.g. userFraction.set(1.0) for 100 % rollout) combined with releaseStatus.set(ReleaseStatus.IN_PROGRESS). The plugin will then submit the release for rollout automatically on upload. Omitting these settings (the default) keeps the safer draft behaviour.

To build the signed AAB locally without uploading:

./gradlew bundleRelease
# Output: app/build/outputs/bundle/release/app-release.aab