fix: package Android client from current source - #26
Open
BrykmanHVD wants to merge 2 commits into
Open
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
:app:copyApkbuild the current Android release and copy the exact Gradle outputpackage.batfail when required Windows, Android, ADB, or installer artifacts are missing or cannot be copiedQR -> TCP -> DeviceDescriptor -> device registration -> source selection -> RTSPdiagnostic flowProblem
The previous packaging flow could combine a newer Windows client with a stale APK:
copyApkcopied from the manually populatedandroid/app/release/directoryassembleReleasepackage.batreused whatever was already present indist/That mismatch has a misleading symptom: the phone reaches the control server on port
6969and opens its camera, but the old APK does not send theDeviceDescriptorexpected by the desktop client. The device is therefore not registered and RTSP video never starts.Changes
copyApknow depends onassembleReleaseand copies:into:
package.batinvokes this task before assembling the distributable directory and fails closed if required artifacts are absent.It deletes the previous
dist/apk/app-release.apkbefore invoking Gradle, so asuccessful command that produces no APK cannot silently reuse a stale file.
Verification
./gradlew clean :app:copyApk :app:testReleaseUnitTest --stacktrace --console=plainBUILD SUCCESSFULpackage.batsuccessfully with the real Windowsdist/dist/VCamdroid.exeand confirmedpackage.batexited with code 1 instead of reporting successcode 1 before modifying the existing APK
dist/apk/app-release.apkwith a 57-byte stale sentinel and confirmedpackage.batdeleted it and recreated the exact current Gradle artifactdist, and final packaged APK:59d52e808004cb3f58521ede52e8c381eb25073e117b040b214685deb7c58907DeviceDescriptor,sendDescriptor, andLogActivityare present while the legacystreamOriginalpath is absentSigning note
The project currently uses its pre-existing debug signing configuration for the
release variant. Stable production updates require a maintainer-controlled signing
key used consistently across releases. This PR does not add or commit private key
material.
Related to #24 and #25.
The crash-handling work in #20 is intentionally not duplicated in this PR.