mirror of
https://github.com/software-mansion/argent.git
synced 2026-09-14 19:27:14 +08:00
edcb502a2c
`build:android-binaries` compiles the helper from the `packages/argent-private` submodule and stamps `--version-code` from this repo's manifest. Nothing tied those two together, so bumping the manifest to 2 for the `setText` protocol — without moving the submodule pointer, which is still v0.19.0 and `PROTOCOL_VERSION = "1"` — mints an APK that claims versionCode 2 and cannot answer the method. That fails silently and permanently. `ensureAndroidDevtoolsInstalled` compares `probe.versionCode >= manifest.versionCode`, `2 >= 2` is satisfied, and the real v2 helper is never pushed. Reproduced on an API 36 emulator: with such an APK installed and a GENUINE protocol-2 APK bundled, the install is skipped, the device still reports versionCode 2, and every clear comes back `helper_outdated`. `adb uninstall` is the only recovery. The manifest now states the protocol it promises, and `build.sh` compares it against the source's own `PROTOCOL_VERSION` before compiling anything. Kept as its own field rather than read off the versionCode: the versionCode is the install bar and a rebuild for a plain bug fix moves it alone. Verified both ways on the pinned tree: the build now stops with the pointer's protocol named and `bin/` untouched, and the same extraction against the protocol-2 helper source answers 2, which is what the manifest declares.