#!/bin/bash # Script de build iOS sur Mac mini # À exécuter sur macOS uniquement # Usage: ./ios-build-mac.sh set -e # Couleurs pour les messages RED='\033[0;31m' GREEN='\033[0;32m' YELLOW='\033[1;33m' BLUE='\033[0;34m' NC='\033[0m' # No Color echo -e "${BLUE}=========================================${NC}" echo -e "${BLUE} 🍎 Build iOS - GEOSECTOR${NC}" echo -e "${BLUE}=========================================${NC}" echo "" # Vérifier que nous sommes sur macOS if [[ "$OSTYPE" != "darwin"* ]]; then echo -e "${RED}❌ Erreur: Ce script doit être exécuté sur macOS${NC}" exit 1 fi # Vérifier que nous sommes dans le bon dossier if [ ! -f "pubspec.yaml" ]; then echo -e "${RED}❌ Erreur: Ce script doit être exécuté depuis le dossier racine de l'application Flutter${NC}" echo -e "${RED}Fichier pubspec.yaml introuvable${NC}" exit 1 fi # Récupérer la version depuis pubspec.yaml VERSION=$(grep "^version:" pubspec.yaml | sed 's/version: //' | tr -d ' ') VERSION_NUMBER=$(echo $VERSION | cut -d'+' -f1) VERSION_CODE=$(echo $VERSION | cut -d'+' -f2) echo -e "${YELLOW}📦 Version détectée :${NC} $VERSION" echo -e "${YELLOW} Version name :${NC} $VERSION_NUMBER" echo -e "${YELLOW} Build number :${NC} $VERSION_CODE" echo "" # Vérifier que la version est bien synchronisée depuis transfer-to-mac.sh if [ -z "$VERSION_CODE" ]; then echo -e "${RED}⚠️ Avertissement: Version code introuvable${NC}" echo -e "${YELLOW}Assurez-vous d'avoir utilisé transfer-to-mac.sh pour synchroniser la version${NC}" echo "" fi # Étape 1 : Clean echo -e "${YELLOW}🧹 Étape 1/5 : Nettoyage du projet...${NC}" flutter clean echo -e "${GREEN}✓ Nettoyage terminé${NC}" echo "" # Étape 2 : Pub get echo -e "${YELLOW}📥 Étape 2/5 : Récupération des dépendances Flutter...${NC}" flutter pub get echo -e "${GREEN}✓ Dépendances récupérées${NC}" echo "" # Étape 3 : Pod install echo -e "${YELLOW}🔧 Étape 3/5 : Installation des CocoaPods...${NC}" # Configurer l'environnement Ruby Homebrew export PATH="/opt/homebrew/opt/ruby/bin:/opt/homebrew/bin:$PATH" export GEM_HOME="/opt/homebrew/lib/ruby/gems/3.4.0" echo -e "${BLUE}ℹ Environnement Ruby Homebrew configuré${NC}" cd ios rm -rf Pods Podfile.lock pod install --repo-update cd .. echo -e "${GREEN}✓ CocoaPods installés${NC}" echo "" # Étape 4 : Build iOS echo -e "${YELLOW}🏗️ Étape 4/5 : Choix du mode de compilation...${NC}" echo "" echo -e "${BLUE}Quel mode de compilation souhaitez-vous utiliser ?${NC}" echo -e " ${GREEN}[D]${NC} Debug - Pour tester Stripe Tap to Pay (défaut)" echo -e " ${YELLOW}[R]${NC} Release - Pour distribution App Store" echo "" read -p "Votre choix (D/R) [défaut: D] : " -n 1 -r BUILD_MODE echo "" echo "" # Définir le mode de build if [[ $BUILD_MODE =~ ^[Rr]$ ]]; then BUILD_FLAG="--release" BUILD_MODE_NAME="Release" else BUILD_FLAG="--debug" BUILD_MODE_NAME="Debug" fi echo -e "${YELLOW}🏗️ Compilation iOS en mode ${BUILD_MODE_NAME}...${NC}" flutter build ios $BUILD_FLAG echo -e "${GREEN}✓ Compilation terminée (mode ${BUILD_MODE_NAME})${NC}" echo "" # Étape 5 : Ouvrir Xcode echo -e "${YELLOW}📱 Étape 5/5 : Ouverture de Xcode...${NC}" echo "" echo -e "${BLUE}=========================================${NC}" echo -e "${GREEN} ✓ Préparation terminée !${NC}" echo -e "${BLUE}=========================================${NC}" echo "" echo -e "${YELLOW}📋 Prochaines étapes dans Xcode :${NC}" echo " 1. ⏳ Attendre le chargement complet de Xcode" echo " 2. ✅ Vérifier Signing & Capabilities (Team: 6WT84NWCTC)" echo " 3. 🧹 Product > Clean Build Folder (Cmd+Shift+K)" echo " 4. 📦 Product > Archive" echo " 5. ⏳ Attendre l'archive (5-10 minutes)" echo " 6. 📤 Organizer > Distribute App > App Store Connect" echo "" # Ouvrir Xcode avec le workspace open ios/Runner.xcworkspace echo -e "${GREEN}🚀 Xcode ouvert !${NC}" echo ""