Files
geo/flutt/fix_ios_build.sh

126 lines
3.6 KiB
Bash
Executable File

#!/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'"