Localisation des frameworks

18:48 modifié dans API AppKit #1
Hello,

J'ai besoin pour mon appli de faire un framework. Seulement, le programme exige pour fonctionner que le framework soit situé dans le répertoire /Library/Frameworks, alors que je voudrais qu'il soit recherché dans le bundle de l'application (il s'y situe pourtant...). Le framework n'est pas à  mettre en cause, l'appli fonctionne très bien lorsqu'un lien symbolique est créé depuis le répertoire /Library/Frameworks.

Est-ce que quelqu'un sait comment faire pour qu'il soit plutôt recherché dans le bundle de l'application?

Merci d'avance.

Réponses

  • Eddy58Eddy58 Membre
    octobre 2004 modifié #2
    Hi Renaud ! :)

    Un framework peut soit être utilisé à  partir de /Library/Frameworks, soit quand il est embarqué dans l'application, mais pas les deux en même temps.
    Pour embarquer ton framework dans ton appli, il faut aller dans Targets, sélectionner le framework, ensuite tu demandes les infos, tu sélectionnes "Customized settings", onglet "Build", ensuite il faut changer le paramètre "Installation Path".
    Par défaut il y a  : $(HOME)/Library/Frameworks
    Tu remplaces par : @executable_path/../Frameworks

    Bon je garantis pas ce résultat, j'ai jamais fait de frameworks encore, j'ai repiqué ca dans Cocoa Programming....vraiment cool ce bouquin :)

    J'espère que ca va t'aider !  :D
  • 18:48 modifié #3
    Hello,

    Merci pour la réponse.

    Il me semble que tu racontes est en fait vrai dans Project Builder (ou bien tu as une édition adaptée à  Panther, je ne sais pas si ça existe) et ça concerne en fait les instructions pour une "Copy phase" lors de la "construction" de l'exécutable, qui permet de savoir dans quel dossier le bundle doit être copié. Dans Xcode les procédures sont plus simples (une pop up et c'est tout).

    Mon problème se situe en fait à  l'exécution, l'appli refuse d'aller chercher le framework dans le dossier de l'application, alors qu'il s'y trouve (la phase de copie marche parfaitement).
  • Eddy58Eddy58 Membre
    18:48 modifié #4
    Eh bien en faites c'est expliqué sous Project Builder, j'ai simplement adapté la réponse à  X-Code. Le principe est le même. Si ton appli refuse d'aller chercher le framework dans ton dossier d'application, c'est parce que le path installation défini par défaut est /Library/Framework, même si ton framework est dans le bundle de l'application. Ca n'a rien a voir avec la copie du framework dans le bundle. Le fait de mettre "@executable_path/../Frameworks" dans ton path installation indiquera au framework qu'il est embarqué dans ton appli. Mais ca se met dans le projet du framework, pas dans celui de l'appli.
    J'espère être clair. :)
  • 18:48 modifié #5
    OK, j'avais juste fais un essai avant de poster ma réponse et ça ne marchait pas... Devant ton "insistance", j'ai recommencé avec un "Clean all targets" juste avant (que j'avais oublié avant) et ...ça marche. Merci!
  • Eddy58Eddy58 Membre
    18:48 modifié #6
    Ha oui un Clean Target c'est important quand on ajoute des fichiers resources, ou quand on redéfinit des chemins. Content de t'avoir débrouillé Renaud ! 
  • ClicCoolClicCool Membre
    18:48 modifié #7
    euh moi pas tout compris de vos manip ... :-\

    Comment fait-on pour embarquer dans une appli un framework d'une tierce partie afin d'éviter aux utilisateurs d'avoir à  le placer dans leur bibliothèque ? :-\
  • Eddy58Eddy58 Membre
    18:48 modifié #8
    dans 1097068551:

    euh moi pas tout compris de vos manip ... :-\

    Comment fait-on pour embarquer dans une appli un framework d'une tierce partie afin d'éviter aux utilisateurs d'avoir à  le placer dans leur bibliothèque ? :-\


    C'est tout expliqué au-dessus ClicCool ! :D
    Il faut régler ça dans la Target du framework avant de l'inclure dans l'application. Qu'est-ce que tu ne comprend pas dans les explications ci-dessus ? :-\
  • muqaddarmuqaddar Administrateur
    18:48 modifié #9
    Moi j'ai un framework Serach Path et un installation path qui dit : $(HOME)/Applications  ?!
    Et c'ets tout...
  • Eddy58Eddy58 Membre
    18:48 modifié #10
    dans 1097072211:

    Moi j'ai un framework Serach Path et un installation path qui dit : $(HOME)/Applications  ?!
    Et c'ets tout...


    Oui il faut impérativement le projet source du framework, tout se fait à  partir de là  pour pouvoir le configurer en mode embarqué.... :)
Connectez-vous ou Inscrivez-vous pour répondre.