From b9b397b346f44e736228dae8649616cbb2cf222e Mon Sep 17 00:00:00 2001 From: chahinebrini Date: Mon, 18 May 2026 08:11:18 +0200 Subject: [PATCH] chore(release): v0.3.1 + eas-release.sh script MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - package.json + app.config.ts (Expo source-of-truth) auf 0.3.1 - versionCode/buildNumber bleibt 10 (native files schon synced) - eas-release.sh: build+submit für TestFlight/Play-Internal, default iOS, --android/--both flags, version-check-prompt vor build Co-Authored-By: Claude Opus 4.7 --- apps/rebreak-native/app.config.ts | 2 +- apps/rebreak-native/eas-release.sh | 75 ++++++++++++++++++++++++++++++ apps/rebreak-native/package.json | 2 +- 3 files changed, 77 insertions(+), 2 deletions(-) create mode 100755 apps/rebreak-native/eas-release.sh diff --git a/apps/rebreak-native/app.config.ts b/apps/rebreak-native/app.config.ts index 94adcbc..513c927 100644 --- a/apps/rebreak-native/app.config.ts +++ b/apps/rebreak-native/app.config.ts @@ -4,7 +4,7 @@ export default ({ config }: ConfigContext): ExpoConfig => ({ ...config, name: "ReBreak", slug: "rebreak", - version: "0.3.0", + version: "0.3.1", orientation: "portrait", icon: "./assets/icon.png", scheme: "rebreak", diff --git a/apps/rebreak-native/eas-release.sh b/apps/rebreak-native/eas-release.sh new file mode 100755 index 0000000..e91c5a2 --- /dev/null +++ b/apps/rebreak-native/eas-release.sh @@ -0,0 +1,75 @@ +#!/usr/bin/env bash +# Rebreak Native — EAS Cloud-Build + Store-Submit für Release-Channels. +# +# Usage: +# ./eas-release.sh # iOS only (build + TestFlight) — Default +# ./eas-release.sh --ios # iOS only +# ./eas-release.sh --android # Android AAB + Play-Console Internal +# ./eas-release.sh --both # iOS + Android parallel +# ./eas-release.sh --build-only # nur Build, kein Submit (für QA) +# ./eas-release.sh --no-wait # Build im Hintergrund, return sofort +# +# Profile: `production` (live in eas.json — staging-Backend, app-bundle, m-medium) +# +# Voraussetzungen: +# - `eas login` einmalig durchgeführt +# - Android: serviceAccountKeyPath in eas.json gesetzt (Play-Console-Submit) +# - iOS: Apple-Connect-Login wird beim ersten Run abgefragt +# - Vorher version-bumpen (package.json + android/app/build.gradle + iOS Info.plist) +set -euo pipefail + +cd "$(dirname "$0")" + +PROFILE="production" +PLATFORM="ios" +SUBMIT_FLAG="--auto-submit" +WAIT_FLAG="" + +while [[ $# -gt 0 ]]; do + case "$1" in + --ios) PLATFORM="ios"; shift ;; + --android) PLATFORM="android"; shift ;; + --both) PLATFORM="all"; shift ;; + --build-only) SUBMIT_FLAG=""; shift ;; + --no-wait) WAIT_FLAG="--no-wait"; shift ;; + -h|--help) + awk '/^#!/{next} /^#/{sub(/^# ?/, ""); print; next} {exit}' "$0" + exit 0 ;; + *) echo "Unbekanntes Flag: $1"; echo " --help für Hilfe"; exit 1 ;; + esac +done + +if ! command -v eas >/dev/null 2>&1; then + echo "eas-cli nicht gefunden. Install:" + echo " pnpm add -g eas-cli" + exit 1 +fi + +echo "→ EAS Build — platform=$PLATFORM profile=$PROFILE submit=${SUBMIT_FLAG:-no}" +echo "" +echo " Bevor du fortfährst: Version gebumpt?" +echo " - apps/rebreak-native/package.json (version)" +echo " - android/app/build.gradle (versionCode + versionName)" +echo " - ios/ReBreak/Info.plist (CFBundleVersion + CFBundleShortVersionString)" +echo "" +read -p "Versionen sind aktuell? [y/N] " -n 1 -r +echo "" +[[ ! $REPLY =~ ^[Yy]$ ]] && { echo "Abgebrochen."; exit 0; } + +eas build \ + --platform "$PLATFORM" \ + --profile "$PROFILE" \ + --non-interactive \ + $SUBMIT_FLAG \ + $WAIT_FLAG + +echo "" +echo "Fertig." +echo "" +if [[ -n "$SUBMIT_FLAG" ]]; then + echo "Submit läuft automatisch nach Build:" + echo " - iOS → TestFlight (App Store Connect)" + echo " - Android → Play Console Internal-Track" + echo "" + echo "Status checken: eas build:list --limit 5" +fi diff --git a/apps/rebreak-native/package.json b/apps/rebreak-native/package.json index 7b1c5cd..67fd755 100644 --- a/apps/rebreak-native/package.json +++ b/apps/rebreak-native/package.json @@ -1,6 +1,6 @@ { "name": "rebreak-native", - "version": "0.3.0", + "version": "0.3.1", "private": true, "main": "expo-router/entry", "scripts": {