3

.mybin ファイルをアプリケーションに関連付けようとしている次の Info.plist があります。ただし、.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 に答える