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
|
# 1. Frontend bauen
|
||||||
trunk build --release
|
trunk build --release
|
||||||
|
|
||||||
# 2. Android Build initialisieren falls nötig und bauen
|
# 2. Android Build initialisieren & bauen
|
||||||
if [ ! -d "src-tauri/gen/android" ]; then
|
if [ ! -d "src-tauri/gen/android" ]; then
|
||||||
cargo-tauri android init
|
cargo-tauri android init
|
||||||
fi
|
fi
|
||||||
cargo-tauri android build --target aarch64 --apk true
|
cargo-tauri android build --target aarch64 --apk true
|
||||||
|
|
||||||
# 3. APK manuell signieren
|
# 3. APK manuell signieren
|
||||||
echo "Erstelle Keystore aus Secret..."
|
echo "Verarbeite Keystore-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
|
|
||||||
|
|
||||||
if [ ! -s release.keystore ]; then
|
# Wir speichern das Secret in einer Datei, um Probleme mit Shell-Argument-Limits zu vermeiden
|
||||||
echo "FEHLER: Keystore-Datei ist leer! Prüfe das Secret ANDROID_KEYSTORE_BASE64."
|
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
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo "Suche unsignierte APK..."
|
echo "Suche unsignierte APK..."
|
||||||
UNSIGNED_APK=$(find src-tauri/gen/android/app/build/outputs/apk/universal/release -name "*-unsigned.apk" | head -n 1)
|
UNSIGNED_APK=$(find src-tauri/gen/android/app/build/outputs/apk/universal/release -name "*-unsigned.apk" | head -n 1)
|
||||||
if [ -z "$UNSIGNED_APK" ]; then
|
if [ -z "$UNSIGNED_APK" ]; then
|
||||||
echo "FEHLER: Keine unsignierte APK gefunden!"
|
echo "FEHLER: Keine APK gefunden!"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
echo "Gefunden: $UNSIGNED_APK"
|
|
||||||
|
|
||||||
echo "Suche apksigner..."
|
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)
|
APKSIGNER=$(find $ANDROID_HOME/build-tools -name apksigner | sort -r | head -n 1)
|
||||||
echo "Nutze apksigner unter: $APKSIGNER"
|
|
||||||
|
|
||||||
$APKSIGNER sign --ks release.keystore \
|
$APKSIGNER sign --ks release.keystore \
|
||||||
--ks-key-alias "${{ secrets.ANDROID_KEY_ALIAS }}" \
|
--ks-key-alias "${{ secrets.ANDROID_KEY_ALIAS }}" \
|
||||||
@@ -95,7 +102,7 @@ jobs:
|
|||||||
--out Marstemedia-Signed.apk \
|
--out Marstemedia-Signed.apk \
|
||||||
"$UNSIGNED_APK"
|
"$UNSIGNED_APK"
|
||||||
|
|
||||||
echo "Signierung abgeschlossen!"
|
echo "Signierung erfolgreich!"
|
||||||
env:
|
env:
|
||||||
JAVA_HOME: /usr/lib/jvm/java-17-openjdk-amd64
|
JAVA_HOME: /usr/lib/jvm/java-17-openjdk-amd64
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user