Afficher : Delphi C++
Préférences d'affichage

Développement d'applications Mac OS X

De RAD Studio XE2

Remonter à Applications multiplates-formes - Index


Vous pouvez utiliser RAD Studio pour créer des applications Mac OS X. Du point de vue matériel, vous avez besoin d'une machine Mac connectée à un ordinateur de développement (où RAD Studio est installé) via un réseau local. Pour plus de détails, voir Connexion de votre PC à un Mac.

Le compilateur Delphi pour Mac OS X est DCCOSX.EXE.

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

Sommaire

Configuration de votre environnement de développement multiplate-forme pour Mac OS X

  • Platform Assistant : Sur le Mac, installez et exécutez Platform Assistant (voir Installation et exécution de Platform Assistant sur la plate-forme cible).
  • Profil distant : Dans l'EDI, créez et assignez un profil distant. Un profil distant est un groupe de paramètres qui peuvent être facilement réutilisés (voir Création d'un profil distant sur le PC de développement).
  • Plate-forme cible : Dans l'EDI, définissez la plate-forme cible. Quand vous créez une application Delphi ou C++Builder, RAD Studio définit la plate-forme Win32 par défaut en tant que plate-forme cible. Pour que la plate-forme cible soit OS X, cliquez avec le bouton droit sur le noeud Plates-formes cible du Gestionnaire de projets, cliquez sur Ajouter une plate-forme et sélectionnez OS X. L'option OS X est indisponible si l'application utilise la VCL (la VCL ne supporte pas OS X).
  • Connexion physique : Assurez-vous que RAD Studio peut se connecter au Mac cible ; cliquez sur Tester connexion dans le panneau Profils distants.
    • Néanmoins, si l'application OS X n'a pas de profil distant assigné, l'EDI affiche le message suivant :
      Un profil distant 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 distant. Sur la boîte de dialogue Sélectionner le profil distant, vous pouvez créer (Ajouter) un profil distant ou assigner un profil existant à votre projet.
    • Pour C++, quand vous créez un profil distant pour OS X et que vous accédez à la page Informations relatives aux répertoires C++ de l'expert Créer un profil distant, n'oubliez pas d'activer Utiliser ce profil avec les projets C++ avant de cliquer sur Terminer. Quand vous avez cliqué sur OK pour fermer la boîte de dialogue Sélectionner le profil distant, l'opération Mise à jour cache fichiers locaux s'exécute automatiquement, afin que les bibliothèques et les en-têtes C++ nécessaires soient copiés localement pour la compilation et la liaison.

Acquisition des identifiants Apple requis

Développement et test d'applications OS X et iOS et auto-distribution d'applications OS X : Le développement, le test et l'auto-distribution d'applications OS X ne vous obligent pas à vous enregistrer ou à rejoindre le programme développeur Apple. Bien que vous devez 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.
De même, les applications iOS peuvent être développées et testées sur le simulateur sans avoir à s'enregistrer pour le programme développeur iOS mais, pour tester sur un périphérique, vous devez rejoindre ce programme.
Vous n'avez pas besoin de rejoindre les programmes développeur iOS ou Mac, sauf si vous voulez tester les applications iOS sur un périphérique ou distribuer vos applications via l'App Store approprié. Toutefois, rejoindre l'un ou les deux programmes développeur vous autorise à accéder à une profusion de ressources développeur, autrement indisponibles.

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

Remarque : Avec XE2, seules les applications Delphi FireMonkey peuvent être créées pour iOS. Pour de plus amples informations, voir Configuration du développement FireMonkey pour iOS.

Les programmes développeur pour Mac et iOS fournissent les outils nécessaires (tels que Xcode et le SDK), la documentation en ligne et le support. Des programmes 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.

Sandbox requis pour les applications OS X

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

Sur le Mac, vous devez créer un fichier ProjectName.entitlements et le placer dans le bundle de l'application, signer le code du bundle, packager le bundle et le soumettre à Apple. Voici les éléments nécessaires et les informations adéquates d'Apple :

Signature du code et construction de votre application Mac sur le Mac

Ces étapes sont nécessaires si voulez soumettre votre application au Mac AppStore.

Remarques :
  • Assurez-vous d'obtenir un certificat de distribution pour la soumission des applications au Mac AppStore depuis http://developer.apple.com/certificates.
  • Pour ce faire, vous aurez besoin d'un compte développeur Apple.
  • Assurez-vous que le certificat est installé dans votre Keychain (double-cliquez sur le fichier .cer dans le Finder).
  • Vous aurez besoin d'un fichier entitlements.xml pour le mécanisme Sandbox du Mac.
  1. Construisez votre application dans l'EDI et déployez-la sur Mac OS X (Snow Leopard ou 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/scratch-dir/machinename-profilename/
  4. Exécutez les commandes suivantes :
Signer le code de votre application :
sudo codesign -f -v -s "Mac Developer: FirstName LastName" "AppName.app"
Créer un package d'installateur :
sudo productbuild --component "AppName.app" /Applications --sign "Mac Developer: FirstName LastName" --product "AppName.app/Contents/info.plist" AppName.pkg

Utilisation des frameworks dans les applications Mac

RTL Delphi

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.

FireMonkey

Le framework FireMonkey est idéal pour la plate-forme cible Mac OS X, prenant également en charge tant Win32 que Win64. Voir Prérequis de plate-forme FireMonkey.

VCL (indisponible pour le Mac)

La VCL est seulement disponible sur Windows (32 bits et 64 bits).

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

BCCOSX.EXE utilise des fichiers d'en-tête de plusieurs emplacements pour la compilation.

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 RAD Studio. Certains de ces fichiers incluent les fichiers d'en-tête C/C++ de $(SYSROOT)\usr\include. Pour de plus amples informations, voir RTL OS X C.

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.

Pour la compilation, RAD Studio 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. L'obtention de Xcode est décrite dans Connexion de votre PC à un Mac. Avec l'aide de PAServer.exe, le serveur Platform Assistant, RAD Studio copie automatiquement les fichiers d'en-tête du Mac sur Windows (de /usr/include vers $(SYSROOT)\usr\include).

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 RAD Studio C++Builder. D'autres frameworks sont basés sur Objective-C (tels que Foundation) et peuvent seulement être utilisés à travers les interfaces Delphi (voir la section suivante).

Afin d'inclure un framework Mac C dans un projet RAD Studio, vous devez modifier le profil distant que vous utilisez. Ouvrez le panneau Profils distants et cliquez sur le bouton Ajouter un nouvel élément de chemin sur le côté droit. Dans la boîte de dialogue Ajouter 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)

Pour de plus amples informations, 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 Delphi 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 obtenir de l'aide sur ces APIs, voir la documentation Apple sur http://developer.apple.com/library/mac/navigation/#section=Resource%20Types&topic=Reference

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.

Icônes pour vos applications OS X

Sur le Mac, vous avez typiquement besoin d'un fichier .ico (fichier icône) pour représenter votre application dans l'interface utilisateur. Des fichiers .ico spécifiques à la personnalité sont fournis pour votre usage :

  • delphi_PROJECTICON.ico
  • cbuilder_PROJECTICON.ico

Ces fichiers .ico sont disponibles dans le répertoire /bin de l'installation de votre produit.

Xcode requis pour les applications FireMonkey iOS

Rubriques Mac OS X

Voir aussi

Exemples de code

Versions précédentes
Autres langues