Я пытаюсь реализовать процесс регистрации, который позволяет моему приложению 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, использую MP3 в Dropbox в качестве источника файла. Приложения AudioMemos и Evernote отображаются для MP3 файл в Dropbox, поэтому я знаю, что формат поддерживается). Есть ли что-то очевидное, что я делаю неправильно, или мне нужно что-то еще реализовать?
(Примечание. Я не настроил элемент UTExportedTypeDeclarations
в своем Info.plist, так как я понимаю, что он необходим только для пользовательских UTI. Поскольку я использую системные UTI, я считаю, что в этом нет необходимости, но, пожалуйста, поправьте меня, если я ошибаюсь.)
EDIT
Я добавил следующий экспортированный тип 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>