我在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,并查看链接的示例代码,但无法很好地遵循它。 我有一个结构,我转换为数据,然后与airdrop共享,我试图了解如何创建一个数据类型,使接收设备知道打开我的应用程序接收数据。
任何人都可以为我清理一下吗?
随后回答here
答案 0 :(得分:4)
如果您的应用定义了新的文件类型。然后,您需要在UTExportedTypeDeclarations
的{{1}}部分中定义该自定义UTI。
可以在导出的UTI部分下的应用目标的信息选项卡上的Xcode中设置,也可以手动更新Info.plist,如下所示。
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>
的{{1}}值必须与UTI的LSItemContentTypes
匹配。