C’est une nouveauté de Xcode 9 un petit peu oubliée, et qui pourrait pourtant s’avérer bien pratique. La dernière version de l’outil de développement conçu par Apple intègre une nouvelle fonction qui peut servir dans le cadre d’un script d’automatisation, mais pas seulement : des URL schemes.
Cette technologie n’a rien de nouveau, elle existe sur macOS (et iOS) depuis plusieurs années. En revanche, c’est avec la neuvième version de Xcode qu’elle est proposée. À quoi sert-elle ? Les URL schemes sont en fait des liens classiques, mais qui ne sert pas à ouvrir une page web dans le navigateur. À la place, ils ouvrent une autre app, Xcode dans notre cas, et surtout une interface ou une fonction spécifique à l’intérieur de l’app.
Dans le cas de Xcode, plusieurs fonctions sont ainsi accessibles par ces liens spécifiques. La plus visible est utilisée par GitHub, le service d’hébergement de code source : des liens ont été ajoutés sur les projets liés à iOS ou macOS, pour les ouvrir directement dans Xcode. Le bouton « Open in Xcode » repose en fait sur les URL schemes, avec des liens qui ressemblent à ceci :
xcode://clone?repo=https%3A%2F%2Fgithub.com%2Fthompsonate%2FShifty
Comme vous pouvez le constater, vous pouvez placer l’URL de n’importe quel dépôt Git à la fin et obtenir le même fonctionnement. Peut-être que les concurrents de GitHub le feront, mais en attendant, vous pouvez aussi le faire vous-même, avec vos propres dépôts Git.
Une autre utilisation déjà mise en pratique est de faire un lien vers un fichier spécifique ouvert dans Xcode, et même vers une ligne précise dans le fichier. Cela peut servir dans une documentation associée à un projet, comme Apple le fait dans certains de ses projets (exemple).
En matière d’automatisation, Xcode 9 propose plusieurs liens qui peuvent servir au quotidien. Par exemple, cette URL affiche la fenêtre des appareils connectés :
xcdevice://showDevicesWindow
Et en ajoutant un paramètre, vous pouvez même l’utiliser pour activer automatiquement le développement pour un appareil iOS, en utilisant son identifiant unique :
xcdevice://enableForDevelopment?identifier=<Device_Identifier>
Autre fonction potentiellement utile, chaque panneau de réglage dans Xcode 9 est associé à un lien unique. Vous trouverez la liste complète, ainsi que des explications pour les différentes URL schemes ajoutées par Apple dans cet article de blog.