Créer ses propres templates

francois2102francois2102 Membre
05:10 modifié dans Vos applications #1
Bonsoir à  tous.
Je cherche à  créer un template à  partir d'un de mes projetsà’∑ existant sur xcode.

Lors de la création d'un nouveau projet selon le template que l'on a créé, le fichier par défaut apparaà®t bien, mais les transformations que l'on fait ensuite se reportent sur le modèle, et non sur "l'instance" de ce modèle.

Quelqu'un aurait-il la solution pour que l'instance ne modifie pas le template lui même?
Merci de votre aide.

Réponses

  • AliGatorAliGator Membre, Modérateur
    05:10 modifié #2
    Je ne comprends pas bien ce que tu veux dire...

    Tu as préparé ton modèle de projet Xcode puis l'a mis dans "~/Library/Application Support/Developer/Shared/Xcode/Project Templates", c'est bien ça ? En prévoyant les noms génériques à  tes fichiers, genre "___PROJECTNAME___.xcodeproj" etc, comme sont faits les autres templates fournis par Xcode ?

    Et ensuite quand tu demandes à  Xcode de créer un nouveau projet, en plus des templates que Xcode te propose habituellement, tu as donc une nouvelle section "User Templates" avec ton nouveau template qui s'affiche, tu le choisis, crée un nouveau projet avec ce template... Et ensuite tu es en train de me dire que quand tu modifies ce nouveau projet créé à  partir de ton template, c'est le template qui est modifié, donc le projet se trouvant dans Application Support ?
  • francois2102francois2102 Membre
    05:10 modifié #3
    C'est exactement ça!
    Et cela avait déjà  été pointé lors d'une discussion sur les templates ("modèle de projet") en 2008 mais n'a jamais trouvé de réponse.
    Merci de ton aide si tu as la solution.
  • francois2102francois2102 Membre
    05:10 modifié #4
    Petite précision: j'ai placé mon modèle de projet xcode au même niveau que les autres templates fournis par xcode, c'est à  dire /Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/Project Templates/Application
  • AliGatorAliGator Membre, Modérateur
    janvier 2011 modifié #5
    Pourtant quand tu crées ton projet à  partir du Template, le nouveau projet créé via Xcode porte bien le nouveau nom que tu lui as donné, genre "MonProjetDeTest.xcodeproj" là  où ton template avait justement le nom générique "___PROJECTNAME___.xcodeproj" ? Et le projet qui se trouve dans ".../Project Templates/Application" lui n'a pourtant pas changé de nom à  ce moment là  ? Donc tu as bien sur ton disque et dans le Finder deux fichiers .xcodeprojet différents ?

    Au fait, bienvenue sur PommeDev ! N'hésite pas à  aller te présenter sur la section adéquate "Présentation des membres" du forum :)

    [mode modo]
    PS : Je te laisse répondre à  ce sujet (ce qui m'assurera que tu as lu ma réponse ici) mais je vais déplacer ce sujet dans la section commune à  MacOSX et iOS, voire dans la section dédiée aux Developer Tools : en effet ton problème ne me semble pas précisément lié à  iOS et à  un projet précis avec une idée que tu voudrais discuter avec nous, mais plutôt à  une question sur l'outil Xcode ;)
    [/mode modo]
  • francois2102francois2102 Membre
    05:10 modifié #6
    Merci de ta réponse. J'irai me présenter au bon endroit.
    Sinon, les fichiers xcodeproj sont différents, mais certains fichiers (classes) du template se modifient lorsque je modifie le projet créé à  partir du template. Et lorsque je regarde quel est leur path, certains ont un path commun, qui est celui du projet initial qui a servi de base à  mon template.


    Projet initial = projet 1
    Template à  partir de projet 1: template
    Projet créé à  partir de template: projet 2

    Certains fichiers de projet 2 ont un path qui pointe vers des fichiers de projet 1.
    Je ne comprends pas pourquoi, et ce d'autant plus que ce n'est pas le cas pour tous les fichiers.
  • AliGatorAliGator Membre, Modérateur
    05:10 modifié #7
    Ahhh d'accord
    Ce n'est pas les chemins vers le template et les fichiers du template proprement dit qui changent donc, mais ceux du projet 1 (que tu as copié et adapté pour en faire un template ensuite) !

    Je pense savoir d'où ça peut venir : il est possible que ton projet soit configuré pour stocker les chemins absolus (complets) vers certains fichiers de tes classes. Ce qui expliquerait qu'ensuite quand tu retrouves ton projet 2 créé à  partir du template créé à  partir de projet 1... au final dans le xcodeproj c'est toujours le même fichier qui est référencé, car c'est non pas le fichier qui se trouve "dans le répertoire Machin du répertoire du projet" (chemin relatif " relatif au projet donc) mais le fichier qui se trouve "dans le répertoire /DisqueDur/Users/toi/Documents/Projet1/Fichier.m" (donc chemin complet/absolu)

    Pour modifier cela, dans ton projet Xcode, dans la colonne de gauche "Groups & Files" :

    1) Vérifie que les "dossiers" qu'il y a dans cette section sont bien des "groupes" (icônes jaunes, qui sont juste des groupements au sein du projet Xcode mais qui ne présage pas forcément de l'organisation réelle des fichiers dans le Finder) et pas des "dossiers" (icônes bleues, qui représentent des vraies dossiers et des références vers des dossiers du Finder)

    2) Une fois que tu as vérifié que tu n'as que des "groupes/dossiers jaunes" dans la zone de gauche "Groups & Files", tu peux afficher les informations sur chaque "groupe" (Pomme-I une fois le groupe sélectionné) et regarder quel est le type de chemin défini pour ce groupe. Moi je les définis tous comme "Relative to enclosing group".
    Comme ça ils sont tous relatifs. Et si j'ai ensuite un "groupe" qui a comme path relatif "DossierA" (ce qui ait qu'au final le "group" en sens Xcode correspond au dossier "DossierA" dans le Finder), et que dans ce groupe je mets un autre groupe avec un path relatif "DossierB", les fichiers dans ce sous-groupe seront relatifs au dossier "DossierB" se trouvant dans le dossier "DossierA" se trouvant dans le répertoire projet...

    Au final, en faisant ça tous les fichiers répertoriés dans le xcodeproj sont de toute façon relatifs au projet, et non en chemin absolu. Et du coup cela devrait résoudre ton souci :)
  • francois2102francois2102 Membre
    05:10 modifié #8
    Merci beaucoup de ta réponse.
    Cependant, certains fichiers du template ont le même chemin que leur homologue de projet 1, et se modifient donc en même temps.
    Mais la solution doit être la même pour template et projet 2.
    Je vais essayer.
    Encore merci.
  • AliGatorAliGator Membre, Modérateur
    05:10 modifié #9
    dans 1295393347:

    Cependant, certains fichiers du template ont le même chemin que leur homologue de projet 1, et se modifient donc en même temps.
    Bah oui d'après ce que j'ai décrit c'est normal, c'est le même problème : si dans tes projets tu as des références vers les fichiers de type "chemin absolu" et pas "chemin relatif", c'est normal que dans tous les cas (projet 1, template, projet 2) tu aies donc une référence vers tes fichiers via un chemin absolu... donc du coup que tu références toujours le même fichier dans les 3 cas !
  • francois2102francois2102 Membre
    05:10 modifié #10
    Tout marche maintenant. Un grand merci.
    Désolé, c'était en fait assez basic , mais j'ai appris quelquechose... à  vie!
  • GercofisGercofis Membre
    05:10 modifié #11
    Tout ça ne semble pas fonctionner avec xCode 4, en fait la nouvelle Template n'apparaà®t pas dans les choix d'xCode a la création d'un projet...
  • laudemalaudema Membre
    05:10 modifié #12
    Eh non, Xcode 4 utilise une nouvelle manière de tout gérer, donc les templates aussi.
    Tu dois aussi avoir un fichier TemplateInfo.plit à  côté de tes .m et .h, le tout dans un (nouveau) dossier créé dans ~/Library/Developer/Xcode/Templates/ ainsi qu'indiqué sur ce blog
  • iSofTomiSofTom Membre
    05:10 modifié #13
    Le système de template a complètement changé avec Xcode4 (et heureusement car le système avec Xcode3 n'était pas terrible).
    Point négatif : c'est beaucoup plus compliqué qu'avant et il n'y a pas encore beaucoup de doc dessus.
    Point positif : c'est beaucoup plus puissant qu'avant!

    Quelques liens qui peuvent t'aider pour faire un template Xcode4:
    http://blog.boreal-kiss.net/2011/03/11/a-minimal-project-template-for-xcode-4/
    http://snipt.net/yonishin/about-xcode-4-project-template

    [EDIT] damned, grilled!
  • GercofisGercofis Membre
    05:10 modifié #14
    Pour le coup là  je baisse les bras, par contre est-ce possible a quelqu'un de faire migrer un template xCode 3 vers xCode 4...

    Le modèle en question sert/servirait simplement a pouvoir faire une application installable avec un iDevice en zappant la séquence Apple, en fait pour m'installer simplement une petite application sur mon iPhone...

    mais bon rien de bien urgent non plus...
  • laudemalaudema Membre
    05:10 modifié #15
    Un projet pouvant s'ouvrir indifféremment dans Xcode 3 ou Xcode 4 rien ne t'empêche de le créer dans le 3 avec ton template et de le réouvrir avec le 4 pour le modifier.
    Je fais ça de plus en plus: le 4 pour travailler sur les xib, parce que j'aime bien la nouvelle manière et ne plus naviguer entre IB et Xcode ; et le 3 surtout à  cause du Fix and Continue qui me permet de corriger ou d'affiner sans avoir à  relancer à  chaque fois la compilation puis l'application (qui doit analyser un gros dossier à  chaque lancement).
    Pour l'instant on a le meilleur des deux mondes autant en profiter !
  • GercofisGercofis Membre
    05:10 modifié #16
    Très bonne idée, et je confirme après un essai vite fait ça a bien l'air de fonctionner correctement...
    Donc merci beaucoup...
Connectez-vous ou Inscrivez-vous pour répondre.