Packaging iOS automatisé
Du commit Git aux artefacts archivables, chaque étape laisse une trace vérifiable.
Un packaging automatisé fiable ne se résume pas à une commande. Il faut figer la version du code source, l’état des dépendances, la version de Xcode, les paramètres de signature et d’export ainsi que la destination des artefacts, afin de localiser tout échec dans les journaux.
-
01 · Déclenchement
Figer le commit et les paramètres de la tâche
Entrée : Adresse du dépôt, branche, hash de commit, configuration de build et Scheme cible. Un webhook ou une tâche en file ne transmet que les identifiants ; le script ne doit pas deviner la branche à la volée.
Point d’échec : Commit inexistant, sous-modules non synchronisés, droits insuffisants ou lecture par la même tâche d’une tête de branche en évolution.
-
02 · Dépendances
Restaurer le cache et installer les dépendances
Entrée : Package.resolved, Podfile.lock ou autre fichier de verrouillage. La clé de cache doit au minimum inclure le résumé du verrouillage des dépendances, la version de Xcode et l’architecture cible.
Point d’échec : Dérive du fichier de verrouillage, cache incompatible avec la chaîne d’outils, identifiants de dépendances privées expirés ou espace disque insuffisant.
-
03 · Archivage
Exécuter xcodebuild archive
Entrée : Chemin du Workspace ou du Project, Scheme, Configuration, Destination et chemin d’archive. Affichez d’abord la version des outils, puis lancez l’archivage.
Point d’échec : Erreur de compilation, échec des tests, incompatibilité de la version cible, DerivedData pollué ou script de build dépendant d’un chemin absolu local.
-
04 · Signature
Injecter les éléments de signature pour la tâche
Entrée : Certificats, profils de provisioning et variables d’environnement nécessaires, avec les permissions minimales. Injectez ces éléments au début de la tâche et supprimez-les à la fin.
Point d’échec : Certificat et profil incompatibles, périmètre de permissions incorrect, problème de validité ou utilisation par erreur du même trousseau temporaire par plusieurs tâches.
-
05 · Export
Exporter et vérifier les fichiers
Entrée : Fichier d’archive et configuration ExportOptions. Après l’export, consignez le nom, la taille, le résumé de contrôle et l’heure de génération, au lieu de vérifier seulement l’existence du répertoire.
Point d’échec : Méthode d’export incompatible avec la configuration de signature, droits insuffisants sur le répertoire de sortie ou code de sortie non nul ignoré par le script.
-
06 · Archivage
Rassembler les journaux et les artefacts
Sortie : Artefacts de build, fichier d’archive, rapport de tests, journaux de build, hash de commit et identifiant de tâche. Nettoyez le répertoire de travail uniquement après confirmation de la réussite du téléversement.
Point d’échec : Interruption du téléversement, collision de noms d’artefacts, champs sensibles dans les journaux ou nettoyage effectué avant confirmation du résultat.