Skip to main content

Upgrading

List Pilot supports in-place upgrades on Android when the new APK is signed with the same certificate and uses the same application ID (com.listpilot.list_pilot).

Normal upgrades​

Once you have List Pilot installed from a GitHub Release:

  1. Download the latest list-pilot-X.Y.Z.apk from Releases.
  2. Open the APK on your phone.
  3. Install over the existing app — your data is preserved (lists, custom catalog, learned item order). After upgrading you may be asked to set or confirm category aisle order once.
No uninstall needed

In-place upgrades keep your SQLite database intact. You should never need to uninstall between normal releases.

Migrating from debug-signed releases​

Early GitHub releases may have been signed with ephemeral CI debug keys. If an upgrade fails with "App not installed":

  1. Export your custom catalog (Settings → Export custom catalog).
  2. Uninstall the old build.
  3. Install the first release built with the stable sideload keystore.
  4. Future tagged releases will upgrade in place.

Keystore setup (maintainers)​

Release APKs must be signed with the same keystore for upgrades to work. Repository maintainers configure four GitHub Secrets:

SecretValue
ANDROID_KEYSTORE_BASE64Base64-encoded .jks file
ANDROID_KEYSTORE_PASSWORDKeystore password
ANDROID_KEY_PASSWORDKey password
ANDROID_KEY_ALIASKey alias (e.g. upload)

Generate a keystore locally (never commit it):

keytool -genkey -v -keystore upload-keystore.jks -keyalg RSA -keysize 2048 -validity 10000 -alias upload

See Developer setup for full release instructions.

Android Auto Backup​

List Pilot enables Android Auto Backup (allowBackup="true") as a secondary safety net. Primary data preservation relies on in-place upgrades.

Version codes​

Version numbers use semver (X.Y.Z). The Android build number is major*10000 + minor*100 + patch. Keep patch below 100 to avoid versionCode collisions.