Migrer vers les API d'extension Swift dans les modules principaux

Nous fusionnons nos SDK d'extension Swift avec les SDK principaux afin de rendre les API Swift natives plus largement disponibles et d'améliorer notre capacité à prendre en charge les nouvelles fonctionnalités du langage Swift à l'avenir. Les modifications que nous apportons et leurs impacts attendus sur vos projets sont documentés ci-dessous.

Ce qui change

À partir de la version 10.17.0 du SDK Firebase pour Apple, les SDK d'extension Swift ont été fusionnés avec leurs SDK principaux correspondants. Par exemple, toutes les API du module FirebaseFirestoreSwift ont été ajoutées à FirebaseFirestore. Vous n'avez donc plus besoin d'importer le module FirebaseFirestoreSwift pour accéder à ces API.

Comme toutes les extensions Swift font désormais partie des modules principaux, les SDK d'extension ne sont plus nécessaires et sont obsolètes. L'inclusion ou l'utilisation des SDK d'extension Swift générera un avertissement du compilateur. Dès février 2024, nous cesserons complètement de publier les extensions Swift.

★ Remarque : Toutes les versions actuellement ou précédemment publiées des extensions Swift continueront de fonctionner. Toutefois, nous vous recommandons de migrer votre application pour utiliser les API Swift du module principal afin de continuer à recevoir des correctifs et de profiter des modifications et des nouvelles fonctionnalités.

Dates importantes concernant ce changement

En octobre 2023

Les SDK d'extension Swift ont été fusionnés avec les SDK principaux, puis abandonnés au profit de ces derniers. Consultez les notes de version de la version 10.17.0 annonçant ce changement.

Vous pouvez désormais utiliser les API du SDK d'extension Swift directement depuis les modules du SDK principal. L'utilisation des SDK d'extension sera toujours possible jusqu'à la prochaine version majeure, mais un avertissement d'obsolescence sera affiché lors de l'utilisation.

Dès février 2024

Nous ne publierons plus de nouvelles versions des extensions Swift et nous les supprimerons du fichier Package.swift de Firebase. Les anciennes versions continueront de fonctionner, mais ne recevront pas de mises à jour.

Migrer vers les API Swift natives à partir du module principal

Si vous n'utilisez pas actuellement les SDK d'extension Swift, aucune action n'est requise. Si vous utilisez un SDK d'extension Swift, apportez les modifications suivantes à votre projet.

Modifications apportées à l'espace de travail

Swift Package Manager

Après avoir mis à jour Firebase vers la version 10.17.0 ou ultérieure, accédez à la section "Frameworks, Libraries, and Embedded Content" (Frameworks, bibliothèques et contenu intégré) de l'onglet "General" (Général) des paramètres de votre cible, puis supprimez le SDK d'extension Swift (par exemple, FirebaseFirestoreSwift).

CocoaPods

Après avoir mis à jour Firebase vers la version 10.17.0 ou ultérieure, accédez à votre Podfile et supprimez la ligne correspondant à la dépendance de votre projet en ajoutant la section "frameworks" pour votre cible, puis supprimez le SDK d'extension Swift (par exemple, pod FirebaseFirestoreSwift). Ensuite, exécutez à nouveau la commande pod install.

Distribution ZIP et Carthage

Après avoir mis à jour Firebase vers la version 10.17.0 ou ultérieure, supprimez toutes les extensions Swift xcframeworks de votre projet (par exemple, FirebaseFirestoreSwift.xcframework).

Modifications du code source

Pour tous les SDK d'extension Swift que vous avez déjà utilisés, procédez comme suit :

  1. Supprimez toutes les instructions d'importation faisant référence au SDK d'extension Swift. Si le SDK principal n'a pas été importé séparément, vous devrez remplacer l'importation de l'extension Swift par l'importation du SDK principal en supprimant Swift à la fin de la ligne.
  2. Si vous avez utilisé l'espace de noms de module explicite de Swift pour référencer des types de SDK d'extension Swift, vous devrez les remplacer par le SDK principal correspondant. Par exemple, FirebaseFirestoreSwift.QueryPredicate doit être renommé FirebaseFirestore.QueryPredicate.