0

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

这是文档类型定义:

文档类型

这是尿路感染

尿路感染

我现在已将其修改为以下内容,以创建一个名为 .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>
4

1 回答 1

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>
于 2013-06-04T19:57:55.723 回答