Skip to content

Releasing ​

A release is a signed APK on GitHub releases, plus its checksum. Installed copies of VueGram find it there and update themselves.

The release key ​

Releases are signed with VueGram's release key, which lives outside the repository in ~/.vuegram/:

  • vuegram-release.jks, the keystore
  • signing.properties, with storeFile, storePassword, keyAlias and keyPassword

(scripts/release.sh reads ~/.vuegram/signing.properties, or the file the VUEGRAM_SIGNING environment variable names.)

Back up ~/.vuegram somewhere safe

Android only installs an update signed with the same key as the installed app. Without this key, no installed copy of VueGram could be updated: everyone would have to uninstall VueGram (and log in again) to get a new version.

The certificate's SHA-256 is:

1cf5e1fccd8f64863b507c2b8c03d7f1f15d6c2785c11c4ad4d9b699eb152152

Never commit the release key, signing.properties or anything from dist/.

Make a release ​

  1. Raise appVersion in app/build.gradle.kts and commit. versionCode follows it: 1.2.3 is 10203 (each part must be below 100).

  2. Run scripts/release.sh. It:

    • refuses to run with uncommitted changes, or if the tag already exists;
    • builds and tests the release (testReleaseUnitTest assembleRelease);
    • refuses the APK if it is not signed with the certificate above (the app would refuse it too);
    • writes dist/vuegram-<version>.apk and dist/vuegram-<version>.apk.sha256;
    • tags v<version>.
  3. Publish it. Push the tag and create a GitHub release with both files:

    sh
    scripts/release.sh --publish

    does that with the gh command-line tool. To do it by hand: git push origin v<version>, then on GitHub create a release from that tag titled "VueGram <version>", attach both files, write what changed, and publish it as the latest release (not a pre-release or draft).

What the app expects ​

The app's update check reads the latest release and needs:

  • an .apk asset, and
  • its .apk.sha256 next to it.

Without the checksum file, the app refuses the update. It also refuses an APK signed with any other key.

VueGram is an unofficial app. It is not made by, affiliated with or endorsed by Telegram. No cookies, no analytics.