54 lines
1.3 KiB
Bash
Executable File
54 lines
1.3 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
#
|
|
# Erstellt eine Release-APK und benennt sie nach der Versionsnummer aus der
|
|
# pubspec.yaml, z. B. version: 353.0.0+353 -> a353.apk
|
|
#
|
|
set -euo pipefail
|
|
|
|
# In das Verzeichnis des Scripts wechseln (Projekt-Root)
|
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
cd "$SCRIPT_DIR"
|
|
|
|
PUBSPEC="pubspec.yaml"
|
|
if [[ ! -f "$PUBSPEC" ]]; then
|
|
echo "Fehler: $PUBSPEC nicht gefunden." >&2
|
|
exit 1
|
|
fi
|
|
|
|
# Version aus pubspec.yaml lesen (z. B. "353.0.0+353")
|
|
VERSION_LINE="$(grep -E '^version:' "$PUBSPEC" | head -n1)"
|
|
FULL_VERSION="$(echo "$VERSION_LINE" | sed -E 's/^version:[[:space:]]*//')"
|
|
|
|
# Major-Versionsnummer extrahieren (alles vor dem ersten Punkt)
|
|
MAJOR="${FULL_VERSION%%.*}"
|
|
|
|
if [[ -z "$MAJOR" ]]; then
|
|
echo "Fehler: Konnte Versionsnummer nicht aus '$VERSION_LINE' ermitteln." >&2
|
|
exit 1
|
|
fi
|
|
|
|
APK_NAME="a${MAJOR}.apk"
|
|
|
|
echo "Version aus pubspec.yaml: $FULL_VERSION"
|
|
echo "Ziel-APK-Name: $APK_NAME"
|
|
echo
|
|
|
|
# Release-APK bauen
|
|
flutter build apk --release
|
|
|
|
# Pfad zur erzeugten APK
|
|
BUILT_APK="build/app/outputs/flutter-apk/app-release.apk"
|
|
if [[ ! -f "$BUILT_APK" ]]; then
|
|
echo "Fehler: Erwartete APK nicht gefunden: $BUILT_APK" >&2
|
|
exit 1
|
|
fi
|
|
|
|
# Ausgabeverzeichnis
|
|
OUTPUT_DIR="build/releases"
|
|
mkdir -p "$OUTPUT_DIR"
|
|
|
|
cp "$BUILT_APK" "$OUTPUT_DIR/$APK_NAME"
|
|
|
|
echo
|
|
echo "Fertig: $OUTPUT_DIR/$APK_NAME"
|