创建用于空投的自定义 UTI,iOS

Creating custom UTI for use with airdrop, iOS

我在 info.plist:

中使用此代码
<key>CFBundleDocumentTypes</key>
<array>
    <dict>
        <key>CFBundleTypeName</key>
        <string>AirDrop Profile File Type</string>
        <key>LSHandlerRank</key>
        <string>Default</string>
        <key>LSItemContentTypes</key>
        <array>
            <string>com.apple.customProfileUTI.customprofile</string>
        </array>
    </dict>
</array>

声明一个自定义文件类型,按照答案 ,并查看了链接的示例代码,但不能很好地理解它。 我有一个结构,我正在转换为数据,然后与空投共享,我试图了解如何创建数据类型,以便接收设备知道打开我的应用程序以接收数据。

任何人都可以帮我解决一下吗?

答案跟进here

如果您的应用定义了新的文件类型。那么您需要在 Info.plist.

UTExportedTypeDeclarations 部分定义该自定义 UTI

这可以在导出的 UTI 部分下应用目标的信息选项卡上 Xcode 中设置,或者您可以手动更新 Info.plist,如下所示。

CFBundleDocumentTypes是声明您的应用可以打开的文件类型。

这是一个伪造的文件类型,恰好是一个扩展名为 .fun.

的二进制文件
<key>UTExportedTypeDeclarations</key>
<array>
    <dict>
        <key>UTTypeConformsTo</key>
        <array>
            <string>public.data</string>
        </array>
        <key>UTTypeDescription</key>
        <string>My Custom Binary File</string>
        <key>UTTypeIdentifier</key>
        <string>com.mycompany.myapp.myfiletype</string>
        <key>UTTypeTagSpecification</key>
        <dict>
            <key>public.filename-extension</key>
            <array>
                <string>fun</string>
            </array>
        </dict>
    </dict>
</array>

设置好后,您还可以设置 CFBundleDocumentTypes,以便您可以选择打开此类文件:

<key>CFBundleDocumentTypes</key>
<array>
    <dict>
        <key>CFBundleTypeIconFiles</key>
        <array/>
        <key>CFBundleTypeName</key>
        <string>My Custom Binary File</string>
        <key>LSHandlerRank</key>
        <string>Owner</string>
        <key>LSItemContentTypes</key>
        <array>
            <string>com.mycompany.myapp.myfiletype</string>
        </array>
    </dict>
</array>

请注意 CFBundleDocumentTypesLSItemContentTypes 值必须如何匹配 UTI 的 UTTypeIdentifier