Développement d'applications Mac OS X

De Appmethod Topics
Aller à : navigation, rechercher

Remonter à Applications multi-périphériques - Index

Vous pouvez utiliser Appmethod pour créer des applications Mac OS X, et utiliser votre Mac en tant que plate-forme intermédiaire requise pour les apps iOS.

Du point de vue matériel, en plus du PC de développement, vous avez besoin d'un Mac connecté à l'ordinateur de développement (sur lequel Appmethod est installé) ; par exemple, en utilisant un réseau local (LAN). Voir Prérequis de plate-forme FireMonkey pour obtenir la liste des exigences système, à la fois pour votre PC de développement et le Mac. Voir aussi Travailler avec un Mac et un PC.

Le compilateur Object Pascal pour Mac OS X est DCCOSX.

Le compilateur C++ pour Mac OS X est BCCOSX. Le lieur C++ pour Mac OS X est XLINK.

Configuration de votre environnement de développement pour Mac OS X

  • Connexion physique : Assurez-vous que Appmethod peut se connecter au Mac cible :
    Néanmoins, si l'application OS X n'a pas de profil de connexion assigné, et que vous essayez d'effectuer une opération qui requiert un profil de connexion, l'EDI affiche le message suivant :
    Un profil de connexion est requis pour cette opération mais il n'a pas été assigné.
    Voulez-vous assigner ou créer un profil maintenant ?
    L'EDI vous guide ensuite à travers les étapes nécessaires de la création d'un profil de connexion. Sur le dialogue Propriétés de la plate-forme, vous pouvez assigner un profil existant à la plate-forme cible, ou bien sélectionner Ajouter nouveau pour créer un nouveau profil de connexion à assigner à la plate-forme cible.
  • Platform Assistant : Sur le Mac, installez Platform Assistant et exécutez-le.
  • Plate-forme cible : Dans l'EDI, définissez la plate-forme cible. Lorsque vous créez une application multi-périphérique Object Pascal ou Appmethod C++, Appmethod définit Win32 en tant que plate-forme cible par défaut.
    Pour changer la plate-forme cible en OS X :
    1. Cliquez avec le bouton droit sur le noeud Plates-formes cible dans le Gestionnaire de projets.
    2. Cliquez sur Ajouter une plate-forme et sélectionnez OS X.
  • Profil de connexion : Dans l'EDI, créez et assignez un profil de connexion (un groupe de paramètres qui caractérisent la connexion à votre machine cible ; voir Création et test d'un profil de connexion sur le PC de développement).
  • Pour le développement C++ :

Acquisition des identifiants Apple requis

Développement, test et auto-distribution des applications OS X : Apple ne vous impose pas de vous enregistrer ou de vous joindre au programme développeur Apple. Bien que vous deviez obtenir un identifiant Apple afin de télécharger l'EDI de Xcode depuis l'App Store, ni Xcode ni votre ordinateur ne nécessite une forme quelconque d'enregistrement. Toutefois, vous devez rejoindre le programme développeur Mac si vous voulez distribuer vos applications via l'App Store Mac. (De façon similaire, vous devez vous joindre au programme développeur iOS si vous voulez distribuer vos apps via l'App Store iOS.) Rejoindre le programme développeur Mac vous permet d'accéder à une profusion de ressources développeur, qui sont autrement indisponibles.

Vous aurez besoin de plusieurs identifiants (ID), accessibles auprès d'Apple Computers et susceptibles d'être modifiés par Apple Computers, comme suit :

Identifiants Apple et iTunes

Afin d'acheter des apps (depuis l'App Store Mac) ou de la musique (depuis iTunes Store), vous devez acquérir un identifiant Apple (gratuit) et un compte iTunes (gratuit) :

Identifiant développeur Apple

