【发布时间】:2012-03-05 04:23:31
【问题描述】:
我正在尝试实现允许我的 iOS 应用程序显示在其他应用程序的“打开方式”列表中的注册过程(如 Apple's Document Interaction Programming Topics 中所述)。我希望我的应用能够处理来自任何提供标准音频文件格式(MP3、AIFF、WAV 等)的应用的音频。
据我了解,我需要做的就是将带有相关子数据的 CFBundleDocumentTypes 键添加到我的应用程序的 Info.plist 中。这是我输入的(通过 Xcode 4 的文档类型编辑器):
<key>CFBundleDocumentTypes</key>
<array>
<dict>
<key>CFBundleTypeIconFiles</key>
<array>
<string>scrubbulator-icon</string>
</array>
<key>CFBundleTypeName</key>
<string>Audio</string>
<key>LSHandlerRank</key>
<string>Alternative</string>
<key>LSItemContentTypes</key>
<array>
<string>public.mp3</string>
</array>
</dict>
</array>
添加此代码不会在应用程序的“打开方式”菜单中显示我的应用程序(我正在 iPhone 上进行测试,使用 Dropbox 中的 MP3 作为文件源。应用程序 AudioMemos 和 Evernote 都显示为 MP3 Dropbox 中的文件,所以我知道该格式受支持)。有什么明显的我做错了,还是有什么我需要实施的?
(注意:我没有在我的 Info.plist 中设置 UTExportedTypeDeclarations 项目,因为我知道这些仅对自定义 UTI 是必需的。因为我使用的是系统 UTI,所以我认为没有必要,但如果我错了,请纠正我。)
编辑
我添加了以下导出类型 UTI,但没有成功:
<key>UTExportedTypeDeclarations</key>
<array>
<dict>
<key>UTTypeConformsTo</key>
<array>
<string>kUTTypeMP3</string>
</array>
<key>UTTypeDescription</key>
<string>Audio file</string>
<key>UTTypeIdentifier</key>
<string>kUTTypeMP3</string>
<key>UTTypeTagSpecification</key>
<dict>
<key>public.filename-extension</key>
<array>
<string>mp3</string>
</array>
</dict>
</dict>
</array>
【问题讨论】:
标签: ios file-handling uti launch-services