2010-07-28 52 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格式。