Dans cet article, je vous explique comment créer votre propre framework Cocoa (écrit en Objective-C, donc), afin de réutiliser du code dans plusieurs de vos applications. Le framework en question a pour vocation d’être inclus dans le bundle de vos applications (on ne va tout de même pas copier des librairies un peu partout !). Il y a deux grandes étapes :
- la création du framework,
- l’utilisation du framework dans vos applications.
Création du framework
Dans Xcode, choisissez File > New Project… puis choisissez un projet de type Framework et plus précisément Cocoa Framework. Saisissez un joli nom pour votre framework.
Faites un clic droit sur la target de votre framework puis choisissez Set Role > Public : ceci aura pour effet de copier les fichiers headers (.h) dans le framework, ce qui s’avère très utile pour utiliser ledit framework !
Éditez maintenant les propriétés de la target de votre framework (clic droit sur la target puis Get Info). Dans l’onglet Build, recherchez la section Deployment puis remplacez la valeur de la propriété Installation Directory par @executable_path/../Frameworks
. Vous devriez avoir quelque chose qui ressemble à ceci :
Ajoutez ensuite toutes les classes et ressources à votre framework puis compilez le framework (Build). Rendez-vous dans le répertoire build de votre projet et vérifiez que vous avez bien un dossier avec l’extension .framework.
Utilisation du framework dans vos applications
Il y a deux choses importantes à faire ici :
- ajouter le framework à votre application (ce qui semble logique…),
- faire en sorte que ce framework se retrouve dans le dossier Frameworks à l’intérieur du bundle de votre application une fois votre application compilée.
Pour ajouter le framework à votre application, faites un clic droit sur la section Frameworks dans l’arborescence du projet puis Add > Existing Frameworks… puis parcourez votre disque à la recherche de votre framework (qui est un dossier à l’extension .framework, je vous le rappelle).
Pour la deuxième partie, faites un clic droit sur la target de votre application puis Add > New Build Phase > New Copy Files Build Phase.
Dans la boîte de dialogue, sélectionnez Frameworks pour le champ Destination et fermez la fenêtre (surtout qu’il fait froid en ce moment).
Enfin, dans l’arborescence du projet, faites glisser votre framework depuis la section Frameworks vers la nouvelle section Copy Files : vous devriez alors le voir apparaître en dessous et le libellé de la phase est maintenant Copy Files (1).
Dans votre application, vous devrez inclure les fichiers headers de vos classes de cette manière :
#import "nomDuFramework/Classe1.h" |
Voilà, ça devrait marcher… amusez-vous bien !