我有以下 Info.plist,我试图将 .mybin 文件与应用程序相关联。但是,安装 .mybin 文件后没有图标、描述或关联(使用获取信息查看时)。我对 OSX 开发完全陌生,我继承了应用程序的打包,所以我不知道如何调试问题。如果有任何区别,则使用 productbuild 将应用程序打包到 .app 中。
我已经将我的 info.plist 与其他几个应用程序进行了比较,我能看到的唯一区别是许多包括已弃用的键,例如 CFBundleTypeExtensions。因为我只需要支持 10.6 和更高版本,我不相信我需要这个,并且 LSItemContentTypes 应该足够了。据我了解,LSItemContentTypes 的“com.me.myapp.mybin”是指向导出的同名 UTI 的链接。
我曾尝试手动将 .mybin 文件与应用程序关联,但是当我双击说应用程序不处理该类型的文件时失败了。
谁能告诉我们这个 info.plist 有什么问题或要调查什么?
谢谢。
<plist version="1.0">
<dict>
<key>CFBundleIconFile</key>
<string>MyApp.icns</string>
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleGetInfoString</key>
<string>My Application version 1.0, Copyright © 2013.</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleExecutable</key>
<string>My Application</string>
<key>CFBundleName</key>
<string>My Application</string>
<key>LSMinimumSystemVersion</key>
<string>10.6</string>
<key>CFBundleIdentifier</key>
<string>com.me.myapp</string>
<key>CFBundleDisplayName</key>
<string>My Application</string>
<key>CFBundleVersion</key>
<string>1.0.0</string>
<key>CFBundleShortVersionString</key>
<string>1.0.0</string>
<key>LSMultipleInstancesProhibited</key>
<true/>
<key>CFBundleDocumentTypes</key>
<array>
<dict>
<key>CFBundleTypeIconFile</key>
<string>MyApp</string>
<key>CFBundleTypeName</key>
<string>My Application binary</string>
<key>CFBundleTypeRole</key>
<string>Viewer</string>
<key>LSItemContentTypes</key>
<array>
<string>com.me.myapp.mybin</string>
</array>
<key>LSHandlerRank</key>
<string>Owner</string>
</dict>
</array>
<key>UTExportedTypeDeclarations</key>
<array>
<dict>
<key>UTTypeConformsTo</key>
<array>
<string>public.data</string>
</array>
<key>UTTypeDescription</key>
<string>My Application binary</string>
<key>UTTypeIconFile</key>
<string>MyApp.icns</string>
<key>UTTypeIdentifier</key>
<string>com.me.myapp.mybin</string>
<key>UTTypeTagSpecification</key>
<dict>
<key>public.filename-extension</key>
<string>mybin</string>
<key>public.mime-type</key>
<string>application/vnd.me-app.binary</string>
</dict>
</dict>
</array>
</dict>
</plist>