Я пытаюсь реализовать процесс регистрации, который позволяет моему приложению iOS отображаться в списке "Другие" в других приложениях (как описано в Apple Document Темы программирования взаимодействия). Я хочу, чтобы мое приложение могло обрабатывать аудио из любого приложения, которое предоставит стандартный формат аудиофайлов (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. Поскольку я использую System UTIs, я считаю, что это не обязательно, но, пожалуйста, поправьте меня, если я ошибаюсь.)
ИЗМЕНИТЬ
Я добавил следующий экспортированный тип 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>