自定义sqlite UTI无法正常工作

时间:2013-06-03 13:33:42

标签: sqlite email-attachments uti

我正在尝试让我的应用程序导入通过电子邮件发送的sqlite文件,因此我在info.plist中创建了文档类型和自定义UTI。但是,当我收到通过电子邮件发送的sqlite文件时,我的应用程序中打开的选项不会出现:

这是文档类型定义:

DocType

这是UTI

UTI

我现在将其修改为以下内容以创建名为.icx的自定义文件扩展名。但是,当我尝试打开icx附件时,我给出的唯一选项是Dropbox,Mail和FileAppPro:

<key>CFBundleDocumentTypes</key>
    <array>
        <dict>
            <key>CFBundleTypeIconFiles</key>
            <array>
                <string>inCommand icon114</string>
            </array>
            <key>CFBundleTypeName</key>
            <string>icx Database</string>
            <key>CFBundleTypeRole</key>
            <string>Editor</string>
            <key>LSHandlerRank</key>
            <string>Owner</string>
            <key>LSItemContentTypes</key>
            <array>
                <string>com.ncbath.inControl.icx</string>
            </array>
        </dict>
    </array>


<key>UTExportedTypeDeclarations</key>
    <array>
        <dict>
            <key>UTTypeConformsTo</key>
            <array>
                <string>public.data</string>
            </array>
            <key>UTTypeDescription</key>
            <string>icx Database</string>
            <key>UTTypeIdentifier</key>
            <string>com.ncbath.inControl.icx</string>
            <key>UTTypeSize320IconFile</key>
            <string>inCommand icon114</string>
            <key>UTTypeSize64IconFile</key>
            <string>inCommand icon57</string>
            <key>UTTypeTagSpecification</key>
            <string>Dictionary</string>
            <key>public.filename-extension</key>
            <string>icx</string>
            <key>public.mime-type</key>
            <array>
                <string>application/inControl</string>
            </array>
        </dict>
    </array>

1 个答案:

答案 0 :(得分:0)

我已修复它 - 我发现如果你在使用UTExportedTypeDeclarations和CFBundleDocumentTypes的GUI条目时不小心,你可以不按顺序获取字典内容 - 在我的例子中是UTTypeTagSpecification。我总结说最好将info.plist视为源并正确编辑它。这是工作代码:

<key>CFBundleDocumentTypes</key>
    <array>
        <dict>
            <key>CFBundleTypeIconFiles</key>
            <array>
                <string>inCommand icon114</string>
            </array>
            <key>CFBundleTypeName</key>
            <string>icx</string>
            <key>CFBundleTypeRole</key>
            <string>Editor</string>
            <key>LSHandlerRank</key>
            <string>Owner</string>
            <key>LSItemContentTypes</key>
            <array>
                <string>com.ncbath.inControl.icx</string>
            </array>
        </dict>
    </array>


<key>UTExportedTypeDeclarations</key>
    <array>
        <dict>
            <key>UTTypeConformsTo</key>
            <array>
                <string>public.data</string>
            </array>
            <key>UTTypeDescription</key>
            <string>icx</string>
            <key>UTTypeIdentifier</key>
            <string>com.ncbath.inControl.icx</string>
            <key>UTTypeSize320IconFile</key>
            <string>inCommand icon114</string>
            <key>UTTypeSize64IconFile</key>
            <string>inCommand icon57</string>
            <key>UTTypeTagSpecification</key>
            <dict>
                <key>public.filename-extension</key>
                <string>icx</string>
                <key>public.mime-type</key>
                <string>application/x-inControl</string>
            </dict>
        </dict>
    </array>