Afin de distribuer vos applications Mac dans l'App Store Mac, vous devez :

  • Acquérir un identifiant développeur Apple (gratuit)
  • Rejoindre un programme développeur Mac (99 $ par an pour un développeur individuel)
    Le programme développeur Mac fournit les outils nécessaires sur le Mac (tels que Xcode et le SDK), la documentation en ligne et le support. Des programmes développeur Mac distincts sont disponibles pour les individus, les sociétés et les universités, et l'enregistrement pour les programmes en groupe est moins onéreux par personne que pour un développeur particulier.
  • Obtenir les certificats de signature sur https://developer.apple.com/account/mac/certificate/ (Utilitaire Certificat Développeur d'applications Mac).
    Vous aurez probablement besoin des types suivants de certificats de signature (des noms de certificats hypothétiques sont donnés) :
    • Certificat de développement :
      • Certificat de développement d'app Mac
    • Certificats de distribution :
      • Certificats de l'App Store Mac :
        • Certificat d'app Mac
        • Certificat d'installateur Mac
      • Certificats d'identifiant développeur :
        • Certificat d'application d'identifiant développeur
        • Certificat d'installateur d'identifiant développeur

Vous devez fournir vos deux noms de certificats de distribution dans la page Approvisionnement quand vous effectuez la construction d'un produit pour la soumission à l'App Store Mac.

La mise en SandBox est obligatoire pour la soumission des applications à l'App Store Mac

Le mécanisme Sandbox restreint l'accès d'une application aux ressources système ; c'est un moyen pour Apple de garantir que les applications sont sécurisées et ne contiennent pas de programmes malveillants.

Utilisation de l'EDI pour la mise en Sandbox, la signature de code et la préparation de votre application (méthode recommandée)

Si vous voulez soumettre votre application à l'App Store Mac, vous devez vous conformer aux exigences du mécanisme Sandbox d'Apple. La méthode recommandée consiste à utiliser l'EDI comme décrit ici. Les étapes manuelles sont présentées à titre informatif ; les informations les plus récentes sont disponibles sur les pages Web d'Apple.

L'EDI de Appmethod peut gérer les droits du mécanisme sandbox, et exécuter la signature de code et la construction de produit nécessaires en utilisant respectivement votre certificat Application de développeur Mac tierce partie et votre certificat Installateur de développeur Mac tierce partie.

Vous devrez renseigner les pages suivantes de l'EDI :

  • Liste des droits - Pour la spécification des droits d'accès pour votre application.
  • Approvisionnement - Pour la signature du code et la construction du produit, avant la soumission de votre application à l'App Store Mac.

1. Obtention de certificats et saisie des certificats dans l'EDI

