2017-03-01 4 views
1

J'essaie d'associer une extension de fichier personnalisée, disons .abc, à une application sur laquelle je travaille, de sorte que lorsque je double-clique sur un fichier avec cette extension spécifique, mon application se lance . Un fichier .abc est juste un fichier d'archive (.zip renommé en .abc) regroupant plusieurs fichiers .xml. Lorsque je charge un de ces fichiers .abc avec mon application, l'archive est extraite et les fichiers .xml sont analysés afin que je puisse définir des valeurs pour certaines variables dans mon code.Associer l'extension de fichier personnalisée à mon application

Si je comprends bien, il y a deux parties à cela.

  • laisser OS X savent que l'extension .abc doit être associée à mon application
  • la gestion du dossier dans mon application une fois qu'il est lancé

Pour l'instant, je vais avoir des problèmes avec la première partie. J'ai déjà lu quelques messages de débordement de pile traitant de ce sujet (comme here ou here) mais je ne peux pas comprendre comment ils arrivent avec le contenu de la valeur de chaîne pour la clé <LSItemContentTypes> (j'ai essayé abc mais ça ne marche pas t travail) et pour la clé <UTTypeIdentifier>.

Jusqu'à présent, cela est le code que je l'ai ajouté à mon dossier info.plist

<key>CFBundleDocumentTypes</key> 
<array> 
    <dict> 
     <key>CFBundleTypeIconFile</key> 
     <array> 
      <string>myicon.icns</string> 
     </array> 
     <key>CFBundleTypeName</key> 
     <string>My Custom Project File</string> 
     <key>CFBundleTypeRole</key> 
     <string>Editor</string> 
     <key>LSHandlerRank</key> 
     <string>Owner</string> 
     <key>LSItemContentTypes</key> 
     <array> 
      <string>don't.know.what.to.put.here.abc</string> 
     </array> 
    </dict> 
</array> 

<key>UTExportedTypeDeclarations</key> 
<array> 
    <dict> 
     <key>UTTypeConformsTo</key> 
     <array> 
      <string>public.data</string> <!--not sure about that value--> 
     </array> 
     <key>UTTypeDescription</key> 
     <string>My Custom Project File</string> 
     <key>UTTypeIdentifier</key> 
     <string>don't.know.what.to.put.here.abc</string> 
     <key>UTTypeTagSpecification</key> 
     <dict> 
      <key>public.filename-extension</key> 
      <string>abc</string> 
      <key>public.mime-type</key> 
      <string>application/octet-stream</string> <!--not sure about that value--> 
     </dict> 
    </dict> 
</array> 

Aussi, est-UTTypeConformsTo public.data ok dans mon cas? Depuis l'extension de fichier personnalisée représente une archive contenant des fichiers XML?

Si quelqu'un pouvait me aider :)

Merci

+0

N'hésitez pas à répondre à votre propre question: D – robertklep

+0

Je pensais que l'édition était la voie à suivre! – nmud

+0

Il est facile d'oublier une réponse qui est postée dans la question (IMHO). – robertklep

Répondre

0

j'ai trouvé la solution à mon problème, je viens de mal lu la documentation, puisque la CFBundleTypeIconFile clé est une chaîne et non un tableau de chaînes (Je me suis trompé parce que je suivais et exemple iOS en utilisant la clé CFBundleTypeIconFiles qui est un tableau)