CFBundleDocumentTypes не работает с закрытым UTI в приложении iOS

Я хочу добавить в свое приложение возможность открывать определенные типы аудио: .caf, .aiff, .wav и .mp3. Я добавил элемент 'Типы документов' в info.plist в соответствии с официальное руководство. Вот скриншот: введите здесь описание изображения И исходный код info.plist:

<key>CFBundleDocumentTypes</key>
<array>
    <dict>
        <key>CFBundleTypeName</key>
        <string>Audio</string>
        <key>CFBundleTypeIconFiles</key>
        <array/>
        <key>LSHandlerRank</key>
        <string>Alternate</string>
        <key>CFBundleTypeRole</key>
        <string>Viewer</string>
        <key>LSItemContentTypes</key>
        <array>
            <string>public.mp3</string>
            <string>public.aiff-audio</string>
            <string>public.aifc-audio</string>
            <string>com.apple.coreaudio-​format</string>
            <string>com.microsoft.waveform-​audio</string>
        </array>
    </dict>
</array>

Проблема, о которой идет речь

Проблема в том, что приложение отсутствует в диалоговом окне "Открыть в..." для файлов .caf и .wav. Я думаю, потому что UTI для этих файлов не имеют перфикса public..


person kelin    schedule 21.12.2016    source источник


Ответы (1)


какое-то отсутствующее расширение не проблема с этим.

<key>CFBundleDocumentTypes</key>
 <array>
<dict>
    <key>CFBundleTypeName</key>
    <string>Audio</string>
    <key>CFBundleTypeIconFiles</key>
    <key>LSHandlerRank</key>
    <string>Alternate</string>
    <key>CFBundleTypeRole</key>
    <string>Viewer</string>
    <key>LSItemContentTypes</key>
    <array>
        <string>public.aiff-audio</string>
        <string>public.aifc-audio</string>
        <string>com.apple.coreaudio-​format</string>
        <string>com.microsoft.waveform-​audio</string>
        <string>public.audio</string>
        <string>public.mp3</string>
        <string>public.mpeg-4-audio</string>
        <string>com.apple.protected-​mpeg-4-audio</string>
        <string>public.aifc-audio</string>
        <string>com.apple.coreaudio-​format</string>
        <string>public.aiff-audio</string>
    </array>
</dict>
<dict>
        <key>CFBundleTypeName</key>
        <string>Waveform audio</string>
        <key>LSHandlerRank</key>
        <string>Alternate</string>
        <key>LSItemContentTypes</key>
        <array>
            <string>com.microsoft.waveform-​audio</string>
        </array>
    </dict>
</array>
person vaibby    schedule 21.12.2016
comment
Я знаю, что public.audio будет работать для всех типов аудио, но мне нужны только определенные форматы. - person kelin; 21.12.2016
comment
сначала попробуйте получить доступ к .caf и .wav, что является основной проблемой. а затем удалите public.audio и проверьте здесь отредактированный код. - person vaibby; 21.12.2016