Des certificats spécifiques sont requis pour soumettre des applications à l'App Store Mac :

  1. En utilisant Xcode sur le Mac ou l'utilitaire de certificats Développeur d'application Mac (https://developer.apple.com/certificates), obtenez les certificats suivants :
    • Un certificat de distribution d'application Mac
    • Un certificat d'installateur Mac
    Vous avez besoin d'un compte développeur Apple pour le faire (voir Acquisition des identifiants Apple requis).
  2. Assurez-vous que votre certificat de distribution d'application Mac est installé dans l'application Trousseaux d'accès de votre Mac (dans le Finder, double-cliquez sur le fichier .cer téléchargé).
  3. Sur la page Liste des droits, assignez les droits d'accès système que vous voulez pour votre application. Un fichier de droits est automatiquement créé pour vous ; vous pouvez modifier la liste des droits pour votre application en utilisant la page Liste des droits dans Options de projet.
  4. Sur la page Approvisionnement, entrez vos certificats de distribution d'application Mac et d'installateur Mac.

2. Signature du code, construction et déploiement de votre application Mac OS X

Remarque : Avant la signature du code et la construction de votre application, vous devez effectuer les étapes normales de la configuration de la construction dans Appmethod :

  1. Définissez OS X en tant que plate-forme cible, assignez un profil de connexion et un SDK, et testez la connexion. (Voir Activation et configuration de la plate-forme cible.)
  2. Définissez les informations de version.

Quand vous êtes prêt à préparer la construction finale du produit, juste avant la soumission de votre application à l'App Store Mac, effectuez les opérations suivantes :

  1. Dans le Gestionnaire de projets, activez le sous-noeud Magasin d'applications du noeud Configuration de l'arborescence de la plate-forme cible OS X :
    MacAppStore.png
    Cette opération configure votre construction Appmethod afin de fournir un .pkg au Mac cible.
  2. Construisez votre projet dans l'EDI.
  3. Déployez votre projet en suivant l'une des opérations ci-après :
    • Projet > Déploiement - Cliquez sur la commande Déployer dans le Gestionnaire de déploiement
    • Exécuter > Exécuter (F9)
      Pour la plate-forme cible App Store Mac, le déploiement de votre application copie le projet du PC vers le Mac, signe le code de l'application en utilisant vos certificats spécifiés, et produit une construction de produit constituée d'un .pkg situé dans le même répertoire que le fichier .app sur le Mac.
    A ce stade, le code de votre application est signé et votre application est prête à être soumise à l'App Store Mac à partir de votre Mac.
  4. Sur le Mac, téléchargez le bundle d'app en utilisant le Chargeur d'applications et iTunes Connect.

Utilisation d'étapes manuelles pour la mise en Sandbox, la signature de code et la construction de votre application

Remarque : Il est recommandé d'utiliser l'EDI (comme décrit précédemment) pour effectuer la mise en Sandbox, la signature de code et la construction de votre application (dans le but de la soumettre à l'App Store Mac). Les étapes manuelles sont beaucoup plus complexes que l'utilisation de l'EDI, et sont uniquement présentées pour les utilisateurs devant travailler en dehors de l'EDI. Les informations les plus récentes sont disponibles sur les pages Web Apple.

Si vous n'utilisez pas l'EDI pour préparer votre application pour l'App Store Mac, vous pouvez effectuer les étapes nécessaires sur votre Mac. Cette section présente une introduction de base à ce processus, mais pour plus de détails, consultez la documentation Apple (certains liens sont fournis ici).

Sur le Mac, vous devez créer un fichier <projet>.entitlements et le placer dans le bundle de l'application, signer le code du bundle, packager le bundle et le soumettre à Apple.

Exigences d'Apple

Voici les éléments nécessaires et les informations adéquates d'Apple :

Procédure manuelle de signature du code et construction de votre application OS X sur le Mac

La signature du code et l'approvisionnement sont nécessaires si vous voulez soumettre votre application à l'App Store Mac. Vous pouvez effectuer ces étapes en utilisant l'EDI (comme décrit plus tôt dans cette rubrique), ou manuellement (en suivant les directions générales données ci-dessous).

Remarques :

Pour signer manuellement le code et construire un installateur de produit pour votre application Mac OS X :

  1. Construisez votre application dans l'EDI et déployez-la sur Mac OS X (Mountain Lion).
  2. Ouvrez une fenêtre terminal sur le Mac.
  3. Basculez sur le répertoire de travail (scratch-dir) de paserver, par exemple :
    Applications/Embarcadero/PAServer/n.n/scratch-dir/machinename-remoteprofilename/
  4. Exécutez les commandes suivantes :
  • Signez le code de votre application :
sudo codesign -f -v -s "Mac Developer: FirstName LastName" "AppName.app"
  • Effectuez une construction de produit, en créant un package installateur :
sudo productbuild --component "AppName.app" /Applications --sign "Mac Developer: FirstName LastName" --product "AppName.app/Contents/info.plist" AppName.pkg

Soumission de votre application à l'App Store Mac

Vous pouvez distribuer les applications Mac hors de l'App Store Mac. Toutefois, si vous voulez vendre votre application dans l'App Store Mac, il est impératif d'effectuer quelques étapes supplémentaires.

  1. Assurez-vous que vous disposez d'un compte iTunes Connect. Pour de plus amples informations, voir le Guide du développeur de iTunes Connect, tel que : Overview of iTunes Connect
  2. Créez une icône d'application 512x512 (fichier .ico) et ajoutez-la à votre projet.
  3. Construisez et déboguez votre application Mac OS X dans Appmethod.
  4. Faites l'acquisition des certificats développeur Apple nécessaires (comme décrit dans Acquisition des identifiants Apple requis).
  5. Complétez la liste des droits dans Projet > Options, et la page Approvisionnement dans Projet > Options ou Outils > Options.
  6. Effectuez une construction finale et déployez sur le Mac en utilisant le Gestionnaire de déploiement.
  7. En utilisant Xcode ou le Chargeur d'applications Mac, soumettez votre archive d'application (.pkg) à l'App Store Mac (voir l'URL ci-dessous).
  8. Gérez votre app dans l'App Store en utilisant iTunes Connect.


Liste d'URL Apple utiles

Utilisation des frameworks dans les apps Mac

Cette section décrit certains aspects du développement d'applications multi-périphériques qui sont spécifiques à la plate-forme cible Mac OS X. Pour des informations générales sur le développement d'applications multi-périphériques, voir Développement des applications multi-périphériques.

RTL

Certaines unités RTL qui fournissent des fonctionnalités de base sont communes au Mac et à Windows, telles que System.pas ou System.SysUtils.pas.

Un certain nombre d'unités RTL sont Mac seulement (voir Frameworks Mac Objective-C). Ces unités sont préfixées avec la portée d'unité Macapi ou Posix.

Voir aussi RTL C pour OS X.

FireMonkey

Le framework FireMonkey est idéal pour la plate-forme cible Mac OS X et il supporte également Win32 et Win64. Voir Prérequis de plate-forme FireMonkey.


RTL Mac C (pour le développement C/C++)

Pour la compilation, BCCOSX utilise des fichiers d'en-tête provenant de plusieurs emplacements.

La RTL C est distribuée dans deux emplacements :

Type du chemin d'inclusion

Chemin

Description

standard

$(BDS)\include\osx\crtl

Ce répertoire contient les fichiers d'en-tête RTL C/C++ (.h) fournis par Appmethod. Certains de ces fichiers incluent les fichiers d'en-tête C/C++ de $(SYSROOT)\usr\include. Pour de plus amples informations, voir RTL C pour OS X.

distant

$(SYSROOT)\usr\include

Ce répertoire contient les fichiers d'en-tête Mac OS X RTL C/C++ mis en cache sur Windows. C'est le répertoire racine du SDK.

Pour la compilation, Appmethod requiert les fichiers d'en-tête qui résident sur le Mac dans le répertoire /usr/include. Si vous ne disposez pas d'un tel répertoire sur votre Mac, vous devez alors installer Xcode. Avec l'aide de PAServer.exe, le serveur Platform Assistant, Appmethod copie automatiquement les fichiers d'en-tête du Mac sur Windows (de /usr/include vers $(SYSROOT)\usr\include) quand vous ajoutez un SDK depuis la page Gestionnaire de SDK.

La grande partie de la RTL Mac OS X C est standard, et les caractères non standard ne sont pas supportés.

Frameworks Mac C (pour le développement C/C++)

Les frameworks Mac OS X fournissent diverses fonctions utiles pour l'écriture du logiciel spécifique à la plate-forme. Certains frameworks sont basés sur le C et peuvent être inclus dans un projet Appmethod Appmethod C++. D'autres frameworks sont basés sur Objective-C (tels que Foundation) et peuvent seulement être utilisés à travers les interfaces Object Pascal (voir la section suivante).

Afin d'inclure un framework Mac C dans un projet Appmethod, vous devez modifier le SDK que vous utilisez. Ouvrez la page Gestionnaire de SDK et cliquez sur le bouton New.bmp (Ajouter un nouvel élément de chemin sur le côté droit. Dans le dialogue Ajouter un élément de chemin distant ou Modifier un élément de chemin distant, spécifiez les informations suivantes :

  • Le chemin distant du framework (par exemple : /System/Library/Frameworks)
  • Le nom du framework (par exemple : CoreFoundation)

Revenez à la page Gestionnaire de SDK, appuyez sur Mise à jour cache fichiers locaux pour mettre à jour les fichiers locaux du SDK.

Pour de plus amples informations sur l'utilisation des frameworks avec BCCOSX, voir --framework et OpenGL Multicolor Tetrahedron (C++).

Frameworks Mac Objective-C (Macapi)

La RTL contient un certain nombre d'unités qui fournissent des interfaces Object Pascal aux frameworks Mac écrits en Objective-C. Ces unités sont préfixées avec la portée Macapi (de l'API Mac) et sont situées typiquement dans le répertoire /source de l'installation de votre produit :

  • Macapi.AppKit
  • Macapi.CocoaTypes
  • Macapi.Consts
  • Macapi.CoreFoundation
  • Macapi.CoreGraphics
  • Macapi.CoreServices
  • Macapi.CoreText
  • Macapi.Foundation
  • Macapi.ImageIO
  • Macapi.Mach
  • Macapi.ObjCRuntime
  • Macapi.ObjectiveC
  • Macapi.OCMarshal
  • Macapi.OpenGL
  • Macapi.QuartzCore
  • Macapi.Security
  • Macapi.SystemConfiguration

