Update android workflow to universal apk
Some checks failed
Android Build Final Fixed / build-android (push) Failing after 1m34s

This commit is contained in:
2026-02-11 13:08:34 +01:00
parent 1e1614b96d
commit c7a0272df3

View File

@@ -31,7 +31,9 @@ jobs:
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y
echo "$HOME/.cargo/bin" >> $GITHUB_PATH echo "$HOME/.cargo/bin" >> $GITHUB_PATH
export PATH="$HOME/.cargo/bin:$PATH" export PATH="$HOME/.cargo/bin:$PATH"
rustup target add aarch64-linux-android wasm32-unknown-unknown # Alle Architekturen für Universal APK hinzufügen
rustup target add aarch64-linux-android armv7-linux-androideabi i686-linux-android x86_64-linux-android
rustup target add wasm32-unknown-unknown
- name: Install Trunk & Tauri-CLI - name: Install Trunk & Tauri-CLI
run: | run: |
@@ -61,17 +63,26 @@ jobs:
# 1. Frontend bauen # 1. Frontend bauen
trunk build --release trunk build --release
# 2. Android Build # 2. Android Build initialisieren falls nötig
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
# Universal APK bauen (erzeugt die Datei laut deinem Log)
cargo-tauri android build --release --apk
# 3. APK manuell signieren # 3. APK manuell signieren
echo "${{ secrets.ANDROID_KEYSTORE_BASE64 }}" | tr -d '[:space:]' > keystore.b64 echo "${{ secrets.ANDROID_KEYSTORE_BASE64 }}" | tr -d '[:space:]' > keystore.b64
base64 -d keystore.b64 > release.keystore base64 -d keystore.b64 > release.keystore
UNSIGNED_APK=$(find src-tauri/gen/android/app/build/outputs/apk/universal/release -name "*-unsigned.apk" | head -n 1) # Pfad basierend auf deinem lokalen erfolgreichen Build
UNSIGNED_APK=$(find src-tauri/gen/android/app/build/outputs/apk/universal/release -name "app-universal-release-unsigned.apk" | head -n 1)
# Fallback falls find nichts liefert
if [ -z "$UNSIGNED_APK" ]; then
UNSIGNED_APK="src-tauri/gen/android/app/build/outputs/apk/universal/release/app-universal-release-unsigned.apk"
fi
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)
$APKSIGNER sign --ks release.keystore \ $APKSIGNER sign --ks release.keystore \
@@ -80,25 +91,24 @@ jobs:
--ks-pass pass:"${{ secrets.ANDROID_KEYSTORE_PASSWORD }}" \ --ks-pass pass:"${{ secrets.ANDROID_KEYSTORE_PASSWORD }}" \
--key-pass pass:"${{ secrets.ANDROID_KEY_PASSWORD }}" \ --key-pass pass:"${{ secrets.ANDROID_KEY_PASSWORD }}" \
--v4-signing-enabled true \ --v4-signing-enabled true \
--out Marstemedia-Signed.apk \ --out Marstemedia-Universal-Signed.apk \
"$UNSIGNED_APK" "$UNSIGNED_APK"
echo "Signierung erfolgreich!" echo "Signierung der Universal APK erfolgreich!"
env: env:
JAVA_HOME: /usr/lib/jvm/java-17-openjdk-amd64 JAVA_HOME: /usr/lib/jvm/java-17-openjdk-amd64
- name: Upload Artifact - name: Upload Artifact
uses: actions/upload-artifact@v3 uses: actions/upload-artifact@v3
with: with:
name: Marstemedia-Signed name: Marstemedia-Universal-Signed
path: Marstemedia-Signed.apk path: Marstemedia-Universal-Signed.apk
- name: Create Gitea Release - name: Create Gitea Release
if: startsWith(github.ref, 'refs/tags/') if: startsWith(github.ref, 'refs/tags/')
uses: softprops/action-gh-release@v1 uses: softprops/action-gh-release@v1
with: with:
files: Marstemedia-Signed.apk files: Marstemedia-Universal-Signed.apk
# Gitea braucht manchmal explizit den Namen/Body
name: "Release ${{ github.ref_name }}" name: "Release ${{ github.ref_name }}"
draft: false draft: false
prerelease: false prerelease: false