Build: Android-Signierung hinzugefügt
Some checks failed
Android Build Final Fixed / build-android (push) Failing after 7m10s
Some checks failed
Android Build Final Fixed / build-android (push) Failing after 7m10s
This commit is contained in:
@@ -58,34 +58,41 @@ jobs:
|
||||
# 1. Frontend bauen
|
||||
trunk build --release
|
||||
|
||||
# 2. Android Build initialisieren falls nötig und bauen
|
||||
# 2. Android Build initialisieren & bauen
|
||||
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 "Erstelle Keystore aus Secret..."
|
||||
# printf und tr -d entfernen alle Whitespaces, um java.io.EOFException zu vermeiden
|
||||
printf "%s" "${{ secrets.ANDROID_KEYSTORE_BASE64 }}" | tr -d '[:space:]' | base64 -d > release.keystore
|
||||
echo "Verarbeite Keystore-Secret..."
|
||||
|
||||
if [ ! -s release.keystore ]; then
|
||||
echo "FEHLER: Keystore-Datei ist leer! Prüfe das Secret ANDROID_KEYSTORE_BASE64."
|
||||
# Wir speichern das Secret in einer Datei, um Probleme mit Shell-Argument-Limits zu vermeiden
|
||||
cat <<EOF > keystore.base64
|
||||
${{ secrets.ANDROID_KEYSTORE_BASE64 }}
|
||||
EOF
|
||||
|
||||
# Wir löschen ALLES, was kein valides Base64-Zeichen ist (Space, Newlines, etc.)
|
||||
tr -dc 'a-zA-Z0-9+/=' < keystore.base64 | base64 -d > release.keystore
|
||||
|
||||
# Validierung der Dateigröße
|
||||
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 "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 unsignierte APK gefunden!"
|
||||
echo "FEHLER: Keine APK gefunden!"
|
||||
exit 1
|
||||
fi
|
||||
echo "Gefunden: $UNSIGNED_APK"
|
||||
|
||||
echo "Suche apksigner..."
|
||||
# Findet die aktuellste Version der Build-Tools (z.B. 35.0.0)
|
||||
APKSIGNER=$(find $ANDROID_HOME/build-tools -name apksigner | sort -r | head -n 1)
|
||||
echo "Nutze apksigner unter: $APKSIGNER"
|
||||
|
||||
$APKSIGNER sign --ks release.keystore \
|
||||
--ks-key-alias "${{ secrets.ANDROID_KEY_ALIAS }}" \
|
||||
@@ -95,7 +102,7 @@ jobs:
|
||||
--out Marstemedia-Signed.apk \
|
||||
"$UNSIGNED_APK"
|
||||
|
||||
echo "Signierung abgeschlossen!"
|
||||
echo "Signierung erfolgreich!"
|
||||
env:
|
||||
JAVA_HOME: /usr/lib/jvm/java-17-openjdk-amd64
|
||||
|
||||
|
||||
Reference in New Issue
Block a user