Passer au contenu principal
Guide de tutoriel

Comment migrer une application Capacitor vers le gestionnaire de packages Swift

Learn how to migrate an existing Capacitor iOS app from CocoaPods to Swift Package Manager, what changes in the iOS project, and how to verify the migration.

Martin Donadieu

Martin Donadieu

Spécialiste du contenu

Comment migrer une application Capacitor vers le gestionnaire de packages Swift

Capacitor 8 crée de nouveaux projets iOS avec le gestionnaire de packages Swift (SPM) par défaut. Les applications existantes qui utilisent encore CocoaPods peuvent migrer également, mais la voie la plus sûre dépend de la quantité de personnalisations natives iOS que votre application a.

Cet guide vous guide à travers les changements, ce que vous devez sauvegarder et les deux chemins de migration pratiques : utiliser l'assistant de migration Capacitor ou restructurer le projet iOS avec SPM.

Pourquoi migrer maintenant

CocoaPods se tourne vers un tronc en lecture seule. Le plan actuel est de faire cesser l'acceptation de nouvelles podspecs sur 2 décembre 2026Les builds existants devraient continuer à fonctionner, mais les nouvelles publications et les mises à jour de dépendances qui dépendent de la branche trunk ne seront plus publiées après le basculement.

SPM est également la direction que Capacitor est en train de prendre. Capacitor a soutenu la possibilité de choisir CocoaPods ou SPM depuis Capacitor 6, et Capacitor 8 crée désormais des projets iOS SPM par défaut.

Quels changements dans un projet SPM Capacitor

La migration de CocoaPods vers SPM remplace la couche de dépendances iOS. L'application web, le projet Android et la plupart des commandes de flux de travail Capacitor restent les mêmes.

CapApp-SPM remplace le fichier Podfile

Dans une application CocoaPods, les dépendances iOS sont connectées via ios/App/Podfile, Podfile.lock, Pods/et le fichier généré .xcworkspace.

Dans une application SPM, Capacitor crée un package local nommé CapApp-SPMCe package devient le point central où Capacitor référence vos dépendances de plugins iOS natifs. Les Capacitor CLI sont mis à jour CapApp-SPM lorsque vous synchronisez les plugins, il convient donc de les traiter comme des sorties générées et d'éviter de les modifier manuellement.

debug.xcconfig remplace la configuration Pods

L’assistant de migration crée également un fichier généré debug.xcconfigCe fichier contient les paramètres de construction que CocoaPods fournissait précédemment à travers ses fichiers xcconfig générés.

Après la migration, vous devrez peut-être ajouter debug.xcconfig à la configuration du projet Xcode si l'assistant vous le suggère.

Tout plugin doit supporter SPM

Vous ne pouvez pas mixez CocoaPods et SPM dans le même projet iOS Capacitor. Avant de migrer, vérifiez chaque Capacitor et plugin Cordova dans package.json.

Si un plugin ne supporte pas encore SPM, mettez-l’à jour, le remplacez ou migrez le plugin en premier. Les plugins Swift simples peuvent souvent être convertis avec Ionic’s capacitor-plugin-convertermais les plugins avec des layouts Objective-C et Swift plus complexes peuvent nécessiter du travail manuel.

Qu'est-ce à sauvegarder en premier

Démarrez d'une branche Git propre et commitez votre état actuel avant de toucher le projet iOS. Ensuite, listez les fichiers natifs dont votre application a besoin.

Fichiers courants à conserver de ios/App/ comprennent :

  • App/Info.plist
  • App/AppDelegate.swift
  • App/SceneDelegate.swiftSi votre application en a un
  • App/Assets.xcassets/
  • App/Base.lproj/
  • App/App.entitlements
  • App/GoogleService-Info.plistSi vous utilisez Firebase
  • Personnalisé .xcconfig fichiers
  • Paramètres de signature, identifiant de l'application, ID d'équipe, et paramètres de profil de provisionnement

Conservez également tout fichier natif Swift, Objective-C, framework, extension ou SDK que vous avez ajouté en dehors du modèle standard Capacitor.

Option 1 : Utilisez l'assistant de migration Capacitor

Utilisez ce chemin lorsque votre projet iOS comporte des éditions natives personnalisées que vous ne souhaitez pas perdre.

Exécutez l'assistant depuis la racine de votre projet Capacitor :

bunx cap spm-migration-assistant

L'assistant supprime l'infrastructure CocoaPods, crée le package local, génère des références de package à partir de vos plugins installés et crée les fichiers de configuration SPM générés. CapApp-SPM Lorsqu'il a terminé, ouvrez le projet :

Lorsqu'il a terminé, ouvrez le projet :

bunx cap open ios

Ensuite, suivez les étapes manuelles Xcode indiquées par l'assistant. Dans la plupart des projets, cela signifie :

  1. Ajouter CapApp-SPM comme une dépendance de package local.
  2. Ajoutez le fichier généré debug.xcconfig à la configuration de l'application.
  3. Résolvez les avertissements concernant les plugins qui ne peuvent pas être convertis en SPM.
  4. Construirez l'application à partir de Xcode une fois avant de mettre à jour CI.

Après que le projet Xcode a été construit, synchronisez à nouveau :

bunx cap sync ios

Option 2 : Re-scaffolder le projet iOS avec SPM

Utilisez cette option lorsque votre ios/ répertoire est proche du modèle par défaut Capacitor et que vous pouvez enregistrer les fichiers personnalisés ultérieurement.

