diff --git a/build_prod_apk.sh b/build_prod_apk.sh index a78c64f..709d3f2 100755 --- a/build_prod_apk.sh +++ b/build_prod_apk.sh @@ -6,12 +6,31 @@ ENV_FILE="env/prod.json" OUTPUT_DIR="build/outputs" APK_SRC="build/app/outputs/flutter-apk/app-release.apk" APK_DEST="$OUTPUT_DIR/rentaldrivego-release.apk" +LOCAL_PROPERTIES="android/local.properties" + +resolve_flutter() { + if command -v flutter &>/dev/null; then + command -v flutter + return 0 + fi + + if [[ -f "$LOCAL_PROPERTIES" ]]; then + local sdk_path + sdk_path="$(sed -n 's/^flutter\.sdk=//p' "$LOCAL_PROPERTIES" | head -n 1)" + if [[ -n "$sdk_path" && -x "$sdk_path/bin/flutter" ]]; then + echo "$sdk_path/bin/flutter" + return 0 + fi + fi + + return 1 +} # ── Checks ──────────────────────────────────────────────────────────────────── cd "$(dirname "$0")" -if ! command -v flutter &>/dev/null; then - echo "❌ flutter not found in PATH" +if ! FLUTTER_BIN="$(resolve_flutter)"; then + echo "❌ flutter not found in PATH or $LOCAL_PROPERTIES" exit 1 fi @@ -22,13 +41,13 @@ fi # ── Build ───────────────────────────────────────────────────────────────────── echo "▶ Cleaning previous build..." -flutter clean +"$FLUTTER_BIN" clean echo "▶ Fetching dependencies..." -flutter pub get +"$FLUTTER_BIN" pub get echo "▶ Building release APK (production)..." -flutter build apk --release --dart-define-from-file="$ENV_FILE" +"$FLUTTER_BIN" build apk --release --dart-define-from-file="$ENV_FILE" # ── Copy to output ──────────────────────────────────────────────────────────── mkdir -p "$OUTPUT_DIR"