default_platform(:android) platform :android do desc "Déploiement AAB vers Firebase" lane :deploy_firebase do # --- DÉBUT DU BLOC CRITIQUE --- # C'est ici qu'on crée le fichier keystore physiquement sur le serveur # avant que Gradle ne le cherche. if ENV['ANDROID_KEYSTORE_BASE64'] # On décode le secret Gitea et on l'écrit dans un fichier .jks File.open("upload-keystore.jks", "wb") do |f| f.write(Base64.decode64(ENV['ANDROID_KEYSTORE_BASE64'])) end UI.message("✅ Fichier upload-keystore.jks créé avec succès !") else UI.user_error!("❌ ERREUR : Le secret ANDROID_KEYSTORE_BASE64 est vide !") end # --- FIN DU BLOC CRITIQUE --- # 2. Construire l'App Bundle (.aab) # Gradle va maintenant trouver le fichier créé juste au-dessus sh("flutter build appbundle --release") # 3. Envoyer vers Firebase firebase_app_distribution( app: ENV["FIREBASE_ANDROID_APP_ID"], service_credentials_file: "firebase_credentials.json", groups: "testers", # On pointe bien vers le fichier .aab généré android_artifact_path: "../build/app/outputs/bundle/release/app-release.aab", release_notes: "Version AAB via Gitea. Commit: #{ENV['GITHUB_SHA']}" ) end end