我正在尝试实现允许我的 iOS 应用程序显示在其他应用程序的“打开方式”列表中的注册过程(如Apple 的文档交互编程主题中所述)。我希望我的应用程序能够处理来自任何提供标准音频文件格式(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 都显示为 Dropbox 中的 MP3 文件,所以我知道支持格式)。有什么明显的我做错了,还是我需要实施其他什么?
(注意:我没有在我的 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>