$MobileDir = "D:\07-Logiciels\20-FIN65\fin65_mobile" $GradleKts = Join-Path $MobileDir "android\app\build.gradle.kts" $GradleGroovy = Join-Path $MobileDir "android\app\build.gradle" Write-Host "" Write-Host "==========================================" Write-Host " FIN65 - Repair Gradle biometrie" Write-Host "==========================================" Write-Host "" function Backup-File($path) { if (Test-Path $path) { $Stamp = Get-Date -Format "yyyyMMdd_HHmmss" Copy-Item $path "$path.before_gradle_repair_$Stamp.bak" -Force Write-Host "Sauvegarde : $path.before_gradle_repair_$Stamp.bak" } } if (!(Test-Path $MobileDir)) { Write-Host "[ERREUR] Dossier mobile introuvable : $MobileDir" -ForegroundColor Red Read-Host "Appuie sur Entree pour fermer" exit 1 } if (Test-Path $GradleKts) { Backup-File $GradleKts $text = Get-Content $GradleKts -Raw # Supprime le bloc Kotlin DSL invalide ajouté par l'ancien patch : # kotlin { # compilerOptions { # jvmTarget = ... # } # } $text = [regex]::Replace( $text, '(?ms)^\s*kotlin\s*\{\s*compilerOptions\s*\{.*?\}\s*\}\s*$', '' ) # Forcer minSdk a 24 sans toucher au reste. $text = [regex]::Replace($text, 'minSdk\s*=\s*flutter\.minSdkVersion', 'minSdk = 24') $text = [regex]::Replace($text, 'minSdk\s*=\s*\d+', 'minSdk = 24') $text = [regex]::Replace($text, 'minSdkVersion\s+flutter\.minSdkVersion', 'minSdkVersion 24') $text = [regex]::Replace($text, 'minSdkVersion\s+\d+', 'minSdkVersion 24') Set-Content -Path $GradleKts -Value $text -Encoding UTF8 Write-Host "build.gradle.kts repare." } elseif (Test-Path $GradleGroovy) { Backup-File $GradleGroovy $text = Get-Content $GradleGroovy -Raw $text = [regex]::Replace( $text, '(?ms)^\s*kotlin\s*\{\s*compilerOptions\s*\{.*?\}\s*\}\s*$', '' ) $text = [regex]::Replace($text, 'minSdkVersion\s+flutter\.minSdkVersion', 'minSdkVersion 24') $text = [regex]::Replace($text, 'minSdkVersion\s+\d+', 'minSdkVersion 24') Set-Content -Path $GradleGroovy -Value $text -Encoding UTF8 Write-Host "build.gradle repare." } else { Write-Host "[ERREUR] Aucun build.gradle(.kts) trouve." -ForegroundColor Red Read-Host "Appuie sur Entree pour fermer" exit 1 } Set-Location $MobileDir Write-Host "" Write-Host "Verification rapide :" if (Test-Path $GradleKts) { Select-String -Path $GradleKts -Pattern "kotlin \{|compilerOptions|jvmTarget|minSdk" | ForEach-Object { Write-Host $_.Line } } else { Select-String -Path $GradleGroovy -Pattern "kotlin \{|compilerOptions|jvmTarget|minSdk" | ForEach-Object { Write-Host $_.Line } } Write-Host "" Write-Host "Nettoyage Flutter..." flutter clean flutter pub get Write-Host "" Write-Host "Reparation Gradle terminee." Write-Host "Relance maintenant :" Write-Host "flutter run" Write-Host "" Read-Host "Appuie sur Entree pour fermer"