Skip to content

📋 Rapport Diagnostic Complet - Workflow Apple Build (Run #18686872188)

Date du rapport: 2 novembre 2025
Run ID: 18686872188
Statut: ❌ FAILED
Durée: ~8 minutes (14:15:43 - 14:23:26 UTC)
Date du run: 21 octobre 2025


🔴 Problème Principal

Erreur de Compilation Swift - FirebaseSharedSwift

Localisation: /Users/runner/work/yinshi/yinshi/ios/Pods/FirebaseSharedSwift/FirebaseSharedSwift/Sources/third_party/FirebaseDataEncoder/FirebaseDataEncoder.swift:288:63

Erreurs détectées:

1. Swift Compiler Error: Consecutive declarations on a line must be separated by ';'
2. Swift Compiler Error: Expected declaration
3. Swift Compiler Error: Cannot find type 'sending' in scope

Cause racine: Incompatibilité de version Swift entre: - Code compilé: FirebaseSharedSwift contient du code Swift 6 (mot-clé sending) - Compilateur utilisé: Swift 5.0 (forcé dans le Podfile)


📊 Analyse Détaillée de la Configuration

1. Configuration du Workflow (flutter_apple_build.yml)

✅ Points positifs:

  • Runner: macos-14 (approprié et à jour)
  • Flutter: 3.35.5 (version stable récente)
  • Cache des dépendances: Bien configuré
  • Gestion des secrets: Correctement masquée
  • Nettoyage des ressources: Effectué en fin de build

⚠️ Points problématiques:

a) Forçage de Swift 5.0 dans le Podfile (ligne 45)

config.build_settings['SWIFT_VERSION'] = '5.0'
- ❌ Problème: Force Swift 5.0 pour tous les pods - ❌ Impact: Incompatible avec FirebaseSharedSwift qui utilise Swift 6 - ✅ Intention: Éviter les erreurs avec Firebase + Xcode 15+ - 🔧 Solution: Utiliser Swift 6 ou laisser la compilation automatique

b) Mise à jour CocoaPods (ligne 62)

pod repo update
- ⚠️ Risque: Peut télécharger des versions incompatibles - ✅ Bonne pratique: Utilisé correctement avec --repo-update

c) Suppression du Podfile.lock (ligne 67)

rm -f Podfile.lock
- ⚠️ Problème: Force la réinstallation de toutes les dépendances - ❌ Impact: Peut introduire des versions incompatibles - 🔧 Recommandation: Commiter le Podfile.lock pour garantir la reproductibilité

2. Dépendances Firebase (pubspec.yaml)

firebase_auth: ^6.1.0
cloud_firestore: ^6.0.2
firebase_core: ^4.1.0
firebase_crashlytics: ^5.0.2
firebase_ui_auth: ^3.0.0
firebase_ui_oauth_google: ^2.0.0
firebase_ui_oauth_apple: ^2.0.0
firebase_ui_localizations: ^2.0.0

Analyse:

  • ✅ Versions cohérentes (Firebase 6.x)
  • ⚠️ Problème: Ces versions dépendent de FirebaseSharedSwift qui peut nécessiter Swift 6
  • Conflit: Le Podfile force Swift 5.0, ce qui crée une incompatibilité

3. Configuration iOS (ios/Podfile)

platform :ios, '15.0'
- ✅ iOS 15.0 est approprié - ✅ use_frameworks! est configuré

Problème identifié (ligne 43-46):

# Forcer Swift 5.0 pour éviter les erreurs avec Firebase + Xcode 15+
target.build_configurations.each do |config|
  config.build_settings['SWIFT_VERSION'] = '5.0'
end
- ❌ Cette solution est obsolète et crée l'erreur actuelle - 🔧 Raison: Les versions récentes de Firebase nécessitent Swift 6

4. Configuration d'Export (ios/ExportOptions.plist)

<key>method</key>
<string>app-store</string>
<key>signingStyle</key>
<string>manual</string>
- ✅ Configuration correcte pour App Store - ✅ Signature manuelle appropriée


📈 Timeline de l'Exécution

Étape Durée Statut Notes
Checkout - Succès
Flutter setup - v3.35.5
Dependencies ~30s 11 packages outdated
CocoaPods update ~30s Succès
Pod install ~29.5s Succès
Xcode build ~42.6s ERREUR SWIFT
Total ~8 min Échoué

🔍 Analyse des Dépendances Outdated

Le workflow rapporte:

11 packages have newer versions incompatible with dependency constraints.
Try `flutter pub outdated` for more information.

Packages identifiés comme outdated: - google_sign_in: 6.3.0 (7.2.0 available) - google_sign_in_android: 6.2.1 (7.2.2 available) - google_sign_in_ios: 5.9.0 (6.2.2 available) - google_sign_in_web: 0.12.4+4 (1.1.0 available) - material_color_utilities: 0.11.1 (0.13.0 available) - meta: 1.16.0 (1.17.0 available) - test_api: 0.7.6 (0.7.7 available) - + 4 autres