Le framework FireMonkey s'appuie sur certaines de ces unités.

Pour de l'aide sur ces API, voir la documentation Apple Mac Developer Library.

Gestion des exceptions

System.SysUtils contient un certain nombre de classes d'exception qui représentent des exceptions non-langage/matérielles. Ces classes d'exception dérivent de EExternal. Les catégories d'exceptions suivantes sont couvertes :

  • Exceptions de virgule flottante
  • Exceptions de division entière
  • CTRL+C, CTRL+PAUSE
  • Violations d'instructions privilégiées
  • Violations d'accès mémoire

Sur le Mac, la plupart des exceptions EExternal émanent en tant qu'exceptions Mach. Les seules exceptions qui n'émanent pas en tant qu'exceptions Mach sont CTRL+C (EControlC) et CTRL+PAUSE (EQuit).

Si vous utilisez des routines assembleur, voir Exceptions mappées - PC (Program Counter), Déroulement des routines assembleur.

Traitement des exceptions Mach

Pour les exceptions Mach, la RTL de System.SysUtils crée un thread qui écoute les notifications d'exceptions depuis le système d'exploitation. Vous devez seulement inclure dans votre code l'unité System.SysUtils. Quand le thread d'écoute reçoit une notification d'exception Mach, il transforme l'exception Mach en l'exception correspondante du langage Pascal dérivée de EExternal, de la façon appropriée, et déclenche l'exception Pascal vers le thread utilisateur qui a causé l'exception Mach originale.