Premièrement, assurez-vous que les fichiers listés dans la section de sauvegarde sont commités ou copiés quelque part en sécurité. Ensuite, supprimez et recréer le projet iOS avec SPM :

rm -rf ios
bunx cap add ios --packagemanager SPM
bunx cap sync ios

Restaurer les fichiers natifs dont votre application a besoin, puis ouvrez le projet :

bunx cap open ios

Cette méthode est souvent plus propre qu'une migration en place car elle vous donne un modèle Capacitor 8 iOS frais. Le compromis est que vous devez réappliquer soigneusement la signature, les autorisations, les fichiers Firebase, les modifications de code source natif et tout paramétrage Xcode personnalisé.

Nouvelles applications Capacitor

Pour une nouvelle application, Capacitor 8 utilise SPM par défaut lors de l'ajout d'iOS :

bunx cap add ios

Si vous devez être explicite, vous pouvez toujours passer l'option de gestionnaire de package :

bunx cap add ios --packagemanager SPM

Mettre à jour CI après la migration

Une fois l'application construite localement, mettez à jour CI/CD afin qu'elle ne suppose plus CocoaPods.

Supprimer les étapes qui exécutent :

pod install

Supprimer également les caches pour :

  • ios/App/Pods
  • ios/App/Podfile.lock
  • Les dépôts de spécifications CocoaPods, si votre flux de travail les a stockés uniquement pour cette application

Keep your regular web build and Capacitor sync steps. A typical iOS job should install JavaScript dependencies, build the web assets, sync Capacitor, and then build with Xcode:

bun install --frozen-lockfile
bun run build
bunx cap sync ios

Liste de vérification de la migration

Avant la migration :

  • Créez une nouvelle branche Git.
  • Commitez l'application en cours de travail.
  • Vérifiez que chaque plugin installé prend en charge SPM.
  • Enregistrez les fichiers et les paramètres de signature iOS personnalisés.
  • Confirmez que l'application se construit avant la migration.

Pendant la migration :

  • Exécutez bunx cap spm-migration-assistant ou re-générez ios/.
  • Ajoutez CapApp-SPM dans Xcode si nécessaire.
  • Ajoutez debug.xcconfig en Xcode si nécessaire.
  • Restaurer les fichiers natifs spécifiques à l'application.
  • Démarer bunx cap sync ios.

Après la migration :

  • Construire et exécuter l'application dans Xcode.
  • Supprimer les fichiers CocoaPods restants.
  • Supprimer pod install de la CI.
  • Vérifier que la signature de versionnalisation fonctionne toujours.
  • Exécuter l'application sur au moins un simulateur et un appareil réel avant de le mettre en production.

Résolution des problèmes

context : Page/zone : Support / page de support premium ou section de support du pied de page. Rôle : Titre de section ou de page. Vu dans : page support-policy.astro. Clé de message `support_policy_troubleshooting_title` (Titre de la politique de support pour la résolution des problèmes). bunx cap sync ios encore.

Si la migration échoue en raison d'un plugin, vérifiez si le plugin dispose d'une mise à jour avec prise en charge de SPM. Pour les plugins que vous gérez, migrez d'abord le package du plugin puis revenez à la migration de l'application.

Lorsque l'application se construit localement mais que la CI échoue, vérifiez les anciennes hypothèses de CocoaPods. Les causes courantes sont un chemin de construction forcé, une commande périmée ou une mise en cache provenant de précédentes constructions. .xcworkspace Conclusion pod install Migrer une application __CAPGO_KEEP_0__ vers Swift Package Manager est principalement question de remplacer la configuration de dépendances iOS. Pods/ le SPM prend en charge les références de dépendances,

remplace la configuration de construction générée par CocoaPods, et la CI n'a plus besoin

Migrating a Capacitor app to Swift Package Manager is mostly about replacing the iOS dependency wiring. CapApp-SPM . Pour les projets proches du modèle par défaut, une restructuration SPM propre est souvent plus rapide et plus facile à comprendre. debug.xcconfig Pour les projets iOS personnalisés, commencez par pod install.

. Pour les projets proches du modèle par défaut, une restructuration SPM propre est souvent plus rapide et plus facile à comprendre. bunx cap spm-migration-assistantPour les projets iOS personnalisés, commencez par

Ressources

Continuez de la section Comment migrer une application Capacitor vers le gestionnaire de packages Swift

Si vous utilisez Comment migrer une application Capacitor vers le gestionnaire de packages Swift pour planifier la migration et les opérations d'entreprise, connectez-l’à Capgo Enterprise pour le flux de travail du produit dans Capgo Enterprise Alternatives aux plugins d'entreprise d'Ionic pour le flux de travail du produit dans les alternatives d'Ionic Enterprise Plugin Capgo Alternatives pour le flux de travail du produit dans Capgo Alternatives Capgo Consulting pour le flux de travail du produit dans Capgo Consulting, et Capgo Support Premium pour le flux de travail du produit dans Capgo Support Premium.

Actualisations instantanées pour les applications Capacitor

Quand un bug de la couche web est en direct, expédiez la correction par le biais de Capgo au lieu d'attendre des jours pour l'approbation de l'app store. Les utilisateurs reçoivent la mise à jour en arrière-plan tandis que les changements natifs restent dans la voie de revue normale.

un soutien humain de Martin

Démarrer maintenant

Dernières actualités de notre Blog

Capgo vous donne les meilleures informations dont vous avez besoin pour créer une application mobile vraiment professionnelle.