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

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

声明一个自定义的文件types,在这里回答这个问题 ,并且查看了链接的示例代码,但不能很好地遵循它。 我有一个结构,我转换为数据,然后与空投分享,我想了解如何创build一个数据types,使接收设备知道打开我的应用程序接收数据。

任何人都可以为我清除它?

答案在这里跟进

如果您的应用程序定义了新的文件types。 那么您需要在Info.plistUTExportedTypeDeclarations部分中定义该自定义UTI。

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

CFBundleDocumentTypes是声明你的应用程序可以打开的文件types。

这是一个构成的文件types,恰好是一个扩展名为.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所以你的应用程序是作为一个select打开这样的文件提供:

 <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匹配。