Impact: Les versions plus récentes pourraient résoudre les incompatibilités Swift


🛠️ Solutions Recommandées (Priorité)

🔴 CRITIQUE - À faire immédiatement

Solution 1: Supprimer le forçage de Swift 5.0 (RECOMMANDÉ)

Fichier: ios/Podfile

Changement:

# ❌ AVANT (ligne 43-46)
target.build_configurations.each do |config|
  config.build_settings['SWIFT_VERSION'] = '5.0'
end

# ✅ APRÈS - Supprimer complètement cette section
# Laisser Xcode gérer automatiquement la version Swift

Raison: - FirebaseSharedSwift v1.x+ nécessite Swift 6 - Xcode 15+ gère correctement Swift 6 - Pas besoin de forcer une version antérieure


🟠 IMPORTANT - À faire rapidement

Solution 2: Commiter le Podfile.lock

Problème actuel: Le workflow supprime Podfile.lock à chaque build (ligne 67)

Changement dans le workflow:

# ❌ AVANT
- name: Clean CocoaPods cache and reinstall
  working-directory: ios
  run: |
    rm -f Podfile.lock
    pod install --repo-update

# ✅ APRÈS
- name: Clean CocoaPods cache and reinstall
  working-directory: ios
  run: |
    pod install --repo-update

Raison: - Garantit la reproductibilité des builds - Évite les versions incompatibles - Meilleure pratique standard

Action: Commiter ios/Podfile.lock dans Git


Solution 3: Mettre à jour les dépendances Firebase

Fichier: pubspec.yaml

Vérifier les versions compatibles:

flutter pub outdated

Potentiellement mettre à jour:

firebase_auth: ^6.2.0  # ou version plus récente
cloud_firestore: ^6.1.0
firebase_core: ^4.2.0
firebase_crashlytics: ^5.1.0
firebase_ui_auth: ^3.1.0


🟡 RECOMMANDÉ - Optimisations

Solution 4: Mettre à jour google_sign_in

Fichier: pubspec.yaml

Changement:

# ❌ AVANT
google_sign_in: ^6.3.0
google_sign_in_ios: ^5.9.0

# ✅ APRÈS
google_sign_in: ^7.2.0
google_sign_in_ios: ^6.2.2

Raison: Versions plus récentes, meilleures compatibilités


Solution 5: Ajouter une contrainte Swift minimale

Fichier: pubspec.yaml

Ajouter:

environment:
  sdk: ^3.8.1
  # Ajouter une note pour les développeurs iOS

Fichier: ios/Podfile

Ajouter après platform :ios, '15.0':

# Minimum Swift version for Firebase compatibility
ENV['SWIFT_VERSION'] = '6.0'


📋 Checklist de Correction

  • [ ] 1. Supprimer le forçage Swift 5.0 du Podfile
  • Fichier: ios/Podfile (lignes 43-46)
  • Action: Supprimer la section target.build_configurations.each

  • [ ] 2. Conserver Podfile.lock dans Git

  • Fichier: ios/Podfile.lock
  • Action: Commiter le fichier

  • [ ] 3. Modifier le workflow pour ne pas supprimer Podfile.lock

  • Fichier: .github/workflows/flutter_apple_build.yml (ligne 67)
  • Action: Supprimer rm -f Podfile.lock

  • [ ] 4. Tester localement

    cd ios
    pod install
    cd ..
    flutter clean
    flutter pub get
    flutter build ipa --release
    

  • [ ] 5. Relancer le workflow

  • Vérifier que le build réussit
  • Vérifier que le déploiement vers TestFlight fonctionne

🧪 Vérification Recommandée

Test local avant de relancer le workflow:

# 1. Nettoyer complètement
flutter clean
rm -rf ios/Pods ios/Podfile.lock

# 2. Réinstaller les dépendances
flutter pub get
cd ios
pod install
cd ..

# 3. Tester la compilation
flutter build ipa --release --export-options-plist=ios/ExportOptions.plist

# 4. Vérifier les versions
flutter pub outdated

📊 Résumé des Problèmes

Problème Sévérité Cause Solution
Swift 5.0 forcé vs Swift 6 requis 🔴 CRITIQUE Podfile obsolète Supprimer le forçage
Podfile.lock supprimé à chaque build 🟠 IMPORTANT Workflow Conserver le fichier
Dépendances outdated 🟡 MOYEN pubspec.yaml Mettre à jour
Pas de contrainte Swift explicite 🟡 MOYEN Configuration Ajouter env var

📝 Notes Additionnelles

Versions utilisées dans le run échoué:

  • macOS Runner: 14
  • Flutter: 3.35.5
  • Xcode: Version par défaut sur macOS 14 (probablement 15.x)
  • Swift: Forcé à 5.0 (incompatible avec Firebase)
  • iOS Platform: 15.0

Recommandation finale:

Appliquer la Solution 1 immédiatement (supprimer le forçage Swift 5.0). C'est la cause directe de l'erreur et la correction la plus simple et efficace.


Généré le: 2 novembre 2025
Analysé par: Diagnostic Automatisé