在iOS中注册自定义文件类型

OXX*_*XXY 8 file-type objective-c ios

我正在研究iOS应用程序,其中我希望XML文件成为此应用程序的主要输入.我已经开始搜索行程(主要在stackoverflow中)以查找如何从电子邮件接收XML文件.

首先,我找到了一种替代方法,即为我的文件注册URL格式,并在电子邮件中使用它而不是附加的文件,这种方法很有效.

现在我想使用文件本身(附件)我发现我需要在此应用程序中注册自定义文件类型取决于此资源

  1. 苹果参考
  2. stackoverflow问题
  3. stackoverflow问题2

与此相关我已使用此代码编辑了info.plist文件

<key>CFBundleDocumentTypes</key>
<array>
    <dict>
        <key>CFBundleTypeName</key>
        <string>XML File</string>
        <key>CFBundleTypeRole</key>
        <string>Viewer</string>
        <key>LSHandlerRank</key>
        <string>Owner</string>
        <key>LSItemContentTypes</key>
        <array>
            <string>com.IT.parseXML.XML</string>
        </array>
    </dict>
</array>
Run Code Online (Sandbox Code Playgroud)

这部分也是

<key>UTExportedTypeDeclarations</key>
<array>
    <dict>
        <key>UTTypeConformsTo</key>
        <array>
            <string>public.text</string>
        </array>
        <key>UTTypeDescription</key>
        <string>XML Document</string>
        <key>UTTypeIdentifier</key>
        <string>public.xml</string>
        <key>UTTypeReferenceURL</key>
        <string>http://www.w3.org/TR/rec-xml</string>
        <key>UTTypeTagSpecification</key>
        <dict>
            <key>public.filename-extension</key>
            <array>
                <string>xml</string>
            </array>
            <key>public.mime-type</key>
            <string>text/xml</string>
        </dict>
    </dict>
</array>
Run Code Online (Sandbox Code Playgroud)

我期望能够处理来自电子邮件的XML文件......但这不会发生,我错过了什么?

提前致谢

OXX*_*XXY 4

我已经找到了我的配置中的问题,它就在这条线上

<key>LSItemContentTypes</key>
    <array>
        <string>com.IT.parseXML.XML</string>
    </array>
Run Code Online (Sandbox Code Playgroud)

它应该是

<key>LSItemContentTypes</key>
    <array>
        <string>public.XML</string>
    </array>
Run Code Online (Sandbox Code Playgroud)

正如它在公共标识符中一样