Matthias Nott
2026-06-11 54a1fd0ffbd9b663bd9aa502009ea54faae3b304
refs
author Matthias Nott <mnott@mnsoft.org>
Thursday, June 11, 2026 10:42 +0200
committer Matthias Nott <mnott@mnsoft.org>
Thursday, June 11, 2026 10:42 +0200
commit54a1fd0ffbd9b663bd9aa502009ea54faae3b304
tree 7496ad078329aa28b39d141f31eb4c2a0be6ecbf tree | zip | gz
parent d9227bf2860a6f23ab89d8e7e0d7a9bf448d0adf view | diff
build: store-release pipeline (App Store + Play Store), Android release signing

Ports Glidr's release mechanism into PAILot — same Apple Dev Team (7KU642K5ZL),
same App Store Connect API key path, same JDK 21 pin, same project-local key-
store pattern. PAILot's pipeline is smaller than Glidr's (no content sync, no
HMAC rotation): just iOS IPA build + altool upload, plus Android AAB build.

- tools/build-appstore.sh: build IPA, fix archive name, upload via xcodebuild
-exportArchive with the App Store Connect auth key.
- tools/build-android-aab.sh: build a Play Store-ready AAB (pinned to JDK 21).
- tools/release.sh: unified runner — iOS then Android, with --ios-only /
--android-only flags.
- tools/privacy.html: privacy policy adapted for PAILot's BYO-server model
(no backend, no analytics, no third-party tracking, audio/text/tokens all
go to the user's own AIBroker daemon).
- android/app/build.gradle.kts: real release signing config (keystore at
android/release.keystore, alias 'pailot'), R8 minification on.
- .gitignore: never commit the keystore.

Keystore generated at android/release.keystore. Back it up — losing it means
losing the ability to publish updates under com.tekmidian.pailot.
2 files modified
4 files added
changed files
.gitignore diff | view | blame | history
android/app/build.gradle.kts diff | view | blame | history
tools/build-android-aab.sh diff | view | blame | history
tools/build-appstore.sh diff | view | blame | history
tools/privacy.html diff | view | blame | history
tools/release.sh diff | view | blame | history