我正在为Mac OS X创建一个应用程序,我想知道我是否在应用程序的.plist文件中正确使用了uti:
<key>UTExportedTypeDeclarations</key>
<array>
<dict>
<key>UTTypeIdentifier</key>
<string>com.petroules.silverlock.database</string>
<key>UTTypeDescription</key>
<string>Silverlock Database File</string>
<key>UTTypeIconFile</key>
<string>app.icns</string>
<key>UTTypeConformsTo</key>
<array>
<string>public.data</string>
</array>
<key>UTTypeTagSpecification</key>
<dict>
<key>com.apple.ostype</key>
<string>SDBX</string>
<key>public.filename-extension</key>
<array>
<string>sdbx</string>
</array>
<key>public.mime-type</key>
<string>application/octet-stream</string>
</dict>
</dict>
</array>
虽然双击finder中的.sdbx文件不会导致应用程序本身打开文件,但此代码似乎可以工作…但这可能只是我的代码(稍后我将研究)。
另外,我的文件类型的格式是用base-64编码的加密内容…application/octet流是否是用于此目的的最佳mime类型,或者是否应该使用其他类型,我是否可以通过使用不太常见的mime类型在频谱中的任何位置遇到兼容性问题?
此外,我还包括以下代码:
<key>CFBundleDocumentTypes</key>
<array>
<dict>
<key>CFBundleTypeExtensions</key>
<array>
<string>sdbx</string>
</array>
<key>CFBundleTypeIconFile</key>
<string>app.icns</string>
<key>CFBundleTypeName</key>
<string>com.petroules.silverlock.database</string>
<key>CFBundleTypeRole</key>
<string>Editor</string>
<key>LSItemContentTypes</key>
<array>
<string>com.petroules.silverlock.database</string>
</array>
<key>LSHandlerRank</key>
<string>Owner</string>
</dict>
</array>
我应该包括这个吗,因为我上面有UTI代码?这是必要的吗?这两者有什么区别?我无法从文件中确定这一点。谢谢)