From faefca044594c8f250790aca48e8862753615355 Mon Sep 17 00:00:00 2001 From: funman300 Date: Sat, 16 May 2026 12:11:22 -0700 Subject: [PATCH] fix(android): remove hardcoded versionCode/Name from manifest so aapt2 CI injection works MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit aapt2 --version-code/--version-name only inject when the attribute is absent — they silently no-op when the manifest already has a value. Removed both attributes from AndroidManifest.xml so the CI flags take effect. Local debug builds fall back to code=1 / name=0.0.0-dev. Co-Authored-By: Claude Sonnet 4.6 --- scripts/build_android_apk.sh | 8 ++++++-- solitaire_app/android/AndroidManifest.xml | 4 +--- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/scripts/build_android_apk.sh b/scripts/build_android_apk.sh index 6e8fc2c..99df4ab 100755 --- a/scripts/build_android_apk.sh +++ b/scripts/build_android_apk.sh @@ -76,12 +76,16 @@ if [ -d "$RES_DIR" ]; then fi # Derive versionCode/versionName from VERSION_NAME env var (e.g. "v0.28.0" → code 2800, name "0.28.0"). -# Falls back to the values hardcoded in AndroidManifest.xml when not set (local debug builds). -VERSION_CODE="" +# AndroidManifest.xml intentionally has no versionCode/versionName — aapt2's --version-* flags only +# inject when absent, so the manifest must be clean for CI injection to work. Local debug builds +# fall back to code=1 / name="0.0.0-dev". if [ -n "${VERSION_NAME:-}" ]; then VN="${VERSION_NAME#v}" IFS='.' read -r _MAJ _MIN _PAT <<< "$VN" VERSION_CODE=$(( ${_MAJ:-0} * 10000 + ${_MIN:-0} * 100 + ${_PAT:-0} )) +else + VERSION_CODE=1 + VERSION_NAME="0.0.0-dev" fi LINK_ARGS=( diff --git a/solitaire_app/android/AndroidManifest.xml b/solitaire_app/android/AndroidManifest.xml index f814f93..10712d3 100644 --- a/solitaire_app/android/AndroidManifest.xml +++ b/solitaire_app/android/AndroidManifest.xml @@ -13,9 +13,7 @@ shared object name without the `lib` prefix or `.so` suffix. --> + package="com.ferrousapp.solitaire">