Présentation
Il est possible de construire et de déployer des applications Mac et iOS sans avoir à ouvrir Xcode. Pour cela, il faut installer Xcode, mais il n'est pas nécessaire de l'ouvrir. Les outils xcodebuild, notarytool, stapler et devicectl sont inclus dans Xcode et peuvent être exécutés depuis un shell.
Architecture et fonctionnement
Pour commencer, il faut installer Xcode et s'assurer que c'est le bon outil de ligne de commande qui est sélectionné. Ensuite, il faut installer XcodeGen, qui permet de générer et de gérer des projets Xcode de manière automatique. XcodeGen crée un fichier project.yml qui contient toutes les configurations du projet, et qui est utilisé pour recréer le dossier .xcodeproj à chaque build.
xcodebuild -project project.xcodeproj -scheme scheme -configuration Release
Il faut également configurer Xcode une fois pour créer un certificat de développeur et stocker un mot de passe de notarisation. Le certificat de développeur est utilisé pour signer les applications, et le mot de passe de notarisation est utilisé pour authentifier les uploads d'applications vers Apple.
Implications et limites
La mise en place de ce processus nécessite quelques étapes manuelles, mais une fois configuré, il est possible de construire et de déployer des applications de manière automatique. Il est important de noter que les mots de passe de notarisation peuvent devenir obsolètes si le mot de passe Apple ID est modifié. Il est également important de stocker les mots de passe de notarisation de manière sécurisée, par exemple en utilisant un gestionnaire de mots de passe comme 1Password.
Conclusion
En résumé, il est possible de construire et de déployer des applications Mac et iOS sans avoir à ouvrir Xcode. Il faut installer Xcode, XcodeGen et configurer les outils de ligne de commande. Il est également important de stocker les mots de passe de notarisation de manière sécurisée et de les mettre à jour régulièrement. Avec ces étapes, il est possible de créer un pipeline de build et de déploiement automatique pour les applications Mac et iOS.