Compare commits
35 Commits
d60cce83c9
...
4fc7abc5b4
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
4fc7abc5b4 | ||
|
|
e04bf6f405 | ||
|
|
bed761401f | ||
|
|
55463649b2 | ||
|
|
62d2aa17be | ||
|
|
acfb2259cc | ||
|
|
d1d2194861 | ||
|
|
b542f98a91 | ||
|
|
f983b869ba | ||
|
|
ead346bb1b | ||
|
|
8d27e771a7 | ||
|
|
31fe3a4260 | ||
|
|
a2c6cd1d4f | ||
|
|
5fe9f371b2 | ||
|
|
b27fb7ed4c | ||
|
|
919ef611bc | ||
|
|
3eeed888b5 | ||
|
|
322f611522 | ||
|
|
a7d2634c5f | ||
|
|
ae125f1144 | ||
|
|
d66907f636 | ||
|
|
508d69a4f4 | ||
|
|
ee00415d23 | ||
|
|
576b86fbbb | ||
|
|
918742293b | ||
|
|
19c06c71f8 | ||
|
|
3e5f3a7ece | ||
|
|
12fdd6da62 | ||
|
|
15a7319239 | ||
|
|
911fb86611 | ||
|
|
8b4c66ba0d | ||
|
|
1352dc49cc | ||
|
|
51ffe2031d | ||
|
|
c70ed9c504 | ||
|
|
67d798f590 |
@@ -1,88 +0,0 @@
|
|||||||
name: Deploy Flutter to Firebase (Mac)
|
|
||||||
on:
|
|
||||||
push:
|
|
||||||
branches: release
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
deploy-android:
|
|
||||||
runs-on: macos-latest
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- name: Checkout code
|
|
||||||
uses: actions/checkout@v3
|
|
||||||
|
|
||||||
- name: Vérifier l'installation Flutter
|
|
||||||
run: flutter doctor -v
|
|
||||||
|
|
||||||
- name: Installer les dépendances Flutter
|
|
||||||
run: flutter pub get
|
|
||||||
|
|
||||||
- name: Créer les fichiers secrets
|
|
||||||
run: |
|
|
||||||
echo "${{ secrets.ENV_FILE }}" > .env
|
|
||||||
printf '%s' '${{ secrets.FIREBASE_CREDENTIALS }}' > ./android/firebase_credentials.json
|
|
||||||
|
|
||||||
- name: Lancer Fastlane (Force APK)
|
|
||||||
working-directory: ./android
|
|
||||||
env:
|
|
||||||
ANDROID_KEYSTORE_BASE64: ${{ secrets.ANDROID_KEYSTORE_BASE64 }}
|
|
||||||
RAW_PROPERTIES: ${{ secrets.ANDROID_KEY_PROPERTIES }}
|
|
||||||
FIREBASE_ANDROID_APP_ID: ${{ secrets.FIREBASE_ANDROID_APP_ID }}
|
|
||||||
run: |
|
|
||||||
# 1. Config Ruby
|
|
||||||
export PATH="/opt/homebrew/opt/ruby/bin:$PATH"
|
|
||||||
export GEM_HOME=$PWD/vendor/bundle
|
|
||||||
export GEM_PATH=$PWD/vendor/bundle
|
|
||||||
export PATH=$GEM_HOME/bin:$PATH
|
|
||||||
|
|
||||||
# 2. Keystore & Properties
|
|
||||||
echo "$ANDROID_KEYSTORE_BASE64" | base64 -D > keystore.jks
|
|
||||||
KEYSTORE_PATH=$(pwd)/keystore.jks
|
|
||||||
|
|
||||||
echo "$RAW_PROPERTIES" > temp_props.txt
|
|
||||||
STORE_PASS=$(grep "storePassword" temp_props.txt | cut -d'=' -f2 | tr -d '\r')
|
|
||||||
KEY_PASS=$(grep "keyPassword" temp_props.txt | cut -d'=' -f2 | tr -d '\r')
|
|
||||||
KEY_ALIAS=$(grep "keyAlias" temp_props.txt | cut -d'=' -f2 | tr -d '\r')
|
|
||||||
|
|
||||||
echo "storePassword=$STORE_PASS" > key.properties
|
|
||||||
echo "keyPassword=$KEY_PASS" >> key.properties
|
|
||||||
echo "keyAlias=$KEY_ALIAS" >> key.properties
|
|
||||||
echo "storeFile=$KEYSTORE_PATH" >> key.properties
|
|
||||||
|
|
||||||
# 3. Installation Dépendances
|
|
||||||
rm -rf vendor Gemfile.lock .bundle
|
|
||||||
echo "source 'https://rubygems.org'" > Gemfile
|
|
||||||
echo "gem 'fastlane', '>= 2.210.0'" >> Gemfile
|
|
||||||
echo "gem 'fastlane-plugin-firebase_app_distribution'" >> Gemfile
|
|
||||||
# Patchs Ruby 3.4
|
|
||||||
echo "gem 'abbrev'" >> Gemfile
|
|
||||||
echo "gem 'ostruct'" >> Gemfile
|
|
||||||
echo "gem 'mutex_m'" >> Gemfile
|
|
||||||
echo "gem 'base64'" >> Gemfile
|
|
||||||
echo "gem 'csv'" >> Gemfile
|
|
||||||
echo "gem 'bigdecimal'" >> Gemfile
|
|
||||||
echo "gem 'drb'" >> Gemfile
|
|
||||||
echo "gem 'nkf'" >> Gemfile
|
|
||||||
|
|
||||||
echo "⬇️ Installation..."
|
|
||||||
gem install bundler -v 2.7.2 --force --no-document
|
|
||||||
bundle _2.7.2_ update --jobs 4
|
|
||||||
|
|
||||||
# 4. CONSTRUCTION ET ENVOI MANUEL EN APK 🗝️
|
|
||||||
# On remonte à la racine pour lancer Flutter
|
|
||||||
cd ..
|
|
||||||
|
|
||||||
echo "🚧 Construction de l'APK (Format compatible sans Play Store)..."
|
|
||||||
# C'est cette commande qui change tout : APK au lieu de AppBundle
|
|
||||||
flutter build apk --release
|
|
||||||
|
|
||||||
# On redescend dans le dossier android pour lancer fastlane
|
|
||||||
cd android
|
|
||||||
|
|
||||||
echo "🚀 Envoi de l'APK vers Firebase..."
|
|
||||||
# On pointe vers le fichier APK généré
|
|
||||||
bundle _2.7.2_ exec fastlane run firebase_app_distribution \
|
|
||||||
app:"$FIREBASE_ANDROID_APP_ID" \
|
|
||||||
android_artifact_path:"../build/app/outputs/flutter-apk/app-release.apk" \
|
|
||||||
service_credentials_file:"firebase_credentials.json" \
|
|
||||||
release_notes:"Build APK via Act - Test"
|
|
||||||
@@ -1,85 +0,0 @@
|
|||||||
name: Deploy Flutter to Firebase iOS (Mac)
|
|
||||||
on:
|
|
||||||
push:
|
|
||||||
branches: release
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
deploy-ios:
|
|
||||||
runs-on: macos-latest
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- name: Checkout code
|
|
||||||
uses: actions/checkout@v3
|
|
||||||
|
|
||||||
- name: Configurer Xcode
|
|
||||||
# Optionnel : force une version spécifique si besoin
|
|
||||||
run: sudo xcode-select -s /Applications/Xcode_15.2.app
|
|
||||||
|
|
||||||
- name: Installer les dépendances Flutter & Cocoapods
|
|
||||||
run: |
|
|
||||||
flutter pub get
|
|
||||||
cd ios
|
|
||||||
pod install --repo-update
|
|
||||||
cd ..
|
|
||||||
|
|
||||||
- name: Créer les fichiers secrets
|
|
||||||
run: |
|
|
||||||
echo "${{ secrets.ENV_FILE }}" > .env
|
|
||||||
printf '%s' '${{ secrets.FIREBASE_CREDENTIALS }}' > ./ios/firebase_credentials.json
|
|
||||||
|
|
||||||
- name: Préparer le Code Signing (Certificats)
|
|
||||||
env:
|
|
||||||
P12_CERTIFICATE_BASE64: ${{ secrets.IOS_P12_BASE64 }}
|
|
||||||
P12_PASSWORD: ${{ secrets.IOS_P12_PASSWORD }}
|
|
||||||
PROVISIONING_PROFILE_BASE64: ${{ secrets.IOS_PROVISION_BASE64 }}
|
|
||||||
KEYCHAIN_PASSWORD: "temporary_password"
|
|
||||||
run: |
|
|
||||||
# 1. Créer un Keychain temporaire
|
|
||||||
security create-keychain -p "$KEYCHAIN_PASSWORD" build.keychain
|
|
||||||
security default-keychain -s build.keychain
|
|
||||||
security unlock-keychain -p "$KEYCHAIN_PASSWORD" build.keychain
|
|
||||||
security set-keychain-settings -t 3600 -u build.keychain
|
|
||||||
|
|
||||||
# 2. Importer le certificat .p12
|
|
||||||
echo "$P12_CERTIFICATE_BASE64" | base64 -D -o certificate.p12
|
|
||||||
security import certificate.p12 -k build.keychain -P "$P12_PASSWORD" -T /usr/bin/codesign
|
|
||||||
security set-key-partition-list -S apple-tool:,apple: -s -k "$KEYCHAIN_PASSWORD" build.keychain
|
|
||||||
|
|
||||||
# 3. Importer le Profil de Provisionnement
|
|
||||||
mkdir -p ~/Library/MobileDevice/Provisioning\ Profiles
|
|
||||||
echo "$PROVISIONING_PROFILE_BASE64" | base64 -D -o ~/Library/MobileDevice/Provisioning\ Profiles/distribution.mobileprovision
|
|
||||||
|
|
||||||
- name: Lancer Fastlane & Build IPA
|
|
||||||
working-directory: ./ios
|
|
||||||
env:
|
|
||||||
FIREBASE_IOS_APP_ID: ${{ secrets.FIREBASE_IOS_APP_ID }}
|
|
||||||
run: |
|
|
||||||
# 1. Config Ruby (Identique à ton script Android)
|
|
||||||
export PATH="/opt/homebrew/opt/ruby/bin:$PATH"
|
|
||||||
export GEM_HOME=$PWD/vendor/bundle
|
|
||||||
export GEM_PATH=$PWD/vendor/bundle
|
|
||||||
export PATH=$GEM_HOME/bin:$PATH
|
|
||||||
|
|
||||||
# 2. Installation Fastlane
|
|
||||||
rm -rf vendor Gemfile.lock .bundle
|
|
||||||
echo "source 'https://rubygems.org'" > Gemfile
|
|
||||||
echo "gem 'fastlane', '>= 2.210.0'" >> Gemfile
|
|
||||||
echo "gem 'fastlane-plugin-firebase_app_distribution'" >> Gemfile
|
|
||||||
echo "gem 'base64'" >> Gemfile
|
|
||||||
|
|
||||||
bundle install --path vendor/bundle
|
|
||||||
|
|
||||||
# 3. Construction de l'IPA via Flutter
|
|
||||||
cd ..
|
|
||||||
# On génère l'IPA. Flutter s'occupe de trouver le certificat dans le keychain
|
|
||||||
flutter build ipa --release --export-method ad-hoc
|
|
||||||
|
|
||||||
cd ios
|
|
||||||
|
|
||||||
# 4. Envoi vers Firebase
|
|
||||||
echo "🚀 Envoi de l'IPA vers Firebase..."
|
|
||||||
bundle exec fastlane run firebase_app_distribution \
|
|
||||||
app:"$FIREBASE_IOS_APP_ID" \
|
|
||||||
ipa_path:"../build/ios/ipa/*.ipa" \
|
|
||||||
service_credentials_file:"firebase_credentials.json" \
|
|
||||||
release_notes:"Build iOS via Act"
|
|
||||||
226
.gitea/workflows/deploy.yaml
Normal file
226
.gitea/workflows/deploy.yaml
Normal file
@@ -0,0 +1,226 @@
|
|||||||
|
name: Deploy TravelMate (Full Mobile)
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- release
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
# --- JOB 1 : ANDROID (Génération APK) ---
|
||||||
|
deploy-android:
|
||||||
|
runs-on: macos-latest
|
||||||
|
steps:
|
||||||
|
- name: Checkout code
|
||||||
|
uses: actions/checkout@v3
|
||||||
|
|
||||||
|
- name: Configuration Flutter & Secrets
|
||||||
|
run: |
|
||||||
|
flutter pub get
|
||||||
|
echo "${{ secrets.ENV_FILE }}" > .env
|
||||||
|
printf '%s' '${{ secrets.FIREBASE_CREDENTIALS }}' > ./android/firebase_credentials.json
|
||||||
|
|
||||||
|
- name: Build & Deploy Android
|
||||||
|
working-directory: ./android
|
||||||
|
env:
|
||||||
|
ANDROID_KEYSTORE_BASE64: ${{ secrets.ANDROID_KEYSTORE_BASE64 }}
|
||||||
|
RAW_PROPERTIES: ${{ secrets.ANDROID_KEY_PROPERTIES }}
|
||||||
|
FIREBASE_ANDROID_APP_ID: ${{ secrets.FIREBASE_ANDROID_APP_ID }}
|
||||||
|
run: |
|
||||||
|
# 1. Keystore
|
||||||
|
echo "$ANDROID_KEYSTORE_BASE64" | base64 -D > keystore.jks
|
||||||
|
echo "$RAW_PROPERTIES" > temp_props.txt
|
||||||
|
echo "storePassword=$(grep 'storePassword' temp_props.txt | cut -d'=' -f2 | tr -d '\r')" > key.properties
|
||||||
|
echo "keyPassword=$(grep 'keyPassword' temp_props.txt | cut -d'=' -f2 | tr -d '\r')" >> key.properties
|
||||||
|
echo "keyAlias=$(grep 'keyAlias' temp_props.txt | cut -d'=' -f2 | tr -d '\r')" >> key.properties
|
||||||
|
echo "storeFile=$(pwd)/keystore.jks" >> key.properties
|
||||||
|
|
||||||
|
# 2. Gemfile (Correctifs Ruby 3.4 inclus)
|
||||||
|
echo "source 'https://rubygems.org'" > Gemfile
|
||||||
|
echo "gem 'fastlane', '>= 2.230.0'" >> Gemfile
|
||||||
|
echo "gem 'fastlane-plugin-firebase_app_distribution'" >> Gemfile
|
||||||
|
for g in abbrev ostruct mutex_m base64 csv bigdecimal drb nkf reline logger; do echo "gem '$g'" >> Gemfile; done
|
||||||
|
|
||||||
|
gem install bundler -v 2.7.2 --no-document
|
||||||
|
bundle _2.7.2_ update
|
||||||
|
|
||||||
|
# 3. Build & Envoi
|
||||||
|
cd .. && flutter build apk --release && cd android
|
||||||
|
bundle _2.7.2_ exec fastlane run firebase_app_distribution \
|
||||||
|
app:"$FIREBASE_ANDROID_APP_ID" \
|
||||||
|
android_artifact_path:"../build/app/outputs/flutter-apk/app-release.apk" \
|
||||||
|
service_credentials_file:"firebase_credentials.json"
|
||||||
|
|
||||||
|
# --- JOB 2 : IOS (Génération IPA) ---
|
||||||
|
deploy-ios:
|
||||||
|
runs-on: macos-latest
|
||||||
|
steps:
|
||||||
|
- name: Checkout code
|
||||||
|
uses: actions/checkout@v3
|
||||||
|
|
||||||
|
- name: Dépendances iOS & Secrets
|
||||||
|
run: |
|
||||||
|
flutter pub get
|
||||||
|
echo "${{ secrets.ENV_FILE }}" > .env
|
||||||
|
printf '%s' '${{ secrets.FIREBASE_CREDENTIALS }}' > ./ios/firebase_credentials.json
|
||||||
|
cd ios && (pod install --repo-update || pod update)
|
||||||
|
|
||||||
|
- name: Préparer le Code Signing
|
||||||
|
env:
|
||||||
|
P12_BASE: ${{ secrets.IOS_P12_BASE64 }}
|
||||||
|
P12_PASS: ${{ secrets.IOS_P12_PASSWORD }}
|
||||||
|
PROV_BASE: ${{ secrets.IOS_PROVISION_BASE64 }}
|
||||||
|
TEAM_ID: ${{ secrets.IOS_TEAM_ID }}
|
||||||
|
run: |
|
||||||
|
# Créer et configurer le keychain
|
||||||
|
security delete-keychain build.keychain || true
|
||||||
|
security create-keychain -p "" build.keychain
|
||||||
|
security unlock-keychain -p "" build.keychain
|
||||||
|
security list-keychains -d user -s build.keychain $(security list-keychains -d user | xargs)
|
||||||
|
security set-keychain-settings -lut 21600 build.keychain
|
||||||
|
|
||||||
|
# Importer le certificat
|
||||||
|
echo "$P12_BASE" | base64 -D -o cert.p12
|
||||||
|
security import cert.p12 -k build.keychain -P "$P12_PASS" -T /usr/bin/codesign
|
||||||
|
security set-key-partition-list -S apple-tool:,apple: -s -k "" build.keychain
|
||||||
|
|
||||||
|
# Installer le profil de provisioning
|
||||||
|
mkdir -p ~/Library/MobileDevice/Provisioning\ Profiles
|
||||||
|
PROFILE_PATH=~/Library/MobileDevice/Provisioning\ Profiles/distribution.mobileprovision
|
||||||
|
echo "$PROV_BASE" | base64 -D -o "$PROFILE_PATH"
|
||||||
|
|
||||||
|
# Extraire l'UUID du profil
|
||||||
|
PROFILE_UUID=$(/usr/libexec/PlistBuddy -c "Print UUID" /dev/stdin <<< $(/usr/bin/security cms -D -i "$PROFILE_PATH"))
|
||||||
|
echo "Profile UUID: $PROFILE_UUID"
|
||||||
|
|
||||||
|
# Copier avec l'UUID correct
|
||||||
|
cp "$PROFILE_PATH" ~/Library/MobileDevice/Provisioning\ Profiles/$PROFILE_UUID.mobileprovision
|
||||||
|
|
||||||
|
- name: Configurer le projet Xcode
|
||||||
|
env:
|
||||||
|
TEAM_ID: ${{ secrets.IOS_TEAM_ID }}
|
||||||
|
BUNDLE_ID: ${{ secrets.IOS_BUNDLE_ID }}
|
||||||
|
run: |
|
||||||
|
cd ios
|
||||||
|
|
||||||
|
# Extraire le nom du profil de provisioning
|
||||||
|
PROV_NAME=$(/usr/libexec/PlistBuddy -c "Print Name" /dev/stdin <<< $(/usr/bin/security cms -D -i ~/Library/MobileDevice/Provisioning\ Profiles/distribution.mobileprovision))
|
||||||
|
echo "📝 Provisioning Profile Name: $PROV_NAME"
|
||||||
|
|
||||||
|
# Obtenir l'UUID du profil
|
||||||
|
PROFILE_UUID=$(/usr/libexec/PlistBuddy -c "Print UUID" /dev/stdin <<< $(/usr/bin/security cms -D -i ~/Library/MobileDevice/Provisioning\ Profiles/distribution.mobileprovision))
|
||||||
|
echo "🔑 Profile UUID: $PROFILE_UUID"
|
||||||
|
|
||||||
|
# Sauvegarder les variables pour la prochaine étape
|
||||||
|
echo "$PROV_NAME" > /tmp/prov_name.txt
|
||||||
|
echo "$TEAM_ID" > /tmp/team_id.txt
|
||||||
|
echo "$BUNDLE_ID" > /tmp/bundle_id.txt
|
||||||
|
|
||||||
|
echo "✅ Configuration des paramètres de signing prête"
|
||||||
|
|
||||||
|
- name: Créer exportOptions.plist
|
||||||
|
env:
|
||||||
|
TEAM_ID: ${{ secrets.IOS_TEAM_ID }}
|
||||||
|
BUNDLE_ID: ${{ secrets.IOS_BUNDLE_ID }}
|
||||||
|
run: |
|
||||||
|
# Extraire le nom du profil
|
||||||
|
PROV_NAME=$(/usr/libexec/PlistBuddy -c "Print Name" /dev/stdin <<< $(/usr/bin/security cms -D -i ~/Library/MobileDevice/Provisioning\ Profiles/distribution.mobileprovision))
|
||||||
|
|
||||||
|
cat > ios/exportOptions.plist <<EOF
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||||
|
<plist version="1.0">
|
||||||
|
<dict>
|
||||||
|
<key>method</key>
|
||||||
|
<string>ad-hoc</string>
|
||||||
|
<key>teamID</key>
|
||||||
|
<string>$TEAM_ID</string>
|
||||||
|
<key>signingStyle</key>
|
||||||
|
<string>manual</string>
|
||||||
|
<key>provisioningProfiles</key>
|
||||||
|
<dict>
|
||||||
|
<key>$BUNDLE_ID</key>
|
||||||
|
<string>$PROV_NAME</string>
|
||||||
|
</dict>
|
||||||
|
</dict>
|
||||||
|
</plist>
|
||||||
|
EOF
|
||||||
|
|
||||||
|
- name: Build IPA avec Flutter
|
||||||
|
run: |
|
||||||
|
# Récupérer les variables sauvegardées
|
||||||
|
PROV_NAME=$(cat /tmp/prov_name.txt)
|
||||||
|
TEAM_ID=$(cat /tmp/team_id.txt)
|
||||||
|
BUNDLE_ID=$(cat /tmp/bundle_id.txt)
|
||||||
|
|
||||||
|
echo "📝 Provisioning Profile: $PROV_NAME"
|
||||||
|
echo "🔑 Team ID: $TEAM_ID"
|
||||||
|
echo "📦 Bundle ID: $BUNDLE_ID"
|
||||||
|
|
||||||
|
# Clean
|
||||||
|
flutter clean
|
||||||
|
flutter pub get
|
||||||
|
|
||||||
|
echo "🔨 Build de l'IPA avec Flutter..."
|
||||||
|
|
||||||
|
# Flutter build ipa gère automatiquement le signing des Pods
|
||||||
|
# On utilise SEULEMENT --export-options-plist (pas --export-method)
|
||||||
|
flutter build ipa \
|
||||||
|
--release \
|
||||||
|
--export-options-plist=ios/exportOptions.plist
|
||||||
|
|
||||||
|
echo "✅ Build terminé"
|
||||||
|
echo "📂 Recherche de l'IPA..."
|
||||||
|
|
||||||
|
# L'IPA devrait être dans build/ios/ipa/
|
||||||
|
find build/ios -name "*.ipa" -type f
|
||||||
|
|
||||||
|
IPA_FILE=$(find build/ios/ipa -name "*.ipa" | head -n 1)
|
||||||
|
|
||||||
|
if [ -z "$IPA_FILE" ]; then
|
||||||
|
echo "❌ ERREUR: Aucun fichier IPA trouvé !"
|
||||||
|
echo "📂 Contenu de build/ios/ :"
|
||||||
|
ls -R build/ios/
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "✅ IPA trouvée : $IPA_FILE"
|
||||||
|
echo "📊 Taille : $(du -h "$IPA_FILE" | cut -f1)"
|
||||||
|
|
||||||
|
- name: Vérification et Upload Firebase
|
||||||
|
env:
|
||||||
|
FIREBASE_IOS_APP_ID: ${{ secrets.FIREBASE_IOS_APP_ID }}
|
||||||
|
run: |
|
||||||
|
cd ios
|
||||||
|
|
||||||
|
# Configuration Fastlane
|
||||||
|
echo "source 'https://rubygems.org'" > Gemfile
|
||||||
|
echo "gem 'fastlane', '>= 2.230.0'" >> Gemfile
|
||||||
|
echo "gem 'fastlane-plugin-firebase_app_distribution'" >> Gemfile
|
||||||
|
for g in abbrev ostruct mutex_m base64 csv bigdecimal drb nkf reline logger; do echo "gem '$g'" >> Gemfile; done
|
||||||
|
|
||||||
|
gem install bundler -v 2.7.2 --no-document
|
||||||
|
bundle _2.7.2_ update
|
||||||
|
|
||||||
|
# Recherche de l'IPA
|
||||||
|
IPA_FILE=$(find ../build/ios/ipa -name "*.ipa" | head -n 1)
|
||||||
|
|
||||||
|
if [ -z "$IPA_FILE" ]; then
|
||||||
|
echo "❌ ERREUR : Aucun fichier IPA trouvé !"
|
||||||
|
echo "📂 Structure complète du dossier build :"
|
||||||
|
ls -R ../build/
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "✅ IPA trouvée : $IPA_FILE"
|
||||||
|
echo "📊 Taille : $(du -h "$IPA_FILE" | cut -f1)"
|
||||||
|
|
||||||
|
# Upload vers Firebase
|
||||||
|
bundle _2.7.2_ exec fastlane run firebase_app_distribution \
|
||||||
|
app:"$FIREBASE_IOS_APP_ID" \
|
||||||
|
ipa_path:"$IPA_FILE" \
|
||||||
|
service_credentials_file:"firebase_credentials.json"
|
||||||
|
|
||||||
|
- name: Nettoyage Final
|
||||||
|
if: always()
|
||||||
|
run: |
|
||||||
|
security list-keychains -d user -s login.keychain
|
||||||
|
security delete-keychain build.keychain || true
|
||||||
196
ios/Podfile.lock
196
ios/Podfile.lock
@@ -1205,63 +1205,85 @@ PODS:
|
|||||||
- BoringSSL-GRPC/Interface (= 0.0.37)
|
- BoringSSL-GRPC/Interface (= 0.0.37)
|
||||||
- BoringSSL-GRPC/Interface (0.0.37)
|
- BoringSSL-GRPC/Interface (0.0.37)
|
||||||
- cloud_firestore (6.0.3):
|
- cloud_firestore (6.0.3):
|
||||||
- Firebase/Firestore (= 12.4.0)
|
- Firebase/Firestore (= 12.6.0)
|
||||||
- firebase_core
|
- firebase_core
|
||||||
- Flutter
|
- Flutter
|
||||||
- Firebase/Auth (12.4.0):
|
- Firebase/Auth (12.6.0):
|
||||||
- Firebase/CoreOnly
|
- Firebase/CoreOnly
|
||||||
- FirebaseAuth (~> 12.4.0)
|
- FirebaseAuth (~> 12.6.0)
|
||||||
- Firebase/CoreOnly (12.4.0):
|
- Firebase/CoreOnly (12.6.0):
|
||||||
- FirebaseCore (~> 12.4.0)
|
- FirebaseCore (~> 12.6.0)
|
||||||
- Firebase/Firestore (12.4.0):
|
- Firebase/Firestore (12.6.0):
|
||||||
- Firebase/CoreOnly
|
- Firebase/CoreOnly
|
||||||
- FirebaseFirestore (~> 12.4.0)
|
- FirebaseFirestore (~> 12.6.0)
|
||||||
- Firebase/Messaging (12.4.0):
|
- Firebase/Messaging (12.6.0):
|
||||||
- Firebase/CoreOnly
|
- Firebase/CoreOnly
|
||||||
- FirebaseMessaging (~> 12.4.0)
|
- FirebaseMessaging (~> 12.6.0)
|
||||||
- Firebase/Storage (12.4.0):
|
- Firebase/Storage (12.6.0):
|
||||||
- Firebase/CoreOnly
|
- Firebase/CoreOnly
|
||||||
- FirebaseStorage (~> 12.4.0)
|
- FirebaseStorage (~> 12.6.0)
|
||||||
|
- firebase_analytics (12.1.0):
|
||||||
|
- firebase_core
|
||||||
|
- FirebaseAnalytics (= 12.6.0)
|
||||||
|
- Flutter
|
||||||
- firebase_auth (6.1.1):
|
- firebase_auth (6.1.1):
|
||||||
- Firebase/Auth (= 12.4.0)
|
- Firebase/Auth (= 12.6.0)
|
||||||
- firebase_core
|
- firebase_core
|
||||||
- Flutter
|
- Flutter
|
||||||
- firebase_core (4.2.1):
|
- firebase_core (4.3.0):
|
||||||
- Firebase/CoreOnly (= 12.4.0)
|
- Firebase/CoreOnly (= 12.6.0)
|
||||||
- Flutter
|
- Flutter
|
||||||
- firebase_messaging (16.0.4):
|
- firebase_messaging (16.0.4):
|
||||||
- Firebase/Messaging (= 12.4.0)
|
- Firebase/Messaging (= 12.6.0)
|
||||||
- firebase_core
|
- firebase_core
|
||||||
- Flutter
|
- Flutter
|
||||||
- firebase_storage (13.0.3):
|
- firebase_storage (13.0.3):
|
||||||
- Firebase/Storage (= 12.4.0)
|
- Firebase/Storage (= 12.6.0)
|
||||||
- firebase_core
|
- firebase_core
|
||||||
- Flutter
|
- Flutter
|
||||||
- FirebaseAppCheckInterop (12.4.0)
|
- FirebaseAnalytics (12.6.0):
|
||||||
- FirebaseAuth (12.4.0):
|
- FirebaseAnalytics/Default (= 12.6.0)
|
||||||
- FirebaseAppCheckInterop (~> 12.4.0)
|
- FirebaseCore (~> 12.6.0)
|
||||||
- FirebaseAuthInterop (~> 12.4.0)
|
- FirebaseInstallations (~> 12.6.0)
|
||||||
- FirebaseCore (~> 12.4.0)
|
- GoogleUtilities/AppDelegateSwizzler (~> 8.1)
|
||||||
- FirebaseCoreExtension (~> 12.4.0)
|
- GoogleUtilities/MethodSwizzler (~> 8.1)
|
||||||
|
- GoogleUtilities/Network (~> 8.1)
|
||||||
|
- "GoogleUtilities/NSData+zlib (~> 8.1)"
|
||||||
|
- nanopb (~> 3.30910.0)
|
||||||
|
- FirebaseAnalytics/Default (12.6.0):
|
||||||
|
- FirebaseCore (~> 12.6.0)
|
||||||
|
- FirebaseInstallations (~> 12.6.0)
|
||||||
|
- GoogleAppMeasurement/Default (= 12.6.0)
|
||||||
|
- GoogleUtilities/AppDelegateSwizzler (~> 8.1)
|
||||||
|
- GoogleUtilities/MethodSwizzler (~> 8.1)
|
||||||
|
- GoogleUtilities/Network (~> 8.1)
|
||||||
|
- "GoogleUtilities/NSData+zlib (~> 8.1)"
|
||||||
|
- nanopb (~> 3.30910.0)
|
||||||
|
- FirebaseAppCheckInterop (12.6.0)
|
||||||
|
- FirebaseAuth (12.6.0):
|
||||||
|
- FirebaseAppCheckInterop (~> 12.6.0)
|
||||||
|
- FirebaseAuthInterop (~> 12.6.0)
|
||||||
|
- FirebaseCore (~> 12.6.0)
|
||||||
|
- FirebaseCoreExtension (~> 12.6.0)
|
||||||
- GoogleUtilities/AppDelegateSwizzler (~> 8.1)
|
- GoogleUtilities/AppDelegateSwizzler (~> 8.1)
|
||||||
- GoogleUtilities/Environment (~> 8.1)
|
- GoogleUtilities/Environment (~> 8.1)
|
||||||
- GTMSessionFetcher/Core (< 6.0, >= 3.4)
|
- GTMSessionFetcher/Core (< 6.0, >= 3.4)
|
||||||
- RecaptchaInterop (~> 101.0)
|
- RecaptchaInterop (~> 101.0)
|
||||||
- FirebaseAuthInterop (12.4.0)
|
- FirebaseAuthInterop (12.6.0)
|
||||||
- FirebaseCore (12.4.0):
|
- FirebaseCore (12.6.0):
|
||||||
- FirebaseCoreInternal (~> 12.4.0)
|
- FirebaseCoreInternal (~> 12.6.0)
|
||||||
- GoogleUtilities/Environment (~> 8.1)
|
- GoogleUtilities/Environment (~> 8.1)
|
||||||
- GoogleUtilities/Logger (~> 8.1)
|
- GoogleUtilities/Logger (~> 8.1)
|
||||||
- FirebaseCoreExtension (12.4.0):
|
- FirebaseCoreExtension (12.6.0):
|
||||||
- FirebaseCore (~> 12.4.0)
|
- FirebaseCore (~> 12.6.0)
|
||||||
- FirebaseCoreInternal (12.4.0):
|
- FirebaseCoreInternal (12.6.0):
|
||||||
- "GoogleUtilities/NSData+zlib (~> 8.1)"
|
- "GoogleUtilities/NSData+zlib (~> 8.1)"
|
||||||
- FirebaseFirestore (12.4.0):
|
- FirebaseFirestore (12.6.0):
|
||||||
- FirebaseCore (~> 12.4.0)
|
- FirebaseCore (~> 12.6.0)
|
||||||
- FirebaseCoreExtension (~> 12.4.0)
|
- FirebaseCoreExtension (~> 12.6.0)
|
||||||
- FirebaseFirestoreInternal (~> 12.4.0)
|
- FirebaseFirestoreInternal (~> 12.6.0)
|
||||||
- FirebaseSharedSwift (~> 12.4.0)
|
- FirebaseSharedSwift (~> 12.6.0)
|
||||||
- FirebaseFirestoreInternal (12.4.0):
|
- FirebaseFirestoreInternal (12.6.0):
|
||||||
- abseil/algorithm (~> 1.20240722.0)
|
- abseil/algorithm (~> 1.20240722.0)
|
||||||
- abseil/base (~> 1.20240722.0)
|
- abseil/base (~> 1.20240722.0)
|
||||||
- abseil/container/flat_hash_map (~> 1.20240722.0)
|
- abseil/container/flat_hash_map (~> 1.20240722.0)
|
||||||
@@ -1270,32 +1292,32 @@ PODS:
|
|||||||
- abseil/strings/strings (~> 1.20240722.0)
|
- abseil/strings/strings (~> 1.20240722.0)
|
||||||
- abseil/time (~> 1.20240722.0)
|
- abseil/time (~> 1.20240722.0)
|
||||||
- abseil/types (~> 1.20240722.0)
|
- abseil/types (~> 1.20240722.0)
|
||||||
- FirebaseAppCheckInterop (~> 12.4.0)
|
- FirebaseAppCheckInterop (~> 12.6.0)
|
||||||
- FirebaseCore (~> 12.4.0)
|
- FirebaseCore (~> 12.6.0)
|
||||||
- "gRPC-C++ (~> 1.69.0)"
|
- "gRPC-C++ (~> 1.69.0)"
|
||||||
- gRPC-Core (~> 1.69.0)
|
- gRPC-Core (~> 1.69.0)
|
||||||
- leveldb-library (~> 1.22)
|
- leveldb-library (~> 1.22)
|
||||||
- nanopb (~> 3.30910.0)
|
- nanopb (~> 3.30910.0)
|
||||||
- FirebaseInstallations (12.4.0):
|
- FirebaseInstallations (12.6.0):
|
||||||
- FirebaseCore (~> 12.4.0)
|
- FirebaseCore (~> 12.6.0)
|
||||||
- GoogleUtilities/Environment (~> 8.1)
|
- GoogleUtilities/Environment (~> 8.1)
|
||||||
- GoogleUtilities/UserDefaults (~> 8.1)
|
- GoogleUtilities/UserDefaults (~> 8.1)
|
||||||
- PromisesObjC (~> 2.4)
|
- PromisesObjC (~> 2.4)
|
||||||
- FirebaseMessaging (12.4.0):
|
- FirebaseMessaging (12.6.0):
|
||||||
- FirebaseCore (~> 12.4.0)
|
- FirebaseCore (~> 12.6.0)
|
||||||
- FirebaseInstallations (~> 12.4.0)
|
- FirebaseInstallations (~> 12.6.0)
|
||||||
- GoogleDataTransport (~> 10.1)
|
- GoogleDataTransport (~> 10.1)
|
||||||
- GoogleUtilities/AppDelegateSwizzler (~> 8.1)
|
- GoogleUtilities/AppDelegateSwizzler (~> 8.1)
|
||||||
- GoogleUtilities/Environment (~> 8.1)
|
- GoogleUtilities/Environment (~> 8.1)
|
||||||
- GoogleUtilities/Reachability (~> 8.1)
|
- GoogleUtilities/Reachability (~> 8.1)
|
||||||
- GoogleUtilities/UserDefaults (~> 8.1)
|
- GoogleUtilities/UserDefaults (~> 8.1)
|
||||||
- nanopb (~> 3.30910.0)
|
- nanopb (~> 3.30910.0)
|
||||||
- FirebaseSharedSwift (12.4.0)
|
- FirebaseSharedSwift (12.6.0)
|
||||||
- FirebaseStorage (12.4.0):
|
- FirebaseStorage (12.6.0):
|
||||||
- FirebaseAppCheckInterop (~> 12.4.0)
|
- FirebaseAppCheckInterop (~> 12.6.0)
|
||||||
- FirebaseAuthInterop (~> 12.4.0)
|
- FirebaseAuthInterop (~> 12.6.0)
|
||||||
- FirebaseCore (~> 12.4.0)
|
- FirebaseCore (~> 12.6.0)
|
||||||
- FirebaseCoreExtension (~> 12.4.0)
|
- FirebaseCoreExtension (~> 12.6.0)
|
||||||
- GoogleUtilities/Environment (~> 8.1)
|
- GoogleUtilities/Environment (~> 8.1)
|
||||||
- GTMSessionFetcher/Core (< 6.0, >= 3.4)
|
- GTMSessionFetcher/Core (< 6.0, >= 3.4)
|
||||||
- Flutter (1.0.0)
|
- Flutter (1.0.0)
|
||||||
@@ -1315,13 +1337,40 @@ PODS:
|
|||||||
- FlutterMacOS
|
- FlutterMacOS
|
||||||
- GoogleSignIn (~> 9.0)
|
- GoogleSignIn (~> 9.0)
|
||||||
- GTMSessionFetcher (>= 3.4.0)
|
- GTMSessionFetcher (>= 3.4.0)
|
||||||
|
- GoogleAdsOnDeviceConversion (3.2.0):
|
||||||
|
- GoogleUtilities/Environment (~> 8.1)
|
||||||
|
- GoogleUtilities/Logger (~> 8.1)
|
||||||
|
- GoogleUtilities/Network (~> 8.1)
|
||||||
|
- nanopb (~> 3.30910.0)
|
||||||
|
- GoogleAppMeasurement/Core (12.6.0):
|
||||||
|
- GoogleUtilities/AppDelegateSwizzler (~> 8.1)
|
||||||
|
- GoogleUtilities/MethodSwizzler (~> 8.1)
|
||||||
|
- GoogleUtilities/Network (~> 8.1)
|
||||||
|
- "GoogleUtilities/NSData+zlib (~> 8.1)"
|
||||||
|
- nanopb (~> 3.30910.0)
|
||||||
|
- GoogleAppMeasurement/Default (12.6.0):
|
||||||
|
- GoogleAdsOnDeviceConversion (~> 3.2.0)
|
||||||
|
- GoogleAppMeasurement/Core (= 12.6.0)
|
||||||
|
- GoogleAppMeasurement/IdentitySupport (= 12.6.0)
|
||||||
|
- GoogleUtilities/AppDelegateSwizzler (~> 8.1)
|
||||||
|
- GoogleUtilities/MethodSwizzler (~> 8.1)
|
||||||
|
- GoogleUtilities/Network (~> 8.1)
|
||||||
|
- "GoogleUtilities/NSData+zlib (~> 8.1)"
|
||||||
|
- nanopb (~> 3.30910.0)
|
||||||
|
- GoogleAppMeasurement/IdentitySupport (12.6.0):
|
||||||
|
- GoogleAppMeasurement/Core (= 12.6.0)
|
||||||
|
- GoogleUtilities/AppDelegateSwizzler (~> 8.1)
|
||||||
|
- GoogleUtilities/MethodSwizzler (~> 8.1)
|
||||||
|
- GoogleUtilities/Network (~> 8.1)
|
||||||
|
- "GoogleUtilities/NSData+zlib (~> 8.1)"
|
||||||
|
- nanopb (~> 3.30910.0)
|
||||||
- GoogleDataTransport (10.1.0):
|
- GoogleDataTransport (10.1.0):
|
||||||
- nanopb (~> 3.30910.0)
|
- nanopb (~> 3.30910.0)
|
||||||
- PromisesObjC (~> 2.4)
|
- PromisesObjC (~> 2.4)
|
||||||
- GoogleMaps (9.4.0):
|
- GoogleMaps (9.4.0):
|
||||||
- GoogleMaps/Maps (= 9.4.0)
|
- GoogleMaps/Maps (= 9.4.0)
|
||||||
- GoogleMaps/Maps (9.4.0)
|
- GoogleMaps/Maps (9.4.0)
|
||||||
- GoogleSignIn (9.0.0):
|
- GoogleSignIn (9.1.0):
|
||||||
- AppAuth (~> 2.0)
|
- AppAuth (~> 2.0)
|
||||||
- AppCheckCore (~> 11.0)
|
- AppCheckCore (~> 11.0)
|
||||||
- GTMAppAuth (~> 5.0)
|
- GTMAppAuth (~> 5.0)
|
||||||
@@ -1336,6 +1385,9 @@ PODS:
|
|||||||
- GoogleUtilities/Logger (8.1.0):
|
- GoogleUtilities/Logger (8.1.0):
|
||||||
- GoogleUtilities/Environment
|
- GoogleUtilities/Environment
|
||||||
- GoogleUtilities/Privacy
|
- GoogleUtilities/Privacy
|
||||||
|
- GoogleUtilities/MethodSwizzler (8.1.0):
|
||||||
|
- GoogleUtilities/Logger
|
||||||
|
- GoogleUtilities/Privacy
|
||||||
- GoogleUtilities/Network (8.1.0):
|
- GoogleUtilities/Network (8.1.0):
|
||||||
- GoogleUtilities/Logger
|
- GoogleUtilities/Logger
|
||||||
- "GoogleUtilities/NSData+zlib"
|
- "GoogleUtilities/NSData+zlib"
|
||||||
@@ -1480,6 +1532,7 @@ PODS:
|
|||||||
|
|
||||||
DEPENDENCIES:
|
DEPENDENCIES:
|
||||||
- cloud_firestore (from `.symlinks/plugins/cloud_firestore/ios`)
|
- cloud_firestore (from `.symlinks/plugins/cloud_firestore/ios`)
|
||||||
|
- firebase_analytics (from `.symlinks/plugins/firebase_analytics/ios`)
|
||||||
- firebase_auth (from `.symlinks/plugins/firebase_auth/ios`)
|
- firebase_auth (from `.symlinks/plugins/firebase_auth/ios`)
|
||||||
- firebase_core (from `.symlinks/plugins/firebase_core/ios`)
|
- firebase_core (from `.symlinks/plugins/firebase_core/ios`)
|
||||||
- firebase_messaging (from `.symlinks/plugins/firebase_messaging/ios`)
|
- firebase_messaging (from `.symlinks/plugins/firebase_messaging/ios`)
|
||||||
@@ -1505,6 +1558,7 @@ SPEC REPOS:
|
|||||||
- AppCheckCore
|
- AppCheckCore
|
||||||
- BoringSSL-GRPC
|
- BoringSSL-GRPC
|
||||||
- Firebase
|
- Firebase
|
||||||
|
- FirebaseAnalytics
|
||||||
- FirebaseAppCheckInterop
|
- FirebaseAppCheckInterop
|
||||||
- FirebaseAuth
|
- FirebaseAuth
|
||||||
- FirebaseAuthInterop
|
- FirebaseAuthInterop
|
||||||
@@ -1518,6 +1572,8 @@ SPEC REPOS:
|
|||||||
- FirebaseSharedSwift
|
- FirebaseSharedSwift
|
||||||
- FirebaseStorage
|
- FirebaseStorage
|
||||||
- Google-Maps-iOS-Utils
|
- Google-Maps-iOS-Utils
|
||||||
|
- GoogleAdsOnDeviceConversion
|
||||||
|
- GoogleAppMeasurement
|
||||||
- GoogleDataTransport
|
- GoogleDataTransport
|
||||||
- GoogleMaps
|
- GoogleMaps
|
||||||
- GoogleSignIn
|
- GoogleSignIn
|
||||||
@@ -1534,6 +1590,8 @@ SPEC REPOS:
|
|||||||
EXTERNAL SOURCES:
|
EXTERNAL SOURCES:
|
||||||
cloud_firestore:
|
cloud_firestore:
|
||||||
:path: ".symlinks/plugins/cloud_firestore/ios"
|
:path: ".symlinks/plugins/cloud_firestore/ios"
|
||||||
|
firebase_analytics:
|
||||||
|
:path: ".symlinks/plugins/firebase_analytics/ios"
|
||||||
firebase_auth:
|
firebase_auth:
|
||||||
:path: ".symlinks/plugins/firebase_auth/ios"
|
:path: ".symlinks/plugins/firebase_auth/ios"
|
||||||
firebase_core:
|
firebase_core:
|
||||||
@@ -1574,33 +1632,37 @@ SPEC CHECKSUMS:
|
|||||||
AppAuth: 1c1a8afa7e12f2ec3a294d9882dfa5ab7d3cb063
|
AppAuth: 1c1a8afa7e12f2ec3a294d9882dfa5ab7d3cb063
|
||||||
AppCheckCore: cc8fd0a3a230ddd401f326489c99990b013f0c4f
|
AppCheckCore: cc8fd0a3a230ddd401f326489c99990b013f0c4f
|
||||||
BoringSSL-GRPC: dded2a44897e45f28f08ae87a55ee4bcd19bc508
|
BoringSSL-GRPC: dded2a44897e45f28f08ae87a55ee4bcd19bc508
|
||||||
cloud_firestore: 79014bb3b303d451717ed5fe69fded8a2b2e8dc2
|
cloud_firestore: d7598ff2b1b2064e810f839dbdde2765c0f2052a
|
||||||
Firebase: f07b15ae5a6ec0f93713e30b923d9970d144af3e
|
Firebase: a451a7b61536298fd5cbfe3a746fd40443a50679
|
||||||
firebase_auth: c2b8be95d602d4e8a9148fae72333ef78e69cc20
|
firebase_analytics: 4f9cca09e65f6c2944a862c6dc86f6bed9fb769c
|
||||||
firebase_core: f1aafb21c14f497e5498f7ffc4dc63cbb52b2594
|
firebase_auth: cfb7237c0d01e87360cb3bf61e02a417c36e19e8
|
||||||
firebase_messaging: c17a29984eafce4b2997fe078bb0a9e0b06f5dde
|
firebase_core: ba00a168e719694f38960502ceb560285603d073
|
||||||
firebase_storage: 0ba617a05b24aec050395e4d5d3773c0d7518a15
|
firebase_messaging: 752f1df5294ead9d72091d4974362d00d4aec201
|
||||||
FirebaseAppCheckInterop: f734c802f21fe1da0837708f0f9a27218c8a4ed0
|
firebase_storage: 5716627614e95c75e243134f65c1b0d6f66a4315
|
||||||
FirebaseAuth: 4a2aed737c84114a9d9b33d11ae1b147d6b94889
|
FirebaseAnalytics: d0a97a0db6425e5a5d966340b87f92ca7b13a557
|
||||||
FirebaseAuthInterop: 858e6b754966e70740a4370dd1503dfffe6dbb49
|
FirebaseAppCheckInterop: e2178171b4145013c7c1a3cc464d1d446d3a1896
|
||||||
FirebaseCore: bb595f3114953664e3c1dc032f008a244147cfd3
|
FirebaseAuth: 613c463cb43545a7fd2cd99ade09b78ac472c544
|
||||||
FirebaseCoreExtension: 7e1f7118ee970e001a8013719fb90950ee5e0018
|
FirebaseAuthInterop: db06756ef028006d034b6004dc0c37c24f7828d4
|
||||||
FirebaseCoreInternal: d7f5a043c2cd01a08103ab586587c1468047bca6
|
FirebaseCore: 0e38ad5d62d980a47a64b8e9301ffa311457be04
|
||||||
FirebaseFirestore: 2a6183381cf7679b1bb000eb76a8e3178e25dee2
|
FirebaseCoreExtension: 032fd6f8509e591fda8cb76f6651f20d926b121f
|
||||||
FirebaseFirestoreInternal: 6577a27cd5dc3722b900042527f86d4ea1626134
|
FirebaseCoreInternal: 69bf1306a05b8ac43004f6cc1f804bb7b05b229e
|
||||||
FirebaseInstallations: ae9f4902cb5bf1d0c5eaa31ec1f4e5495a0714e2
|
FirebaseFirestore: 51ce079b9ddcaa481644164eda649d362c2a6396
|
||||||
FirebaseMessaging: d33971b7bb252745ea6cd31ab190d1a1df4b8ed5
|
FirebaseFirestoreInternal: 8b1d2b0a1b859b2ddbd63f448c416c5be7367405
|
||||||
FirebaseSharedSwift: 93426a1de92f19e1199fac5295a4f8df16458daa
|
FirebaseInstallations: 631b38da2e11a83daa4bfb482f79d286a5dfa7ad
|
||||||
FirebaseStorage: 20d6b56fb8a40ebaa03d6a2889fe33dac64adb73
|
FirebaseMessaging: a61bc42dcab3f7a346d94bbb54dab2c9435b18b2
|
||||||
|
FirebaseSharedSwift: 79f27fff0addd15c3de19b87fba426f3cc2c964f
|
||||||
|
FirebaseStorage: 550349b1e8f7315834ea08308696e9469d77135d
|
||||||
Flutter: cabc95a1d2626b1b06e7179b784ebcf0c0cde467
|
Flutter: cabc95a1d2626b1b06e7179b784ebcf0c0cde467
|
||||||
flutter_local_notifications: a5a732f069baa862e728d839dd2ebb904737effb
|
flutter_local_notifications: a5a732f069baa862e728d839dd2ebb904737effb
|
||||||
geolocator_apple: ab36aa0e8b7d7a2d7639b3b4e48308394e8cef5e
|
geolocator_apple: ab36aa0e8b7d7a2d7639b3b4e48308394e8cef5e
|
||||||
Google-Maps-iOS-Utils: 0a484b05ed21d88c9f9ebbacb007956edd508a96
|
Google-Maps-iOS-Utils: 0a484b05ed21d88c9f9ebbacb007956edd508a96
|
||||||
google_maps_flutter_ios: 0291eb2aa252298a769b04d075e4a9d747ff7264
|
google_maps_flutter_ios: 0291eb2aa252298a769b04d075e4a9d747ff7264
|
||||||
google_sign_in_ios: 205742c688aea0e64db9da03c33121694a365109
|
google_sign_in_ios: 205742c688aea0e64db9da03c33121694a365109
|
||||||
|
GoogleAdsOnDeviceConversion: d68c69dd9581a0f5da02617b6f377e5be483970f
|
||||||
|
GoogleAppMeasurement: 3bf40aff49a601af5da1c3345702fcb4991d35ee
|
||||||
GoogleDataTransport: aae35b7ea0c09004c3797d53c8c41f66f219d6a7
|
GoogleDataTransport: aae35b7ea0c09004c3797d53c8c41f66f219d6a7
|
||||||
GoogleMaps: 0608099d4870cac8754bdba9b6953db543432438
|
GoogleMaps: 0608099d4870cac8754bdba9b6953db543432438
|
||||||
GoogleSignIn: c7f09cfbc85a1abf69187be091997c317cc33b77
|
GoogleSignIn: fcee2257188d5eda57a5e2b6a715550ffff9206d
|
||||||
GoogleUtilities: 00c88b9a86066ef77f0da2fab05f65d7768ed8e1
|
GoogleUtilities: 00c88b9a86066ef77f0da2fab05f65d7768ed8e1
|
||||||
"gRPC-C++": cc207623316fb041a7a3e774c252cf68a058b9e8
|
"gRPC-C++": cc207623316fb041a7a3e774c252cf68a058b9e8
|
||||||
gRPC-Core: 860978b7db482de8b4f5e10677216309b5ff6330
|
gRPC-Core: 860978b7db482de8b4f5e10677216309b5ff6330
|
||||||
|
|||||||
@@ -340,10 +340,14 @@
|
|||||||
inputFileListPaths = (
|
inputFileListPaths = (
|
||||||
"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-input-files.xcfilelist",
|
"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-input-files.xcfilelist",
|
||||||
);
|
);
|
||||||
|
inputPaths = (
|
||||||
|
);
|
||||||
name = "[CP] Embed Pods Frameworks";
|
name = "[CP] Embed Pods Frameworks";
|
||||||
outputFileListPaths = (
|
outputFileListPaths = (
|
||||||
"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-output-files.xcfilelist",
|
"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-output-files.xcfilelist",
|
||||||
);
|
);
|
||||||
|
outputPaths = (
|
||||||
|
);
|
||||||
runOnlyForDeploymentPostprocessing = 0;
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
shellPath = /bin/sh;
|
shellPath = /bin/sh;
|
||||||
shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh\"\n";
|
shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh\"\n";
|
||||||
@@ -372,10 +376,14 @@
|
|||||||
inputFileListPaths = (
|
inputFileListPaths = (
|
||||||
"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-resources-${CONFIGURATION}-input-files.xcfilelist",
|
"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-resources-${CONFIGURATION}-input-files.xcfilelist",
|
||||||
);
|
);
|
||||||
|
inputPaths = (
|
||||||
|
);
|
||||||
name = "[CP] Copy Pods Resources";
|
name = "[CP] Copy Pods Resources";
|
||||||
outputFileListPaths = (
|
outputFileListPaths = (
|
||||||
"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-resources-${CONFIGURATION}-output-files.xcfilelist",
|
"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-resources-${CONFIGURATION}-output-files.xcfilelist",
|
||||||
);
|
);
|
||||||
|
outputPaths = (
|
||||||
|
);
|
||||||
runOnlyForDeploymentPostprocessing = 0;
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
shellPath = /bin/sh;
|
shellPath = /bin/sh;
|
||||||
shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-resources.sh\"\n";
|
shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-resources.sh\"\n";
|
||||||
@@ -490,7 +498,11 @@
|
|||||||
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
||||||
CLANG_ENABLE_MODULES = YES;
|
CLANG_ENABLE_MODULES = YES;
|
||||||
CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements;
|
CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements;
|
||||||
|
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution";
|
||||||
|
CODE_SIGN_STYLE = Manual;
|
||||||
CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
|
CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
|
||||||
|
DEVELOPMENT_TEAM = "";
|
||||||
|
"DEVELOPMENT_TEAM[sdk=iphoneos*]" = 456VVYXDFN;
|
||||||
ENABLE_BITCODE = NO;
|
ENABLE_BITCODE = NO;
|
||||||
INFOPLIST_FILE = Runner/Info.plist;
|
INFOPLIST_FILE = Runner/Info.plist;
|
||||||
LD_RUNPATH_SEARCH_PATHS = (
|
LD_RUNPATH_SEARCH_PATHS = (
|
||||||
@@ -499,6 +511,8 @@
|
|||||||
);
|
);
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = be.devdayronvl.TravelMate;
|
PRODUCT_BUNDLE_IDENTIFIER = be.devdayronvl.TravelMate;
|
||||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||||
|
PROVISIONING_PROFILE_SPECIFIER = "";
|
||||||
|
"PROVISIONING_PROFILE_SPECIFIER[sdk=iphoneos*]" = myiphone;
|
||||||
SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
|
SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
|
||||||
SWIFT_VERSION = 5.0;
|
SWIFT_VERSION = 5.0;
|
||||||
VERSIONING_SYSTEM = "apple-generic";
|
VERSIONING_SYSTEM = "apple-generic";
|
||||||
@@ -673,7 +687,11 @@
|
|||||||
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
||||||
CLANG_ENABLE_MODULES = YES;
|
CLANG_ENABLE_MODULES = YES;
|
||||||
CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements;
|
CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements;
|
||||||
|
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution";
|
||||||
|
CODE_SIGN_STYLE = Manual;
|
||||||
CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
|
CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
|
||||||
|
DEVELOPMENT_TEAM = "";
|
||||||
|
"DEVELOPMENT_TEAM[sdk=iphoneos*]" = 456VVYXDFN;
|
||||||
ENABLE_BITCODE = NO;
|
ENABLE_BITCODE = NO;
|
||||||
INFOPLIST_FILE = Runner/Info.plist;
|
INFOPLIST_FILE = Runner/Info.plist;
|
||||||
LD_RUNPATH_SEARCH_PATHS = (
|
LD_RUNPATH_SEARCH_PATHS = (
|
||||||
@@ -682,6 +700,8 @@
|
|||||||
);
|
);
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = be.devdayronvl.TravelMate;
|
PRODUCT_BUNDLE_IDENTIFIER = be.devdayronvl.TravelMate;
|
||||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||||
|
PROVISIONING_PROFILE_SPECIFIER = "";
|
||||||
|
"PROVISIONING_PROFILE_SPECIFIER[sdk=iphoneos*]" = myiphone;
|
||||||
SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
|
SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
|
||||||
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
|
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
|
||||||
SWIFT_VERSION = 5.0;
|
SWIFT_VERSION = 5.0;
|
||||||
@@ -696,7 +716,11 @@
|
|||||||
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
||||||
CLANG_ENABLE_MODULES = YES;
|
CLANG_ENABLE_MODULES = YES;
|
||||||
CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements;
|
CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements;
|
||||||
|
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution";
|
||||||
|
CODE_SIGN_STYLE = Manual;
|
||||||
CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
|
CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
|
||||||
|
DEVELOPMENT_TEAM = "";
|
||||||
|
"DEVELOPMENT_TEAM[sdk=iphoneos*]" = 456VVYXDFN;
|
||||||
ENABLE_BITCODE = NO;
|
ENABLE_BITCODE = NO;
|
||||||
INFOPLIST_FILE = Runner/Info.plist;
|
INFOPLIST_FILE = Runner/Info.plist;
|
||||||
LD_RUNPATH_SEARCH_PATHS = (
|
LD_RUNPATH_SEARCH_PATHS = (
|
||||||
@@ -705,6 +729,8 @@
|
|||||||
);
|
);
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = be.devdayronvl.TravelMate;
|
PRODUCT_BUNDLE_IDENTIFIER = be.devdayronvl.TravelMate;
|
||||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||||
|
PROVISIONING_PROFILE_SPECIFIER = "";
|
||||||
|
"PROVISIONING_PROFILE_SPECIFIER[sdk=iphoneos*]" = myiphone;
|
||||||
SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
|
SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
|
||||||
SWIFT_VERSION = 5.0;
|
SWIFT_VERSION = 5.0;
|
||||||
VERSIONING_SYSTEM = "apple-generic";
|
VERSIONING_SYSTEM = "apple-generic";
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ import '../blocs/user/user_state.dart';
|
|||||||
|
|
||||||
/// Service for managing user operations with Firestore and Firebase Auth.
|
/// Service for managing user operations with Firestore and Firebase Auth.
|
||||||
///
|
///
|
||||||
|
///
|
||||||
/// This service provides functionality for user management including creating,
|
/// This service provides functionality for user management including creating,
|
||||||
/// retrieving, updating, and deleting user data in Firestore. It also handles
|
/// retrieving, updating, and deleting user data in Firestore. It also handles
|
||||||
/// user authentication state and provides methods for user profile management.
|
/// user authentication state and provides methods for user profile management.
|
||||||
|
|||||||
Reference in New Issue
Block a user