2010-07-28 107 views
3

我在我的應用中使用AquaticPrime進行許可證生成,並且開發人員指南建議我嘗試註冊自定義文件擴展名,以便用戶只需點擊許可證和我的應用程序即可將打開它,然後可以驗證許可證。通過UTI註冊文件類型的問題

<key>UTExportedTypeDeclarations</key> 
<array> 
    <dict> 
     <key>UTTypeDescription</key> 
     <string>MyApp License File</string> 
     <key>UTTypeConformsTo</key> 
     <array> 
      <string>public.xml</string> 
     </array> 
     <key>UTTypeIdentifier</key> 
     <string>com.mycompany.myapplicense</string> 
     <key>UTTypeTagSpecification</key> 
     <dict> 
      <key>public.filename-extension</key> 
      <array> 
       <string>myapplicense</string> 
      </array> 
     </dict> 
    </dict> 
</array> 

然而,當我在與擴展它不會打開一個文件,然後雙擊:

要做到這一點,如下我增加了一個出口UTI聲明我的Info.plist MyApp,也不會將MyApp顯示爲推薦的應用程序之一以打開文件類型。同樣,在查看文件的信息面板時,上面指定的文件類型描述不會出現。

任何人都可以看到我的UTI聲明有什麼問題,還是有其他的東西我錯過了?

感謝

回答

3

你還需要一個CFBundleDocumentTypes聲明。

<key>CFBundleDocumentTypes</key> 
<array> 
    <dict> 
     <key>CFBundleTypeIconFile</key> 
     <string>MyAppLicenseIcon</string> 
     <key>CFBundleTypeRole</key> 
     <string>Viewer</string> 
     <key>NSDocumentClass</key> 
     <string>MyAppLicenseHandler</string> 
     <key>LSItemContentTypes</key> 
     <array> 
      <string>com.mycompany.myapplicense</string> 
     </array> 
    </dict> 
</array> 
+0

我可能是錯的,但我認爲這隻在應用程序是基於文檔時才需要? – Griff 2010-07-28 17:02:55

+0

我錯了 - 這有效。非常感謝! – Griff 2010-07-28 17:06:49

0

要添加到這一點,在我的情況,我只好也確保我進入正確的格式UTI這樣:

 <key>UTTypeConformsTo</key> 
    <array> 
     <string>public.xml</string> 

我的文件是一個簡單的.plist,它仍然符合xml。你需要確保你知道你符合哪種UTI格式。