4 votes

Meilleures pratiques pour la compatibilité descendante d'OSX 10.x

Je suis relativement nouveau dans le développement sous OS X (en utilisant XCode)

Récemment, j'ai testé une application sur laquelle je travaillais sur le MacBook d'un ami, et j'ai rencontré un problème.

J'ai développé l'application sur mon MacBook qui exécute Snow Leopard 10.6.5, alors que le Mac de mon ami exécutait une version antérieure (je pense Leopard 10.5.x). L'application n'a pas démarré et a affiché un message indiquant que le système d'exploitation était trop ancien pour l'application.

L'application elle-même est très basique et ne nécessite aucune bibliothèque ou API tierce.

Quel est le meilleur moyen de s'assurer que le même installateur peut être utilisé? Je n'ai pas besoin de gérer quoi que ce soit de plus ancien que, disons, 10.4.

7voto

Guillaume Points 11397

Vous devez modifier les paramètres de cible de déploiement Mac OS X (nom de la clé : MACOSX_DEPLOYMENT_TARGET) de votre projet ou application pour la plus ancienne version de OS que vous souhaitez prendre en charge.

Voici la documentation sur la façon de modifier les paramètres de construction de base pour une cible : http://developer.apple.com/library/mac/documentation/ToolsLanguages/Conceptual/Xcode4UserGuide/Building/Building.html#//apple_ref/doc/uid/TP40010215-CH9-SW2

Et voici un lien vers la documentation avec plus d'informations pour la construction pour plusieurs versions d'un OS. Je n'ai pas pu trouver le lien en ligne, donc voici un lien vers la documentation installée localement sur votre ordinateur. file:///Library/Developer/Documentation/DocSets/com.apple.adc.documentation.AppleiPhone4_0.iPhoneLibrary.docset/Contents/Resources/Documents/documentation/DeveloperTools/Conceptual/XcodeProjectManagement/210-Building_Products/building.html#//apple_ref/doc/uid/TP40002693-SW38

Voici un extrait :

Vous pouvez développer des logiciels qui peuvent être déployés et qui tirent parti des fonctionnalités de différentes versions d'iPhone OS ou Mac OS X, y compris des versions différentes de celles pour lesquelles vous développez. Cette capacité est appelée le développement croisé.

Pour profiter du développement croisé, vous devez installer les SDK Mac OS X pour les versions OS que vous prévoyez de cibler. Ensuite, dans vos projets, spécifiez quel SDK utiliser lors de la construction de vos produits. Vous pouvez également spécifier la première version de Mac OS X sur laquelle le logiciel doit s'exécuter.

Dans certains cas, Apple distribue un SDK pour une prochaine version du système d'exploitation en tant que préversion, vous permettant de préparer votre application à fonctionner avec les futures versions de Mac OS X avant leur sortie publique.

Important : Le développement croisé dans Xcode nécessite des cibles natives.

Pour configurer votre projet Xcode pour cibler plusieurs versions de Mac OS X, suivez les étapes suivantes :

 Choisissez un SDK. Sélectionnez votre projet dans la liste des groupes et fichiers, puis choisissez Fichier > Obtenir des infos. Dans le volet Général de la fenêtre Infos du projet, choisissez le SDK dans le menu contextuel Base SDK pour toutes les configurations. Lorsque vous choisissez un SDK, Xcode construit les cibles de votre projet en fonction de l'ensemble d'en-têtes correspondant à la version spécifiée du OS, et lie avec les bibliothèques factices de ce SDK. Cela vous permet de construire des produits sur votre ordinateur de développement qui peuvent être exécutés sur la version OS ciblée par le SDK. Votre logiciel peut utiliser des fonctionnalités disponibles dans les versions du système allant jusqu'à celle que vous sélectionnez.

Vous pouvez également spécifier le SDK de base via le paramètre de construction Base SDK (SDKROOT).

 Choisissez une version de déploiement de Mac OS X. Si votre logiciel doit fonctionner sur une gamme de versions de systèmes d'exploitation, choisissez un système d'exploitation de déploiement Mac OS X pour chaque cible individuelle qui en a besoin. Le système d'exploitation de déploiement identifie la première version du système sur laquelle le logiciel peut s'exécuter. Par défaut, cela est défini sur la version du OS correspondant à la version du SDK.
Pour définir la version de déploiement pour une cible :

  a. Sélectionnez la cible dans la liste des groupes et fichiers et ouvrez une fenêtre d'informations. Cliquez sur Build pour ouvrir le volet Construction.

b. Trouvez le paramètre de construction Cible de déploiement (MACOSX_DEPLOYMENT_TARGET) ou Cible de déploiement iPhone OS (IPHONEOS_DEPLOYMENT_TARGET) (selon la plate-forme pour laquelle vous développez) et choisissez un système d'exploitation de déploiement dans le menu contextuel de la colonne Valeur.

Pour chaque cible, fournissez un fichier préfixe qui tient compte du SDK sélectionné. Pour utiliser un en-tête de cadre en parapluie d'un SDK en tant que fichier préfixe, ajoutez la directive #include appropriée à votre fichier préfixe de cible au lieu de définir un chemin de fichier d'en-tête de préfixe pour le cadre en parapluie directement. Il y a beaucoup plus à faire pour développer avec succès un logiciel pour plusieurs versions de Mac OS. Pour plus d'informations, consultez le Guide de compatibilité SDK.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X