Installing the v0.2.5 release APK over v0.2.4 on the S21 failed with INSTALL_FAILED_UPDATE_INCOMPATIBLE: Existing package org.pydevices.runner signatures do not match newer version. The release workflow signs each debug build with whatever debug keystore the runner has, which is new every run, so no release can update the previous one in place: users must uninstall, which wipes the Runner's staged programs and settings. A local build can't update a CI build either (seen today while proving #26 and #30).
Fix: sign every build with one stable key. Cheapest is a debug keystore kept as a repository secret (base64) that the workflow writes to ~/.android/debug.keystore before buildozer runs, and that build_android.sh uses locally too. A release keystore would be better still, but a stable debug key is enough for in-place updates.
Installing the v0.2.5 release APK over v0.2.4 on the S21 failed with
INSTALL_FAILED_UPDATE_INCOMPATIBLE: Existing package org.pydevices.runner signatures do not match newer version. The release workflow signs each debug build with whatever debug keystore the runner has, which is new every run, so no release can update the previous one in place: users must uninstall, which wipes the Runner's staged programs and settings. A local build can't update a CI build either (seen today while proving #26 and #30).Fix: sign every build with one stable key. Cheapest is a debug keystore kept as a repository secret (base64) that the workflow writes to
~/.android/debug.keystorebefore buildozer runs, and thatbuild_android.shuses locally too. A release keystore would be better still, but a stable debug key is enough for in-place updates.