6

我在 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>

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

任何人都可以为我澄清一下吗?

答案在这里跟进

4

1 回答 1

15

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

这可以在 Xcode 中的应用程序目标的 Info 选项卡上的 Exported UTI 部分下进行设置,或者您可以手动更新 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>

注意 的LSItemContentTypesCFBundleDocumentTypes必须如何匹配 UTI 的UTTypeIdentifier.

于 2017-07-17T22:32:36.297 回答