mirror of
https://github.com/ARMSX2/ARMSX3.git
synced 2026-08-24 16:58:52 -07:00
Release: 0.9.3.1, and make upload signing opt-in
The ISO reader revert is confirmed working by the reporter, so this ships it. Upload signing is now requested explicitly with -Parmsx3.uploadSigning rather than used whenever keystore.properties happens to exist. Once that file was created, every release build silently started signing with the upload key, and an APK signed differently from the one already installed cannot be installed over it -- so a sideload build becomes something testers cannot install, and Android's error does not mention signatures. It was being worked around by hiding keystore.properties by hand before each build, which is the kind of step that gets forgotten exactly once and then wastes a tester's evening. build-play-aab.sh passes the flag; nothing else does, and asking for it without the keystore present is now an error rather than a silent fallback.
This commit is contained in:
@@ -34,8 +34,8 @@ android {
|
||||
// agree -- an APK that installs below its core's target is a dlopen failure at boot.
|
||||
minSdk = (project.findProperty("armsx3.minSdk") as String?)?.toInt() ?: 33
|
||||
targetSdk = 37
|
||||
versionCode = 18
|
||||
versionName = "0.9.3"
|
||||
versionCode = 19
|
||||
versionName = "0.9.3.1"
|
||||
|
||||
// ARMSX2's UI reads these. STORAGE_ALL_FILES gates the all-files storage path in
|
||||
// onboarding; IN_APP_UPDATER gates the in-app GitHub-release updater.
|
||||
@@ -166,8 +166,20 @@ android {
|
||||
//
|
||||
// The file is gitignored (*.jks, keystore.properties) and read at build time, so no
|
||||
// credential is ever in the repo or on a command line.
|
||||
signingConfig = signingConfigs.findByName("upload")
|
||||
?: signingConfigs.getByName("debug")
|
||||
// The upload key ONLY when explicitly asked for, which build-play-aab.sh does.
|
||||
//
|
||||
// Opt-in rather than "use it if it exists": once the keystore was created, every
|
||||
// release build silently started using it, and a differently-signed APK cannot be
|
||||
// installed over an existing one. That turns a sideload build into something testers
|
||||
// cannot install, and the error Android shows says nothing about signatures. It was
|
||||
// being worked around by hiding keystore.properties by hand before each build, which
|
||||
// is exactly the kind of step that gets forgotten once.
|
||||
signingConfig = if (project.hasProperty("armsx3.uploadSigning")) {
|
||||
signingConfigs.findByName("upload")
|
||||
?: throw GradleException("armsx3.uploadSigning set but keystore.properties is missing")
|
||||
} else {
|
||||
signingConfigs.getByName("debug")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -96,7 +96,7 @@ mkdir -p "$JNI"
|
||||
"$STRIP" --strip-unneeded -o "$JNI/libarmsx3-core.so" "$CORE_SRC"
|
||||
|
||||
echo "==> Building Play bundle (minSdk $MIN_SDK, minify off)"
|
||||
( cd "$UI" && ./gradlew --quiet :app:bundlePlayRelease "-Parmsx3.minSdk=$MIN_SDK" -Parmsx3.noMinify )
|
||||
( cd "$UI" && ./gradlew --quiet :app:bundlePlayRelease "-Parmsx3.minSdk=$MIN_SDK" -Parmsx3.noMinify -Parmsx3.uploadSigning )
|
||||
|
||||
AAB="$UI/app/build/outputs/bundle/playRelease/app-play-release.aab"
|
||||
[ -f "$AAB" ] || { echo "FAIL: no bundle produced at $AAB" >&2; exit 1; }
|
||||
|
||||
Reference in New Issue
Block a user