Si vous voulez travailler directement avec les exceptions Mach, sachez alors qu'en incluant System.SysUtils, un thread dédié est démarré pour l'écoute des exceptions Mach. Vous pouvez examiner le source System.Internal.MachExceptions.pas pour vous assurer que vous n'interférez pas avec la RTL.

CTRL+C et CTRL+PAUSE

Pour CTRL+C et CTRL+PAUSE, l'application installe des gestionnaires de signaux. (OS X ne crée pas des exceptions Mach pour CTRL+C et CTRL+PAUSE.)

Les gestionnaires SIGINT et SIGQUIT sont conformes aux standards qui définissent la façon dont les applications shell doivent traiter CTRL+C et CTRL+PAUSE.

Nous vous conseillons vivement de ne pas redéfinir les gestionnaires SIGINT et SIGQUIT. Toutefois, si vous le faites, vous ne recevrez pas les exceptions EControlC et EQuit.

Documentation des bibliothèques Mac

Vous pouvez obtenir la documentation Mac OS X sur Mac OS X Developer Library. Appmethod ne fournit pas d'aide pour des bibliothèques devant être utilisées sur le Mac.

Vous pouvez également vous enregistrer en tant que développeur Mac (gratuitement) sur Mac Dev Center. Etre un membre enregistré du programme développeur Mac vous permet de distribuer les applications dans l'App Store (avec d'autres exigences, telles qu'un certificat développeur et un profil d'approvisionnement). Pour de plus amples informations, voir http://developer.apple.com/programs/mac/gettingstarted/

Rubriques Mac OS X

Voir aussi


Exemples de code