feat: Version 3.5.2 - Configuration Stripe et gestion des immeubles

- 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>
This commit is contained in:
pierre
2025-11-09 18:26:27 +01:00
parent 21657a3820
commit 2f5946a184
812 changed files with 142105 additions and 25992 deletions

View File

@@ -0,0 +1,214 @@
#!/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

View File

@@ -0,0 +1,87 @@
#!/bin/bash
# Script de correction automatique pour permission_handler_apple
# Problème : Le package embarque ses propres headers Flutter qui créent des conflits
# Solution : Supprimer le dossier Flutter/ et corriger les imports
# Date : 14/10/2025
# Usage : ./fix-permission-handler.sh
set -e # Arrêter en cas d'erreur
# 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
echo "🔧 Fix permission_handler_apple - Correction des conflits Flutter headers"
echo ""
# Couleurs pour les messages
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
RED='\033[0;31m'
NC='\033[0m' # No Color
# Trouver le chemin du package dans .pub-cache
# Utilise $PUB_CACHE si défini (cache local projet), sinon $HOME/.pub-cache
PUB_CACHE_BASE="${PUB_CACHE:-$HOME/.pub-cache}"
PERMISSION_HANDLER_PATH=$(find "${PUB_CACHE_BASE}/hosted/pub.dev" -maxdepth 1 -name "permission_handler_apple-*" -type d | sort -V | tail -n 1)
if [ -z "$PERMISSION_HANDLER_PATH" ]; then
echo -e "${RED}❌ Erreur : Package permission_handler_apple introuvable dans .pub-cache${NC}"
exit 1
fi
echo -e "${YELLOW}📦 Package trouvé : $PERMISSION_HANDLER_PATH${NC}"
echo ""
CLASSES_PATH="$PERMISSION_HANDLER_PATH/ios/Classes"
FLUTTER_DIR="$CLASSES_PATH/Flutter"
# Étape 1 : Vérifier si le dossier Flutter existe
if [ -d "$FLUTTER_DIR" ]; then
echo -e "${YELLOW}🗑️ Suppression du dossier Flutter embarqué...${NC}"
rm -rf "$FLUTTER_DIR"
echo -e "${GREEN}✅ Dossier Flutter supprimé${NC}"
else
echo -e "${GREEN}✅ Dossier Flutter déjà supprimé${NC}"
fi
# Étape 2 : Corriger les imports dans PermissionHandlerPlugin.h
PLUGIN_HEADER="$CLASSES_PATH/PermissionHandlerPlugin.h"
if [ -f "$PLUGIN_HEADER" ]; then
if grep -q '#import "Flutter/Flutter.h"' "$PLUGIN_HEADER"; then
echo -e "${YELLOW}📝 Correction de PermissionHandlerPlugin.h...${NC}"
eval "$SED_INPLACE 's|#import \"Flutter/Flutter.h\"|#import <Flutter/Flutter.h>|g' \"$PLUGIN_HEADER\""
echo -e "${GREEN}✅ PermissionHandlerPlugin.h corrigé${NC}"
else
echo -e "${GREEN}✅ PermissionHandlerPlugin.h déjà corrigé${NC}"
fi
else
echo -e "${RED}⚠️ Fichier PermissionHandlerPlugin.h introuvable${NC}"
fi
# Étape 3 : Corriger les imports dans PermissionManager.h
MANAGER_HEADER="$CLASSES_PATH/PermissionManager.h"
if [ -f "$MANAGER_HEADER" ]; then
if grep -q '#import "Flutter/Flutter.h"' "$MANAGER_HEADER"; then
echo -e "${YELLOW}📝 Correction de PermissionManager.h...${NC}"
eval "$SED_INPLACE 's|#import \"Flutter/Flutter.h\"|#import <Flutter/Flutter.h>|g' \"$MANAGER_HEADER\""
echo -e "${GREEN}✅ PermissionManager.h corrigé${NC}"
else
echo -e "${GREEN}✅ PermissionManager.h déjà corrigé${NC}"
fi
else
echo -e "${RED}⚠️ Fichier PermissionManager.h introuvable${NC}"
fi
echo ""
echo -e "${GREEN}🎉 Correction terminée avec succès !${NC}"
echo ""
echo -e "${YELLOW} Ce script doit être exécuté après chaque 'flutter pub get'${NC}"
echo -e "${YELLOW} Raison : Le package permission_handler_apple embarque des headers Flutter qui créent des conflits${NC}"
echo ""