web-dev-qa-db-fra.com

Comment créer des modèles de projet dans Xcode 4

Il est vraiment difficile de trouver un tutoriel pour le faire car la plupart des informations concernent Xcode 3. La réponse ci-dessous peut aider certaines personnes.

J'ai obtenu la plupart de mes informations pour la réponse ci-dessous sur les sites suivants:

35
bennythemink

J'ai passé des heures à chercher sur le Web pour trouver des informations à ce sujet. Ce n'est pas vraiment difficile de configurer des modèles de projet pour Xcode4.5 mais il est difficile de trouver des informations sur le Web qui rassemblent tout cela! J'espère que les étapes ci-dessous vous aideront à créer la vôtre.

Configuration

  1. Commençons par obtenir une copie d'un modèle de projet Xcode existant à utiliser comme base. Ouvrez le Finder, allez dans Applications et faites un clic droit sur Xcode pour afficher le contenu du package. Accédez à Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/Templates/Project Templates/Application /

[MODIFIER] Dans Xcode 5, le CHEMIN est le suivant: ~/Library/Developer/Xcode/Templates/Application/Project Templates. Si Templates/Application/Project Templates n'existe pas, vous devez également le créer. Nous remercions seufagner dans les commentaires ci-dessous pour la mise à jour même si je n'ai pas essayé moi-même. [/ÉDITER]

  1. Copier (ne pas couper/coller!) L'un des modèles répertoriés.
  2. Ouvrez une autre fenêtre du Finder et accédez au répertoire suivant (pour afficher votre dossier Library tapez ce cmd dans le terminal: chflags nohidden ~/Library/ou sélectionnez appuyez sur la touche alt/option lorsque vous cliquez sur Finder/Go)/Library/Developer/Xcode/Modèles (vous devrez peut-être créer ce dossier s'il n'est pas déjà présent)/Modèles de projet /
  3. Créez un dossier ici. Appelez-le comme vous le souhaitez, une suggestion est le nom de votre entreprise. Ce nom apparaît dans le menu de gauche de la nouvelle boîte de dialogue de projet dans Xcode. par exemple. dans l'image ci-jointe, j'ai appelé le mien Appscore, il y en a un autre pour cocoas2d. enter image description here
  4. Collez le modèle de projet ici et changez le nom de son dossier en celui que vous souhaitez, par exemple MySuperProjectTemplate.xctemplate. Nous n'avons pas encore terminé, car nous devons changer l'identifiant du modèle. Sinon, il n'apparaîtra pas dans la fenêtre de dialogue du nouveau projet Xcode.
  5. Ouvrez le fichier TemplateInfo.plist dans TextEdit. Recherchez la clé d'identification. Vous devriez voir une valeur de chaîne quelque chose de similaire à "com.Apple.dt.unit.XXXXXX". Remplacez-le par ce que vous souhaitez tant qu'il est unique. Je suggère à nouveau d'ajouter le nom de votre entreprise et un nom qui décrit le modèle.
  6. Si vous ouvrez maintenant Xcode, vous devriez voir le modèle de projet apparaître sous le nom de votre entreprise dans la nouvelle boîte de dialogue de projet.

personnalisation

Pour le moment, vous disposez d'une copie d'un modèle de projet existant qui n'est pas très utile. Je suppose que vous avez un certain nombre de classes qui sont réutilisées dans presque tous vos projets? Que diriez-vous de les inclure dans ce modèle?

  1. Copiez les fichiers que vous souhaitez et collez-les dans votre nouveau modèle de projet, c'est-à-dire accédez à/Library/Developer/Xcode/Templates/Project Templates // MySuperProjectTemplate.xctemplate /
  2. Ouvrez à nouveau le fichier TemplateInfo.plist dans TextEdit. La première chose que nous devons faire est de dire au modèle de projet d'inclure les nouveaux fichiers afin de rechercher une clé appelée "Nodes" qui a un tableau de valeurs. Ajoutez les deux lignes suivantes:

    <string> _ VARIABLE_classPrefix: identifiant _. h </string> <string> _ VARIABLE_classPrefix: identifiant _. m </string>

Par exemple, si votre contrôleur s'appelait BaseViewController, les lignes ressembleraient à:

<string> ___ VARIABLE_classPrefix: identifiant ___ BaseViewController.h </string> <string> ___ VARIABLE_classPrefix: identifiant ___ BaseViewController.m </string>

Step 2

  1. Trouvez ensuite la clé Définitions et vous devriez voir un dictionnaire comme valeur. Ici, nous devons ajouter une référence aux fichiers inclus. Créez une nouvelle clé et appelez-la ___ VARIABLE_classPrefix: identificateur ___ BaseViewController.h (en prenant à nouveau l'exemple de BaseViewController).

Step 3

  1. La valeur de cette clé est à nouveau un dictionnaire. Il contient une clé appelée Path et une valeur de chaîne qui est le nom du fichier, par ex. BaseViewController.h
  2. J'ai joint les images suivantes pour montrer ce que je veux dire car je pense que ma description est insuffisante. Vous remarquerez peut-être qu'il y a une clé appelée "Groupe", cela comme vous pouvez le deviner vous permet de créer des groupes et des fichiers d'entrée directement: D

J'espère que cela est réellement utile à quelqu'un :) Toutes les questions commentent ci-dessous et je ferai de mon mieux pour répondre. Je l'ai fait il y a quelques semaines, donc ma mémoire est un peu floue.

75
bennythemink

Vous pouvez également en apprendre beaucoup en inspectant les modèles de projet existants, que vous pouvez trouver dans:

/Xcode.app/Contents/Developer/Library/Xcode/Templates/Project Templates/

pour Mac et

/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/Templates/Project Templates/

pour iOS .

Il existe également quelques exemples de modèles sur GitHub par Reid Main et un autre par Acani. Il existe également des modèles AFNetworking, créés par Mattt Thompson. Voir tous les exemples, y compris ceux construits par Apple et ensuite vous pouvez commencer à créer le vôtre.

5
Legoless

Un bon aperçu de toutes les variables utilisées dans le fichier plist peut être trouvé ici: https://Gist.github.com/shazron/943736

4
bvmobileapps

@bennythemink Votre réponse est vraiment très utile, mais je veux ajouter plus de choses dans votre réponse. Lorsque nous copions le modèle prédéfini de xcode, cette clé contient

<key>Ancestors</key>
<array>
<string>com.Apple.dt.unit.storyboardApplication</string>
</array>

cette valeur. Lorsque nous utilisons cette valeur de clé dans le modèle personnalisé de xcode, il crée par défaut la classe AppDelegate. Que nous ne pouvons pas déplacer dans un dossier, nous pouvons le déplacer en groupe. Je suggère donc d'ajouter ceci:

<key>Ancestors</key>
<array>
<string>com.Apple.dt.unit.objectiveCApplication</string>
<string>com.Apple.dt.unit.iPhoneBase</string>
<string>com.Apple.dt.unit.prefixable</string>
</array>

valeur dans le modèle personnalisé afin que nous ayons un modèle entièrement vide dans lequel nous pouvons faire des choses personnalisées.

1
Pranav Khandelwal