3

我有以下 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>
4

1 回答 1

2

您可以使用以下lsregister命令进行调查:

alias lsregister='/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/LaunchServices.framework/Versions/A/Support/lsregister'
lsregister -lint -f /path/to/your.app

(我使用的是 Lion。在不同版本的 Mac OS 上,路径可能lsregister不同。)

于 2013-09-24T17:59:51.757 回答