- Configuration complète Stripe pour les 3 environnements (DEV/REC/PROD) * DEV: Clés TEST Pierre (mode test) * REC: Clés TEST Client (mode test) * PROD: Clés LIVE Client (mode live) - Ajout de la gestion des bases de données immeubles/bâtiments * Configuration buildings_database pour DEV/REC/PROD * Service BuildingService pour enrichissement des adresses - Optimisations pages et améliorations ergonomie - Mises à jour des dépendances Composer - Nettoyage des fichiers obsolètes 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
215 lines
6.7 KiB
Bash
Executable File
215 lines
6.7 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# ============================================================================
|
|
# Script de correction du package nfc_manager 3.3.0 pour Android Gradle Plugin 8+
|
|
# ============================================================================
|
|
#
|
|
# Problème :
|
|
# nfc_manager 3.3.0 utilise l'ancien format 'package="..."' dans AndroidManifest.xml
|
|
# et ne déclare pas de namespace dans build.gradle (requis par AGP 8+)
|
|
#
|
|
# Solution :
|
|
# 1. Supprime l'attribut package="io.flutter.plugins.nfcmanager" du AndroidManifest.xml
|
|
# 2. Ajoute namespace 'io.flutter.plugins.nfc_manager' dans build.gradle
|
|
#
|
|
# Usage :
|
|
# ./fix-nfc-manager.sh
|
|
#
|
|
# Historique :
|
|
# 14/10/2025 - Création du script pour résoudre compilation Android
|
|
# ============================================================================
|
|
|
|
set -e
|
|
|
|
# Détection de l'OS pour la syntaxe sed
|
|
if [[ "$OSTYPE" == "darwin"* ]]; then
|
|
# macOS (BSD sed)
|
|
SED_INPLACE="sed -i ''"
|
|
else
|
|
# Linux (GNU sed)
|
|
SED_INPLACE="sed -i"
|
|
fi
|
|
|
|
# Couleurs pour les messages
|
|
GREEN='\033[0;32m'
|
|
RED='\033[0;31m'
|
|
YELLOW='\033[1;33m'
|
|
BLUE='\033[0;34m'
|
|
NC='\033[0m' # No Color
|
|
|
|
echo_info() {
|
|
echo -e "${GREEN}[INFO]${NC} $1"
|
|
}
|
|
|
|
echo_warning() {
|
|
echo -e "${YELLOW}[WARNING]${NC} $1"
|
|
}
|
|
|
|
echo_error() {
|
|
echo -e "${RED}[ERROR]${NC} $1"
|
|
}
|
|
|
|
echo_step() {
|
|
echo -e "${BLUE}[STEP]${NC} $1"
|
|
}
|
|
|
|
# Chemins vers les fichiers de nfc_manager 3.3.0
|
|
# Utilise $PUB_CACHE si défini (cache local projet), sinon $HOME/.pub-cache
|
|
PUB_CACHE_BASE="${PUB_CACHE:-$HOME/.pub-cache}"
|
|
NFC_DIR="${PUB_CACHE_BASE}/hosted/pub.dev/nfc_manager-3.3.0/android"
|
|
NFC_MANIFEST="${NFC_DIR}/src/main/AndroidManifest.xml"
|
|
NFC_BUILD_GRADLE="${NFC_DIR}/build.gradle"
|
|
NFC_TRANSLATOR="${NFC_DIR}/src/main/kotlin/io/flutter/plugins/nfcmanager/Translator.kt"
|
|
|
|
echo_info "=========================================="
|
|
echo_info " nfc_manager 3.3.0 - Android Patch"
|
|
echo_info "=========================================="
|
|
echo ""
|
|
|
|
# Vérifier si les fichiers existent
|
|
if [ ! -f "$NFC_MANIFEST" ]; then
|
|
echo_error "Fichier AndroidManifest.xml introuvable"
|
|
echo_error "Chemin attendu: $NFC_MANIFEST"
|
|
echo ""
|
|
echo_info "Exécutez 'flutter pub get' d'abord"
|
|
exit 1
|
|
fi
|
|
|
|
if [ ! -f "$NFC_BUILD_GRADLE" ]; then
|
|
echo_error "Fichier build.gradle introuvable"
|
|
echo_error "Chemin attendu: $NFC_BUILD_GRADLE"
|
|
exit 1
|
|
fi
|
|
|
|
if [ ! -f "$NFC_TRANSLATOR" ]; then
|
|
echo_error "Fichier Translator.kt introuvable"
|
|
echo_error "Chemin attendu: $NFC_TRANSLATOR"
|
|
exit 1
|
|
fi
|
|
|
|
echo_info "Fichiers trouvés:"
|
|
echo_info " - AndroidManifest.xml: $NFC_MANIFEST"
|
|
echo_info " - build.gradle: $NFC_BUILD_GRADLE"
|
|
echo_info " - Translator.kt: $NFC_TRANSLATOR"
|
|
echo ""
|
|
|
|
# ===========================================
|
|
# ÉTAPE 1 : Patcher AndroidManifest.xml
|
|
# ===========================================
|
|
echo_step "Étape 1/2 : Patch AndroidManifest.xml"
|
|
echo ""
|
|
|
|
if grep -q 'package="io.flutter.plugins.nfcmanager"' "$NFC_MANIFEST"; then
|
|
echo_warning "Attribut 'package' détecté dans AndroidManifest.xml"
|
|
|
|
# Créer une sauvegarde
|
|
BACKUP_MANIFEST="${NFC_MANIFEST}.backup"
|
|
if [ ! -f "$BACKUP_MANIFEST" ]; then
|
|
cp "$NFC_MANIFEST" "$BACKUP_MANIFEST"
|
|
echo_info "Sauvegarde créée: ${BACKUP_MANIFEST}"
|
|
fi
|
|
|
|
# Appliquer le patch (compatible Linux + macOS)
|
|
eval "$SED_INPLACE 's/ package=\"io.flutter.plugins.nfcmanager\"//g' \"$NFC_MANIFEST\""
|
|
|
|
# Vérifier
|
|
if ! grep -q 'package="io.flutter.plugins.nfcmanager"' "$NFC_MANIFEST"; then
|
|
echo_info "✅ AndroidManifest.xml patché avec succès"
|
|
else
|
|
echo_error "❌ Échec du patch AndroidManifest.xml"
|
|
exit 1
|
|
fi
|
|
else
|
|
echo_info "✅ AndroidManifest.xml déjà patché"
|
|
fi
|
|
echo ""
|
|
|
|
# ===========================================
|
|
# ÉTAPE 2 : Patcher build.gradle
|
|
# ===========================================
|
|
echo_step "Étape 2/2 : Patch build.gradle"
|
|
echo ""
|
|
|
|
if grep -q "namespace 'io.flutter.plugins.nfc_manager'" "$NFC_BUILD_GRADLE"; then
|
|
echo_info "✅ build.gradle déjà patché (namespace présent)"
|
|
else
|
|
echo_warning "Namespace manquant dans build.gradle"
|
|
|
|
# Créer une sauvegarde
|
|
BACKUP_GRADLE="${NFC_BUILD_GRADLE}.backup"
|
|
if [ ! -f "$BACKUP_GRADLE" ]; then
|
|
cp "$NFC_BUILD_GRADLE" "$BACKUP_GRADLE"
|
|
echo_info "Sauvegarde créée: ${BACKUP_GRADLE}"
|
|
fi
|
|
|
|
# Appliquer le patch : ajouter namespace après "android {" (compatible Linux + macOS)
|
|
if [[ "$OSTYPE" == "darwin"* ]]; then
|
|
# macOS : nécessite un retour à la ligne explicite
|
|
sed -i '' "/^android {$/a\\
|
|
namespace 'io.flutter.plugins.nfc_manager'
|
|
" "$NFC_BUILD_GRADLE"
|
|
else
|
|
# Linux : syntaxe différente
|
|
sed -i "/^android {$/a\\ namespace 'io.flutter.plugins.nfc_manager'" "$NFC_BUILD_GRADLE"
|
|
fi
|
|
|
|
# Vérifier
|
|
if grep -q "namespace 'io.flutter.plugins.nfc_manager'" "$NFC_BUILD_GRADLE"; then
|
|
echo_info "✅ build.gradle patché avec succès (namespace ajouté)"
|
|
else
|
|
echo_error "❌ Échec du patch build.gradle"
|
|
# Restaurer le backup
|
|
mv "$BACKUP_GRADLE" "$NFC_BUILD_GRADLE"
|
|
exit 1
|
|
fi
|
|
fi
|
|
echo ""
|
|
|
|
# ===========================================
|
|
# ÉTAPE 3 : Patcher Translator.kt (Kotlin)
|
|
# ===========================================
|
|
echo_step "Étape 3/3 : Patch Translator.kt (fix Kotlin deprecated)"
|
|
echo ""
|
|
|
|
if grep -q '\.toLowerCase(' "$NFC_TRANSLATOR"; then
|
|
echo_warning "Méthode dépréciée 'toLowerCase()' détectée dans Translator.kt"
|
|
|
|
# Créer une sauvegarde
|
|
BACKUP_TRANSLATOR="${NFC_TRANSLATOR}.backup"
|
|
if [ ! -f "$BACKUP_TRANSLATOR" ]; then
|
|
cp "$NFC_TRANSLATOR" "$BACKUP_TRANSLATOR"
|
|
echo_info "Sauvegarde créée: ${BACKUP_TRANSLATOR}"
|
|
fi
|
|
|
|
# Appliquer le patch : remplacer toLowerCase par lowercase (compatible Linux + macOS)
|
|
eval "$SED_INPLACE 's/\\.toLowerCase(/\\.lowercase(/g' \"$NFC_TRANSLATOR\""
|
|
|
|
# Vérifier
|
|
if ! grep -q '\.toLowerCase(' "$NFC_TRANSLATOR"; then
|
|
echo_info "✅ Translator.kt patché avec succès (toLowerCase → lowercase)"
|
|
else
|
|
echo_error "❌ Échec du patch Translator.kt"
|
|
# Restaurer le backup
|
|
mv "$BACKUP_TRANSLATOR" "$NFC_TRANSLATOR"
|
|
exit 1
|
|
fi
|
|
else
|
|
echo_info "✅ Translator.kt déjà patché (pas de toLowerCase)"
|
|
fi
|
|
echo ""
|
|
|
|
echo_info "=========================================="
|
|
echo_info " ✅ Patch terminé avec succès!"
|
|
echo_info "=========================================="
|
|
echo ""
|
|
echo_info "Modifications appliquées:"
|
|
echo_info " 1. AndroidManifest.xml - Attribut 'package' supprimé"
|
|
echo_info " 2. build.gradle - Namespace ajouté"
|
|
echo_info " 3. Translator.kt - toLowerCase() → lowercase()"
|
|
echo ""
|
|
echo_info "Vous pouvez maintenant compiler Android:"
|
|
echo_info " ./android.sh"
|
|
echo ""
|
|
|
|
exit 0
|