#!/bin/bash # Script de réinitialisation complète pour résoudre les problèmes de compilation iOS # Spécialement conçu pour résoudre l'erreur "No such module 'Flutter'" # Version 2.0 - Avec ajout automatique des chemins de recherche de frameworks echo "🧹 Nettoyage complet de l'environnement iOS..." # Se placer dans le répertoire du projet cd "$(dirname "$0")" # Supprimer les fichiers générés par Flutter echo "📦 Nettoyage des fichiers Flutter..." flutter clean # Supprimer le cache pub echo "🗑️ Suppression du cache pub pour les plugins problématiques..." rm -rf ~/.pub-cache/hosted/pub.dev/connectivity_plus-* # Supprimer les fichiers de CocoaPods echo "🗂️ Nettoyage des fichiers CocoaPods..." cd ios rm -rf Pods rm -rf .symlinks rm -f Podfile.lock rm -rf ~/Library/Developer/Xcode/DerivedData # Supprimer le workspace Xcode (il sera recréé) echo "🔄 Suppression du workspace Xcode..." rm -rf Runner.xcworkspace # Revenir au répertoire parent cd .. # Récupérer les dépendances Flutter echo "📥 Récupération des dépendances Flutter..." flutter pub get # Régénérer les fichiers iOS echo "🔨 Précaching des outils iOS..." flutter precache --ios --force # Forcer la génération des plugins echo "🔌 Régénération des plugins..." flutter pub cache repair flutter pub get # Réinstaller les pods avec des options supplémentaires echo "📲 Réinstallation des pods..." cd ios pod deintegrate pod cache clean --all pod repo update pod install --repo-update --verbose # Ajouter automatiquement les chemins de recherche de frameworks echo "🔍 Ajout des chemins de recherche de frameworks..." # Créer un fichier temporaire pour stocker les chemins de recherche cat > ios/add_framework_paths.rb << 'EOL' #!/usr/bin/env ruby require 'xcodeproj' # Ouvrir le projet project_path = 'Runner.xcodeproj' project = Xcodeproj::Project.open(project_path) # Trouver la cible Runner target = project.targets.find { |t| t.name == 'Runner' } # Parcourir toutes les configurations de build target.build_configurations.each do |config| # Obtenir les paramètres de build actuels build_settings = config.build_settings # Définir les chemins de recherche de frameworks framework_search_paths = [ '$(inherited)', '"${PODS_CONFIGURATION_BUILD_DIR}/ReachabilitySwift"', '"${PODS_CONFIGURATION_BUILD_DIR}/connectivity_plus"', '"${PODS_CONFIGURATION_BUILD_DIR}/path_provider_foundation"', '"${PODS_CONFIGURATION_BUILD_DIR}/url_launcher_ios"', '"${PODS_ROOT}/Flutter"', '"${PODS_XCFRAMEWORKS_BUILD_DIR}/Flutter"' ] # Ajouter les chemins de recherche de frameworks build_settings['FRAMEWORK_SEARCH_PATHS'] = framework_search_paths # Ajouter les chemins de recherche d'en-têtes header_search_paths = [ '$(inherited)', '"${PODS_ROOT}/Flutter"', '"${PODS_CONFIGURATION_BUILD_DIR}"' ] build_settings['HEADER_SEARCH_PATHS'] = header_search_paths # S'assurer que les modules sont activés build_settings['DEFINES_MODULE'] = 'YES' # Désactiver le bitcode build_settings['ENABLE_BITCODE'] = 'NO' # Inclure tous les assets d'icônes build_settings['ASSETCATALOG_COMPILER_INCLUDE_ALL_APPICON_ASSETS'] = 'YES' # Autres paramètres importants build_settings['SWIFT_VERSION'] = '5.0' build_settings['CLANG_ENABLE_MODULES'] = 'YES' end # Enregistrer les modifications project.save puts "✅ Chemins de recherche de frameworks ajoutés avec succès !" EOL # Exécuter le script Ruby pour ajouter les chemins de recherche cd ios ruby add_framework_paths.rb cd .. echo "✅ Réinitialisation iOS terminée ! Ouvrez le projet avec 'open ios/Runner.xcworkspace'"