diff --git a/.gitea/workflows/android.yaml b/.gitea/workflows/android.yaml index e381564..61438e4 100644 --- a/.gitea/workflows/android.yaml +++ b/.gitea/workflows/android.yaml @@ -58,41 +58,18 @@ jobs: # 1. Frontend bauen trunk build --release - # 2. Android Build initialisieren & bauen + # 2. Android Build if [ ! -d "src-tauri/gen/android" ]; then cargo-tauri android init fi cargo-tauri android build --target aarch64 --apk true # 3. APK manuell signieren - echo "Verarbeite Keystore-Secret..." - - # Wir speichern das Secret wortwörtlich in eine Datei (wichtig wegen Sonderzeichen) - cat <<'EOF' > keystore.b64 - ${{ secrets.ANDROID_KEYSTORE_BASE64 }} - EOF - - # Wir löschen ALLES, was kein valides Base64-Zeichen ist (Space, Newlines, Fragen) - tr -cd 'a-zA-Z0-9+/=' < keystore.b64 | base64 -d > release.keystore - - # Validierung - FILE_SIZE=$(stat -c%s release.keystore) - echo "Dekodierte Keystore-Größe: $FILE_SIZE Bytes" - - if [ "$FILE_SIZE" -lt 100 ]; then - echo "FEHLER: Keystore ist korrupt oder zu klein!" - exit 1 - fi - - echo "Prüfe Keystore Integrität mit keytool..." - keytool -list -v -keystore release.keystore -storepass "${{ secrets.ANDROID_KEYSTORE_PASSWORD }}" -alias "${{ secrets.ANDROID_KEY_ALIAS }}" + echo "${{ secrets.ANDROID_KEYSTORE_BASE64 }}" | tr -d '[:space:]' > keystore.b64 + base64 -d keystore.b64 > release.keystore echo "Suche unsignierte APK..." UNSIGNED_APK=$(find src-tauri/gen/android/app/build/outputs/apk/universal/release -name "*-unsigned.apk" | head -n 1) - if [ -z "$UNSIGNED_APK" ]; then - echo "FEHLER: Keine APK gefunden!" - exit 1 - fi echo "Suche apksigner..." APKSIGNER=$(find $ANDROID_HOME/build-tools -name apksigner | sort -r | head -n 1) @@ -111,7 +88,7 @@ jobs: JAVA_HOME: /usr/lib/jvm/java-17-openjdk-amd64 - name: Upload Signed APK - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v3 with: name: Marstemedia-Signed path: Marstemedia-Signed.apk