From 432185a92d2c806f8a70d61bf9d907cfca9ba900 Mon Sep 17 00:00:00 2001 From: Bytemalte Date: Fri, 30 Jan 2026 20:33:22 +0100 Subject: [PATCH] =?UTF-8?q?Build:=20Android-Signierung=20hinzugef=C3=BCgt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitea/workflows/android.yaml | 25 ++++++++++++++++++------- 1 file changed, 18 insertions(+), 7 deletions(-) diff --git a/.gitea/workflows/android.yaml b/.gitea/workflows/android.yaml index f729052..247370d 100644 --- a/.gitea/workflows/android.yaml +++ b/.gitea/workflows/android.yaml @@ -25,7 +25,7 @@ jobs: - name: Install Rust & Targets run: | - curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y + curl --proto '=https' --sv1.2 -sSf https://sh.rustup.rs | sh -s -- -y echo "$HOME/.cargo/bin" >> $GITHUB_PATH export PATH="$HOME/.cargo/bin:$PATH" rustup target add aarch64-linux-android wasm32-unknown-unknown @@ -58,23 +58,34 @@ jobs: # 1. Frontend bauen trunk build --release - # 2. Android Build - Wir nutzen hier 'true', wie von der CLI im Error verlangt + # 2. Android Build cargo-tauri android build --target aarch64 --apk true # 3. APK manuell signieren - echo "Signiere APK..." - echo "${{ secrets.ANDROID_KEYSTORE_BASE64 }}" | base64 -d > release.keystore + echo "Erstelle Keystore aus Secret..." + # Dekodieren ohne Zeilenumbruch-Probleme + echo "${{ secrets.ANDROID_KEYSTORE_BASE64 }}" | tr -d '[:space:]' | base64 -d > release.keystore - # Finde die unsignierte Datei im universal Ordner + # Sicherheitscheck: Ist die Datei valide? + if [ ! -s release.keystore ]; then + echo "FEHLER: Keystore-Datei konnte nicht erstellt werden oder ist leer." + exit 1 + fi + + echo "Suche unsignierte APK..." UNSIGNED_APK=$(find src-tauri/gen/android/app/build/outputs/apk/universal/release -name "*-unsigned.apk" | head -n 1) + echo "Gefunden: $UNSIGNED_APK" - # Signieren - $ANDROID_HOME/build-tools/33.0.1/apksigner sign --ks release.keystore \ + echo "Signiere APK mit apksigner..." + # Wir nutzen Version 35.0.0, da Gradle diese laut deinem Log bevorzugt installiert hat + $ANDROID_HOME/build-tools/35.0.0/apksigner sign --ks release.keystore \ --ks-key-alias "${{ secrets.ANDROID_KEY_ALIAS }}" \ --ks-pass pass:"${{ secrets.ANDROID_KEYSTORE_PASSWORD }}" \ --key-pass pass:"${{ secrets.ANDROID_KEY_PASSWORD }}" \ --out Marstemedia-Signed.apk \ "$UNSIGNED_APK" + + echo "Signierung erfolgreich abgeschlossen!" env: JAVA_HOME: /usr/lib/jvm/java-17-openjdk-amd64