- 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 <noreply@anthropic.com>
76 lines
2.4 KiB
Bash
Executable File
76 lines
2.4 KiB
Bash
Executable File
#!/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
|