Se préparer à développer pour Mac OS X depuis Windows avec Delphi / RAD Studio

Il y a une chose très importante à connaître lorsqu'on désire diffuser un programme sur les appareils de la marque Apple : la sécurisation et la signature sont partout depuis longtemps. C'est parfois un vrai bordel même s'ils font des progrès avec chaque version de Xcode.

Travaillant sous Delphi, en théorie Xcode n'est pas censé nous être utile, mais en fait l'environnement de développement d'Apple va gérer les certificats pour nous. Delphi les affichant ou les utilisant par l'intermédiaire du Platform Assistant Server fourni par Embarcadero.

Pour développer des applications pour Mac, vous avez donc besoin :
- d'un ordinateur (ou d'une machine virtuelle) sous Windows
- d'un ordinateur sous OS X (et donc d'un Mac puisque Apple interdit l'utilisation de son système d'exploitation sur un ordinateur qui ne viendrait pas de chez eux)

Pas besoin d'avoir le dernier appareil dernier cri : un Mac Mini suffit. Vous pouvez même l'utiliser sans clavier, souris ni écran à condition d'y installer un logiciel de prise de contrôle à distance comme par exemple Team Viewer.

Dans mon cas, je travaille sur iMac, avec une machine virtuelle Windows 8.1 tournant grâce à VM Ware Fusion. Cet ordinateur a remplacé mon PC depuis plusieurs années alors que Windows reste mon environnement de travail privilégié (pour conserver mon vieux client mail (de 1997) et ne pas racheter les licences hors de prix des logiciels de compta et gestion commerciale, mais c'est une autre histoire). N'ayant qu'un core i5 et un disque dur à plateau, c'est parfois poussif, mais ça tient la route en attendant des SSD de 2 To...

L'environnement matériel étant vu, passons aux logiciels.

Côté Mac vous devez installer Xcode en le téléchargeant depuis l'AppStore (ce qui permettra sa mise à jour automatique), ce que je vous recommande, ou depuis le Developer Member Center d'Apple où vous trouverez également ses versions beta (à éviter en développement avec un outil tiers comme c'est notre cas). Ne le prenez nulle part ailleurs: des versions vérolées ont circulé et tant qu'à diffuser vos applications, autant éviter de flinguer dès le départ les ordinateurs de vos utilisateurs (en plus du vôtre) !

Vous devez également installer Platform Assistant Server (PAServer) fourni avec Delphi ou RAD Studio. C'est le fichier ./paserver/paserver.pkg de votre dossier d'installation (côté Windows). Déplacez le ou copiez le sur une clé USB. Il vous servira sur tous les Mac que vous voudrez utiliser en développement ou test depuis votre environnement de développement.

L'installation de PAServer est simple : cliquez sur le fichier pkg et suivez les instructions. Exécutez ensuite PAServer quand vous en avez besoin (ou maintenant pour finir la configuration de votre environnement).

C'est tout côté Mac pour le moment.

Côté Windows, vous devez bien entendu avoir installé Delphi ou RAD Studio. Rendez-vous dans outils/options puis le gestionnaire de profils de connexion où vous devez ajouter une entrée pour chaque Mac sur lequel vous désirez travailler. Ceux-ci doivent avoir PAServer lancé afin de tester la connexion. choisissez une connexion par défaut.

Rendez-vous ensuite dans le gestionnaire de SDK où vous allez également ajouter le SDK de Mac OS X par rapport à votre profil de connexion par défaut.

Reste maintenant la partie gonflante (mais heureusement simplifiée quand on a les bonnes infos) : les certificats de développement.

La première chose à faire est de s'inscrire au programme développeur d'Apple. Il coûte une centaine d'euros chaque année et permet de diffuser ses applications depuis les AppStore (Mac et iOS) ou en direct (Mac uniquement, sauf à avoir un compte entreprise pour la distribution ad-hoc).

Une fois l'inscription validée, on obtient un accès à la plateforme des développeurs sur laquelle on doit créer plusieurs certificats : le premier pour le développement Mac, puis un pour la distribution via l'AppStore et un dernier pour la distribution hors AppStore.

Le certificat de développeur Mac Developer servira dans notre cas. Il n'est utilisé que pour la distribution en interne des applications en développement.

Les 2 (ou plutôt 4) autres certificats seront plus utiles :
- pour la distribution vers l'AppStore il faudra utiliser "3rd Party Mac Developer Application" et "3rd Party Mac Developer Installer"
- pour la distribution en direct, depuis votre site web, par email ou d'autres sites de téléchargement, utilisez "Developer ID Application" et "Developer ID Installer"

Pour les enregistrer sur votre Mac, passez par Xcode en ajoutant votre compte développeur dans les préférences, puis en allant voir les détails et en téléchargeant tous les certificats d'un clic (bon, je dis ça maintenant, mais ça aura sans doute encore bougé d'ici à ce que vous lisiez ce texte). Si vous ne trouvez pas comment faire dans Xcode, téléchargez les un par un et ouvrez les sur le Mac pour les ajouter à votre trousseau de sécurité.

Ceci étant fait, vous pouvez repasser sur Windows.

Maintenant vous pouvez prérenseigner les paramètres les plus utilisés dans les outils / options / approvisionnement où vous choisissez la configuration "Mac Magasin d'Application" (nom susceptible de changer) pour y mettre le nom des deux certificats que vous utiliserez le plus (soit distribution AppStore, soit distribution directe).

Vous pourrez changer cette information dans les options de chaque projet, ce qui peut être utile si vous développez tantôt pour l'AppStore, tantôt pour de la distribution directe... avec un ou plusieurs comptes développeur (en cas de développement pour des tiers ou en équipe).

Sur le développement lui-même, j'y reviendrai probablement très vite sur le blog. Il suffit de passer par la création d'application multiplateforme et d'utiliser les composants de Firemonkey.

Pour la distribution d'applications Mac vous pouvez à ce jour compiler soit en normal (pour votre usage direct ou transmettre le fichier .app à votre équipe), soit en magasin d'application.

Pour obtenir un fichier d'installation prêt à l'emploi vous devrez passer par l'option "déploiement" du menu "projets" de Delphi. Cet écran liste tous les fichiers utiles pour l'application et va permettre de générer un package d'installation d'un simple clic.

Une fois le fichier .pkg généré et disponible sur le Mac dans l'arborescence de PAServer, vous pouvez soit le transmettre à quelqu'un d'autre (si vous avez utilisé les certificats de distribution directe), soit l'envoyer à Apple en utilisant Application Loader qui est accessible depuis le menu Xcode/Open Developer Tool/Application Loader de Xcode. Je vous recommande de le garder dans le dock, histoire de pas lancer Xcode à chaque fois que vous voulez uploader un binaire.

Pour la distribution directe, rien à faire de plus. Pour la distribution via l'AppStore vous devrez passer par une phase de validation de vos envois et suivre quelques contraintes : le numéro de build doit s'incrémenter entre deux envois, des icones dans toutes les tailles possibles doivent être disponibles sur l'application, et vous devez avoir créé une fiche pour votre application sur iTunes Connect.

Voilà, je pense avoir tout dit, au moins dans les grandes lignes. Avec ça vous devez être opérationnel. Si un truc n'est pas clair, contactez moi.


Mug Pascal case in AlexandrieMug Toucan DX dans la baie de Rio