Créer un type de document en package

UniXUniX Membre
01:49 modifié dans API AppKit #1
Salut le forum.

Je suis coincé sur un sujet tout bête ..... ???
Je souhaite enregistrer un document sur le disque sous forme d'un package, de façon à  ce que le Finder le détecte comme un fichier et non un dossier.
Je précise que mon appli n'est pas Document based.

Dans la doc, il est indiqué qu'il faut déclarer le type de fichier dans le info.plist. C'est ce que j'ai fait, en prenant soin de cocher la case Package.

J'ai compilé, relancé le Finder, normalement à  ce stade, si je créé un dossier avec l'extension déclarée dans le info.plist, il devrait apparaà®tre comme un fichier et non un dossier, non ? Là , c'est pas le cas .....

Réponses

  • schlumschlum Membre
    01:49 modifié #2
    Il faut que ton application soit installée dans le dossier Applications pour ça il me semble... (pour que le Finder puisse "trouver" l'info)
  • BruBru Membre
    01:49 modifié #3
    dans 1177015747:

    Il faut que ton application soit installée dans le dossier Applications pour ça il me semble... (pour que le Finder puisse "trouver" l'info)


    Xcode.app est une application.
    Xcode.app n'est pas dans le répertoire /Applications.
    Xcode.app créé des fichiers "package".

    .
  • MalaMala Membre, Modérateur
    01:49 modifié #4
    De mémoire, à  partir du moment où l'appli est présente sur le disque dur, les packages qui lui ont été associés sont automatiquement gérez comme tels.
  • 01:49 modifié #5
    Salut,

    J'ai déja rencontré ce genre de problème... c'est de la bidouile mais après un redémarrage et un duppliqué de l'application le Finder avait reconnu le dossier...  >:)

    Je rechercherais un peu + ce soir (dans mes souvenirs...)
  • UniXUniX Membre
    01:49 modifié #6
    Bon, j'ai fait tout une série de manips, et maintenant c'est reconnu.
    Je ne sait pas ce qui a été décisif, voilà  ce que je fait (si ça peut servir) :
    - compil en mode release
    - copie de l'appli release dans Applications
    - lancement de l'application
    - redémarrage.
  • BruBru Membre
    01:49 modifié #7
    dans 1177048372:

    J'ai déja rencontré ce genre de problème... c'est de la bidouile mais après un redémarrage et un duppliqué de l'application le Finder avait reconnu le dossier...  >:)


    Je crois que c'est ça.

    Pour que le Finder mette à  jour la base des LaunchServices (base qui contient la trace de toutes les applis installées sur le système, ainsi que de leurs associations de fichiers), il faut "simuler" une installation : c'est à  dire copier à  partir du Finder (ou peut être seulement déplacer) le .app créé par Xcode vers un autre répertoire.

    Je ne crois pas que le redémarrage soit nécessaire par contre (ou peut être uniquement le redémarrage du Finder).

    .
  • schlumschlum Membre
    avril 2007 modifié #8
    dans 1177052160:

    Pour que le Finder mette à  jour la base des LaunchServices (base qui contient la trace de toutes les applis installées sur le système, ainsi que de leurs associations de fichiers), il faut "simuler" une installation : c'est à  dire copier à  partir du Finder (ou peut être seulement déplacer) le .app créé par Xcode vers un autre répertoire.


    Effectivement, le coup de les repérer à  la copie ou au déplacement, c'est pas con...
  • schlumschlum Membre
    avril 2007 modifié #9
    En faisant ça :
    /System/Library/Frameworks/ApplicationServices.framework/Frameworks/LaunchServices.framework/Support/lsregister -dump
    

    Je tombe sur des trucs qui n'ont jamais été déplacés... Donc apparemment ça gère même sans simulacre d'installation.  ???

    Je viens de faire un projet test bidon document-based avec une extension bidon et je la retrouve dans la base juste après compilation en Debug !

    bundle  id:            1344930048
            path:          /Users/schlum/Desktop/Test/build/Debug/Test.app
            name:          Test
            identifier:    com.yourcompany.Test
            version:       1
            mod date:      4/20/2007 10:11:02
            type code:     'APPL'
            creator code:  '????'
            sys version:   0
            flags:         launch-disabled 
            item flags:    container  package  application  extension-hidden  native-app  i386 
            icon:         
            executable:    Contents/MacOS/Test
            inode:         28648728
            exec inode:    28648762
            container id:  536870912
            library:      
            library items:
           

            claim   id:            2023686144
                    name:          Ayow
                    role:          editor
                    flags:        
                    icon:         
                    bindings:      .ayow, 'AYOW'


    Après test, un redémarrage du Finder suffit à  ce que l'application reconnaisse les fichiers avec l'extension...

    Et à  la suppression du dossier du projet, ça met la base à  jour.
  • BruBru Membre
    01:49 modifié #10
    dans 1177056078:

    [...]
    Je tombe sur des trucs qui n'ont jamais été déplacés... Donc apparemment ça gère même sans simulacre d'installation.
    [...]
    Après test, un redémarrage du Finder suffit à  ce que l'application reconnaisse les fichiers avec l'extension...
    Et à  la suppression du dossier du projet, ça met la base à  jour.


    Ca m'a toujours rendu très perplexe ces histoires de LaunchServices/Finder...

    Du temps des System 1 à  7, il y avait l'option de reconstruction du bureau (je ne me souviens plus du raccourci-clavier à  faire au démarrage). Mais maintenant...

    Quoi qu'il en soit, un début de réponse se trouve dans le chapitre consacré à  Launch Services (Launch Services Concepts - Registering Applications) :
    Il y est expliqué que l'enregistrement d'une application se fait :
    - explicitement via la fonction LSRegisterFSRef (ce que Xcode fait peut être...).
    - automatiquement à  chaque ouverture de session pour les applis présentes dans les répertoires d'applications conventionnels (ceci confirme ce que tu disais dans ton premier message).
    - via le Finder dès qu'une opération mettant en scène l'appli apparait.

    .
  • schlumschlum Membre
    avril 2007 modifié #11
    dans 1177058669:

    Ca m'a toujours rendu très perplexe ces histoires de LaunchServices/Finder...

    Du temps des System 1 à  7, il y avait l'option de reconstruction du bureau (je ne me souviens plus du raccourci-clavier à  faire au démarrage). Mais maintenant...

    "pomme + alt", "shift" servant à  faire un démarrage sans extensions... C'est vieux !  :o

    Maintenant, apparemment c'est comme ça...
    (apparemment, c'est assez rapide...)
  • UniXUniX Membre
    01:49 modifié #12
    dans 1177058953:
    "pomme + alt", "shift" servant à  faire un démarrage sans extensions... C'est vieux !  :o


    Pffff, oui, ça nous rajeunit pas .... :P
Connectez-vous ou Inscrivez-vous pour répondre.