我正在使用AquaticPrime用于在我的应用程序中生成许可证,正如开发人员指南建议的那样,我正在尝试注册自定义文件扩展名,以便用户只需单击许可证,我的应用程序将打开它,然后可以验证许可证。
为此,我已将导出的 UTI 声明添加到我的 Info.plist 中,如下所示:
<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>
但是,当我双击具有该扩展名的文件时,它不会在 MyApp 中打开,并且 MyApp 也不会显示为打开该文件类型的推荐应用程序之一。此外,在查看文件的“信息”面板时,不会显示上面指定的文件类型描述。
有人能看出我的 UTI 声明有什么问题吗?还是我还遗漏了其他内容?
谢谢
最佳答案
您还需要一个 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>
关于cocoa - 通过 UTI 注册文件类型时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3354680/