2

レベル ファイルをゲーム アプリに送信するレベル エディターを開発しています。UIDocumentInteractionControllerオプション メニューに表示されるように、ゲームにカスタム UTI を登録しました。

ただし、「MyApp で開く」を選択すると、「無効な LSOpenOperation 要求 - ドキュメントを開くアプリケーションが見つかりません」というコンソール エラーが表示されます。

ここで提案されている解決策を試しました。これは、の値を追加することですUTTypeConformsTo。ただし、これは役に立ちませんでした。

また、以下を含む次の議論をここで読みました。

エクスポートされた UTI で設定された MIME タイプは、電子メールの添付ファイルの MIME タイプと一致する必要があります。plist ファイルの MIME タイプは application/octet-stream に設定されていましたが、電子メールは application/json MIME タイプとして添付されていました。これらが一致しない場合、アプリケーションは [Open with...] メニューに表示されるように見えますが、電子メールの添付ファイルを開こうとしてもアプリケーションは起動しません。両方を application/json に切り替えて、問題を修正しました。

メールの添付ファイルで MIME タイプがどのように設定されるかを理解しています。しかし、NSFileManager でローカルに作成されたファイルを開いています。ローカル ファイルの MIME タイプを設定する方法はありますか? それとも、これは他の問題である可能性が高いですか?

これらのどれが重要なのかはわかりませんが、ドキュメントタイプの設定は次のとおりです(エディターではなくゲームで—上記のエラーのためにゲームのInfo.plistが問題であると想定しています):

<key>CFBundleDocumentTypes</key>
    <array>
        <dict>
            <key>CFBundleDocumentTypes</key>
            <array>
                <dict>
                    <key>CFBundleTypeName</key>
                    <string>MyApp Level Pack</string>
                    <key>CFBundleTypeOSTypes</key>
                    <array>
                        <string>com.myapp.sslp</string>
                    </array>
                    <key>CFBundleTypeRole</key>
                    <string>Viewer</string>
                    <key>LSHandlerRank</key>
                    <string>Owner</string>
                    <key>LSItemContentTypes</key>
                    <array>
                        <string>public.json</string>
                        <string>com.myapp.sslp</string>
                    </array>
                </dict>
            </array>
            <key>CFBundleTypeName</key>
            <string>MyApp Level Pack</string>
            <key>LSItemContentTypes</key>
            <array>
                <string>com.myapp.sslp</string>
                <string>public.json</string>
            </array>
        </dict>
    </array>

エクスポートされた型宣言の場合:

<key>UTExportedTypeDeclarations</key>
    <array>
        <dict>
            <key>UTExportedTypeDeclarations</key>
            <array>
                <dict>
                    <key>UTTypeConformsTo</key>
                    <array>
                        <string>public.data</string>
                        <string>public.json</string>
                    </array>
                    <key>UTTypeDescription</key>
                    <string>MyApp Level Pack</string>
                    <key>UTTypeIdentifier</key>
                    <string>com.myapp.sslp</string>
                    <key>UTTypeTagSpecification</key>
                    <dict>
                        <key>public.filename-extension</key>
                        <string>sslp</string>
                        <key>public.mime-type</key>
                        <string>application/json</string>
                    </dict>
                </dict>
            </array>
            <key>UTTypeConformsTo</key>
            <array>
                <string>public.data</string>
                <string>public.json</string>
            </array>
            <key>UTTypeDescription</key>
            <string>MyApp Level Pack</string>
            <key>UTTypeIdentifier</key>
            <string>com.myapp.sslp</string>
        </dict>
    </array>
4

0 に答える 0