在swift中将文件类型与iOS应用程序关联

在swift中将文件类型与iOS应用程序关联,ios,swift,email-attachments,uti,Ios,Swift,Email Attachments,Uti,我是iOS开发新手。我设计了一个通过邮件发送的自定义附件。当我收到邮件中的附件时,我想在我的应用程序中打开附件。 这是我的信息列表 <key>UTExportedTypeDeclarations</key> <array> <dict> <key>UTTypeConformsTo</key> <array> <string>public.

我是iOS开发新手。我设计了一个通过邮件发送的自定义附件。当我收到邮件中的附件时,我想在我的应用程序中打开附件。 这是我的信息列表

<key>UTExportedTypeDeclarations</key>
<array>
    <dict>
        <key>UTTypeConformsTo</key>
        <array>
            <string>public.data</string>
        </array>
        <key>UTTypeDescription</key>
        <string>pvt file</string>
        <key>UTTypeIdentifier</key>
        <string>com.pryvateBeta.crypt.pvt</string>
        <key>UTTypeTagSpecification</key>
        <dict>
            <key>public.filename-extension</key>
            <string>pvt</string>
        </dict>
    </dict>
</array>
<key>CFBundleDocumentsType</key>
<array>
    <dict>
        <key>CFBundleTypeIconFiles</key>
        <array/>
        <key>CFBundleTypeName</key>
        <string>pvt file</string>
        <key>CFBundleTypeRole</key>
        <string>Viewer</string>
        <key>LSHandlerRank</key>
        <string>Owner</string>
        <key>LSItemContentTypes</key>
        <array>
            <string>com.pryvateBeta.crypt.pvt</string>
        </array>
    </dict>
</array>
在这篇文章中,我曾经问过这个问题。这可能是这个的复制品。但是,我没有找到解决方案,也找不到问题所在


我的代码中缺少什么?感谢您的帮助

试试这个。我在plist中复制并粘贴了ur代码,但它不起作用。然后我创建了另一个plist,其代码如下所示。及其工作原理

       <key>CFBundleDocumentTypes</key>
<array>
    <dict>
        <key>LSItemContentTypes</key>
        <array>
            <string>com.pryvateBeta.crypt.pvt</string>
        </array>
        <key>CFBundleTypeRole</key>
        <string>Viewer</string>
        <key>CFBundleTypeName</key>
        <string>pvt file</string>
        <key>LSHandlerRank</key>
        <string>Owner</string>
    </dict>
</array>
<key>UTExportedTypeDeclarations</key>
<array>
    <dict>
        <key>UTTypeConformsTo</key>
        <array>
            <string>public.data</string>
        </array>
        <key>UTTypeIdentifier</key>
        <string>com.pryvateBeta.crypt.pvt</string>
        <key>UTTypeTagSpecification</key>
        <dict>
            <key>public.mime-type</key>
            <string>application/pry</string>
            <key>public.filename-extension</key>
            <string>pvt</string>
        </dict>
    </dict>
</array>

试试这个。我在plist中复制并粘贴了ur代码,但它不起作用。然后我创建了另一个plist,其代码如下所示。及其工作原理

       <key>CFBundleDocumentTypes</key>
<array>
    <dict>
        <key>LSItemContentTypes</key>
        <array>
            <string>com.pryvateBeta.crypt.pvt</string>
        </array>
        <key>CFBundleTypeRole</key>
        <string>Viewer</string>
        <key>CFBundleTypeName</key>
        <string>pvt file</string>
        <key>LSHandlerRank</key>
        <string>Owner</string>
    </dict>
</array>
<key>UTExportedTypeDeclarations</key>
<array>
    <dict>
        <key>UTTypeConformsTo</key>
        <array>
            <string>public.data</string>
        </array>
        <key>UTTypeIdentifier</key>
        <string>com.pryvateBeta.crypt.pvt</string>
        <key>UTTypeTagSpecification</key>
        <dict>
            <key>public.mime-type</key>
            <string>application/pry</string>
            <key>public.filename-extension</key>
            <string>pvt</string>
        </dict>
    </dict>
</array>

使用应用程序目标编辑器的“信息”选项卡设置文档类型和导出的UTI。它将正确设置Info.plist。plist中是否缺少任何内容?因此,我可以按照您提到的方式添加它@matt使用应用程序目标编辑器的“信息”选项卡来设置您的文档类型和导出的UTI。它将正确设置Info.plist。plist中是否缺少任何内容?这样我就可以像你提到的那样添加它了@matt不幸的是,现在还没有改变@shebins,它到底包含了什么?它应该是Bundle ID+文件扩展名吗?它真的很有效。。我还想知道一件事。如何处理此文件?我想在我的一个VEIWController中打开此文件。正如您在问题中提到的。该委托将调用。。参数url包含ur文件路径不幸的是,还没有更改@shebins该参数真正包含什么?它应该是Bundle ID+文件扩展名吗?它真的很有效。。我还想知道一件事。如何处理此文件?我想在我的一个VEIWController中打开此文件。正如您在问题中提到的。该委托将调用。。参数url包含ur文件路径