Fix release signing and unify "+" upload with the share-intent path
Build APK / build (push) Successful in 5m21s

- Release builds now sign with a dedicated keystore (local
  android/key.properties or CI secrets, both gitignored) instead of each
  machine's own debug key, so a downloaded release APK can actually
  update a previous install instead of failing with "App not installed"
  (mismatched signature).
- The Files tab's "+" -> "Upload File" now goes through the same
  ShareUploadView destination picker and background foreground-service
  upload as receiving a file via Android's "Share to..." sheet, instead
  of a separate blocking in-app-only upload path. Removed the
  now-unused ServerProvider/NextcloudService.uploadFileFromPath.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
2026-09-18 17:17:46 -04:00
co-authored by Claude Sonnet 5
parent dd0c27035a
commit 722b66f7b1
8 changed files with 102 additions and 119 deletions
+14
View File
@@ -43,8 +43,22 @@ jobs:
- name: Analyze
run: flutter analyze
- name: Decode release keystore
# Keeps every release build - regardless of which runner built it -
# signed with the same key, so downloaded updates install cleanly
# over a previous release instead of failing with "App not
# installed" (mismatched signature). See android/app/build.gradle.kts.
run: echo "$RELEASE_KEYSTORE_BASE64" | base64 -d > "${{ runner.temp }}/release-keystore.jks"
env:
RELEASE_KEYSTORE_BASE64: ${{ secrets.RELEASE_KEYSTORE_BASE64 }}
- name: Build release APK
run: flutter build apk --release
env:
RELEASE_KEYSTORE_PATH: ${{ runner.temp }}/release-keystore.jks
RELEASE_KEYSTORE_PASSWORD: ${{ secrets.RELEASE_KEYSTORE_PASSWORD }}
RELEASE_KEY_ALIAS: ${{ secrets.RELEASE_KEY_ALIAS }}
RELEASE_KEY_PASSWORD: ${{ secrets.RELEASE_KEY_PASSWORD }}
- name: Rename APK to Noo-<version>.apk
run: |