创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.plist
的UTExportedTypeDeclarations
部分中定义该自定义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>
请注意CFBundleDocumentTypes
的LSItemContentTypes
值如何与UTI的UTTypeIdentifier
匹配。