2012-02-13 13 views
28

Próbuję wdrożyć proces rejestracji, który pozwala mojej aplikacji na iOS pokazać się na liście "Otwórz w" innych aplikacji (jak opisano w Apple's Document Interaction Programming Topics). Chcę, aby moja aplikacja obsługiwała dźwięk z dowolnej aplikacji, która zapewni standardowy format pliku audio (MP3, AIFF, WAV itp.).Dlaczego moja aplikacja na iOS nie jest wyświetlana w oknie dialogowym innych aplikacji "Otwórz w"?

Jak rozumiem, wszystko, co powinienem zrobić, to dodać klucz CFBundleDocumentTypes z odpowiednimi subdata do pliku Info.plist mojej aplikacji. To jest to, co umieścić w (poprzez Xcode 4 za typów dokumentów editor):

<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> 

Dodanie tego kodu nie wyświetla moją aplikację w aplikacje «Otwórz w menu» (I m testowania na iPhone, stosując MP3 w Dropbox jako źródło plików Aplikacje AudioMemos i Evernote są wyświetlane dla pliku MP3 w Dropbox, więc wiem, że format jest obsługiwany). Czy jest coś oczywistego, co robię źle, czy jest coś jeszcze, co muszę wprowadzić?

(Uwaga: Nie ustawiłem elementu UTExportedTypeDeclarations w moim pliku Info.plist, ponieważ rozumiem, że jest to konieczne tylko dla niestandardowych terminali UTI. Ponieważ używam systemowych UTI, uważam, że nie powinno to być konieczne, ale Proszę mnie poprawić jeśli się mylę)

EDIT

Dodałem następujące wywożonego rodzaju infekcji dróg moczowych, ale bez powodzenia.

<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> 

Odpowiedz

55

do wszystkich standardowych formatów plików:

<key>CFBundleDocumentTypes</key> 
<array> 
    <dict> 
     <key>CFBundleTypeName</key> 
     <string>Unknown File</string> 
     <key>LSHandlerRank</key> 
     <string>Alternate</string> 
     <key>LSItemContentTypes</key> 
     <array> 
      <string>public.calendar-event</string> 
      <string>public.database</string> 
      <string>public.executable</string> 
      <string>public.data</string> 
      <string>public.content </string> 
      <string>public.item</string> 
     </array> 
    </dict> 
    <dict> 
     <key>CFBundleTypeName</key> 
     <string>Video</string> 
     <key>LSHandlerRank</key> 
     <string>Alternate</string> 
     <key>LSItemContentTypes</key> 
     <array> 
      <string>public.video</string> 
     </array> 
    </dict> 
    <dict> 
     <key>CFBundleTypeName</key> 
     <string>Image</string> 
     <key>LSHandlerRank</key> 
     <string>Alternate</string> 
     <key>LSItemContentTypes</key> 
     <array> 
      <string>public.image</string> 
     </array> 
    </dict> 
    <dict> 
     <key>CFBundleTypeName</key> 
     <string>Web Archive</string> 
     <key>LSHandlerRank</key> 
     <string>Alternate</string> 
     <key>LSItemContentTypes</key> 
     <array> 
      <string>com.apple.webarchive</string> 
     </array> 
    </dict> 
    <dict> 
     <key>CFBundleTypeName</key> 
     <string>iWork Keynote</string> 
     <key>LSHandlerRank</key> 
     <string>Alternate</string> 
     <key>LSItemContentTypes</key> 
     <array> 
      <string>com.apple.keynote.key</string> 
      <string>com.apple.iwork.keynote.key</string> 
      <string>com.apple.iwork.keynote.kth</string> 
     </array> 
    </dict> 
    <dict> 
     <key>CFBundleTypeName</key> 
     <string>iWork Numbers</string> 
     <key>LSHandlerRank</key> 
     <string>Alternate</string> 
     <key>LSItemContentTypes</key> 
     <array> 
      <string>com.apple.numbers.numbers</string> 
      <string>com.apple.iwork.numbers.numbers</string> 
      <string>com.apple.iwork.numbers.template</string> 
     </array> 
    </dict> 
    <dict> 
     <key>CFBundleTypeName</key> 
     <string>iWork Pages</string> 
     <key>LSHandlerRank</key> 
     <string>Alternate</string> 
     <key>LSItemContentTypes</key> 
     <array> 
      <string>com.apple.page.pages</string> 
      <string>com.apple.iwork.pages.pages</string> 
      <string>com.apple.iwork.pages.template</string> 
     </array> 
    </dict> 
    <dict> 
     <key>CFBundleTypeName</key> 
     <string>OpenDocument Spreadsheet</string> 
     <key>LSHandlerRank</key> 
     <string>Alternate</string> 
     <key>LSItemContentTypes</key> 
     <array> 
      <string>org.oasis.opendocument.spreadsheet</string> 
     </array> 
    </dict> 
    <dict> 
     <key>CFBundleTypeName</key> 
     <string>OpenDocument Presentation</string> 
     <key>LSHandlerRank</key> 
     <string>Alternate</string> 
     <key>LSItemContentTypes</key> 
     <array> 
      <string>org.oasis.opendocument.presentation</string> 
     </array> 
    </dict> 
    <dict> 
     <key>CFBundleTypeName</key> 
     <string>OpenDocument Text</string> 
     <key>LSHandlerRank</key> 
     <string>Alternate</string> 
     <key>LSItemContentTypes</key> 
     <array> 
      <string>org.oasis.opendocument.text</string> 
     </array> 
    </dict> 
    <dict> 
     <key>CFBundleTypeName</key> 
     <string>Folder</string> 
     <key>LSHandlerRank</key> 
     <string>Alternate</string> 
     <key>LSItemContentTypes</key> 
     <array> 
      <string>public.folder</string> 
     </array> 
    </dict> 

<dict> 
     <key>CFBundleTypeName</key> 
     <string>Audio</string> 
     <key>LSHandlerRank</key> 
     <string>Alternate</string> 
     <key>LSItemContentTypes</key> 
     <array> 
      <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>Movie</string> 
     <key>LSHandlerRank</key> 
     <string>Alternate</string> 
     <key>LSItemContentTypes</key> 
     <array> 
      <string>public.movie</string> 
      <string>public.3gpp2</string> 
      <string>public.3gpp</string> 
      <string>public.mpeg</string> 
      <string>com.apple.quicktime-movie</string> 
      <string>public.mpeg-4</string> 
     </array> 
    </dict> 
    <dict> 
     <key>CFBundleTypeName</key> 
     <string>GIF image</string> 
     <key>LSHandlerRank</key> 
     <string>Alternate</string> 
     <key>LSItemContentTypes</key> 
     <array> 
      <string>com.compuserve.gif</string> 
     </array> 
    </dict> 
    <dict> 
     <key>CFBundleTypeName</key> 
     <string>PNG image</string> 
     <key>LSHandlerRank</key> 
     <string>Alternate</string> 
     <key>LSItemContentTypes</key> 
     <array> 
      <string>public.png</string> 
     </array> 
    </dict> 
    <dict> 
     <key>CFBundleTypeName</key> 
     <string>TIFF image</string> 
     <key>LSHandlerRank</key> 
     <string>Alternate</string> 
     <key>LSItemContentTypes</key> 
     <array> 
      <string>public.tiff</string> 
     </array> 
    </dict> 
    <dict> 
     <key>CFBundleTypeName</key> 
     <string>JPEG image</string> 
     <key>LSHandlerRank</key> 
     <string>Alternate</string> 
     <key>LSItemContentTypes</key> 
     <array> 
      <string>public.jpeg</string> 
     </array> 
    </dict> 
    <dict> 
     <key>CFBundleTypeName</key> 
     <string>XML</string> 
     <key>LSHandlerRank</key> 
     <string>Alternate</string> 
     <key>LSItemContentTypes</key> 
     <array> 
      <string>public.xml</string> 
     </array> 
    </dict> 
    <dict> 
     <key>CFBundleTypeName</key> 
     <string>HTML</string> 
     <key>LSHandlerRank</key> 
     <string>Alternate</string> 
     <key>LSItemContentTypes</key> 
     <array> 
      <string>public.html</string> 
      <string>public.xhtml</string> 
     </array> 
    </dict> 
    <dict> 
     <key>CFBundleTypeName</key> 
     <string>Rich Text</string> 
     <key>LSHandlerRank</key> 
     <string>Alternate</string> 
     <key>LSItemContentTypes</key> 
     <array> 
      <string>public.rtf</string> 
      <string>com.apple.rtfd</string> 
      <string>com.apple.flat-rtfd</string> 
     </array> 
    </dict> 
    <dict> 
     <key>CFBundleTypeName</key> 
     <string>Text</string> 
     <key>LSHandlerRank</key> 
     <string>Alternate</string> 
     <key>LSItemContentTypes</key> 
     <array> 
      <string>public.text</string> 
      <string>public.plain-text</string> 
      <string>public.utf8-plain-text</string> 
      <string>public.utf16-external-plain-​text</string> 
      <string>public.utf16-plain-text</string> 
      <string>com.apple.traditional-mac-​plain-text</string> 
      <string>public.source-code</string> 
      <string>public.c-source</string> 
      <string>public.objective-c-source</string> 
      <string>public.c-plus-plus-source</string> 
      <string>public.objective-c-plus-​plus-source</string> 
      <string>public.c-header</string> 
      <string>public.c-plus-plus-header</string> 
      <string>com.sun.java-source</string> 
      <string>public.script</string> 
      <string>public.shell-script</string> 
     </array> 
    </dict> 
    <dict> 
     <key>CFBundleTypeExtensions</key> 
     <array> 
      <string>zip</string> 
      <string>zipx</string> 
     </array> 
     <key>CFBundleTypeName</key> 
     <string>Zip archive</string> 
     <key>LSHandlerRank</key> 
     <string>Alternate</string> 
     <key>LSItemContentTypes</key> 
     <array> 
      <string>public.zip-archive</string> 
      <string>public.archive</string> 
      <string>com.pkware.zip-archive</string> 
      <string>com.pkware.zipx-archive</string> 
     </array> 
    </dict> 
    <dict> 
     <key>CFBundleTypeExtensions</key> 
     <array> 
      <string>rar</string> 
      <string>RAR</string> 
     </array> 
     <key>CFBundleTypeName</key> 
     <string>Rar archive</string> 
     <key>LSHandlerRank</key> 
     <string>Alternate</string> 
     <key>LSItemContentTypes</key> 
     <array> 
      <string>com.rarlab.rar-archive</string> 
      <string>public.archive</string> 
     </array> 
    </dict> 
    <dict> 
     <key>CFBundleTypeExtensions</key> 
     <array> 
      <string>7z</string> 
      <string>7Z</string> 
     </array> 
     <key>CFBundleTypeName</key> 
     <string>7z archive</string> 
     <key>LSHandlerRank</key> 
     <string>Alternate</string> 
     <key>LSItemContentTypes</key> 
     <array> 
      <string>org.7-zip.7-zip-archive</string> 
      <string>public.archive</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> 
    <dict> 
     <key>CFBundleTypeName</key> 
     <string>Windows icon image</string> 
     <key>LSHandlerRank</key> 
     <string>Alternate</string> 
     <key>LSItemContentTypes</key> 
     <array> 
      <string>com.microsoft.ico</string> 
      <string>com.apple.icns</string> 
     </array> 
    </dict> 
    <dict> 
     <key>CFBundleTypeName</key> 
     <string>Windows bitmap image</string> 
     <key>LSHandlerRank</key> 
     <string>Alternate</string> 
     <key>LSItemContentTypes</key> 
     <array> 
      <string>com.microsoft.bmp</string> 
     </array> 
    </dict> 
    <dict> 
     <key>CFBundleTypeName</key> 
     <string>Microsoft PowerPoint</string> 
     <key>LSHandlerRank</key> 
     <string>Alternate</string> 
     <key>LSItemContentTypes</key> 
     <array> 
      <string>com.microsoft.powerpoint.​ppt</string> 
      <string>org.openxmlformats.presentationml.presentation</string> 
     </array> 
    </dict> 
    <dict> 
     <key>CFBundleTypeName</key> 
     <string>Microsoft Excel</string> 
     <key>LSHandlerRank</key> 
     <string>Alternate</string> 
     <key>LSItemContentTypes</key> 
     <array> 
      <string>org.openxmlformats.spreadsheetml.sheet</string> 
      <string>com.microsoft.excel.xls</string> 
     </array> 
    </dict> 
    <dict> 
     <key>CFBundleTypeName</key> 
     <string>Microsoft Word</string> 
     <key>LSHandlerRank</key> 
     <string>Alternate</string> 
     <key>LSItemContentTypes</key> 
     <array> 
      <string>com.microsoft.word.doc</string> 
      <string>com.microsoft.word.wordml</string> 
      <string>org.openxmlformats.wordprocessingml.document</string> 
     </array> 
    </dict> 
    <dict> 
     <key>CFBundleTypeName</key> 
     <string>PDF</string> 
     <key>LSHandlerRank</key> 
     <string>Alternate</string> 
     <key>LSItemContentTypes</key> 
     <array> 
      <string>com.adobe.pdf</string> 
     </array> 
    </dict> 
</array> 
+1

Nie wiem dokładnie, co to stałe, ale kopiowane sekcję audio z kod powyżej i teraz działa! Dziękuję Ci! (Zmodyfikowałem twój kod, aby podświetlić sekcję audio, którą skopiowałem.) –

+0

W celu późniejszego wykorzystania, ZWW Eksportowane i Importowane nie były konieczne, aby to działało. –

+0

Dziękuję bardzo za ten post ładnie działający ... świetna robota –

5

Należy użyć Alternate zamiast Alternative

<key>LSHandlerRank</key> 
<string>Alternate</string> 
0
<key>CFBundleDocumentTypes</key> 
<array> 
    <dict> 
     <key>CFBundleTypeExtensions</key> 
     <array> 
      <string>"*"</string> 
     </array> 
     <key>CFBundleTypeName</key> 
     <string>Unknown</string> 
     <key>LSItemContentTypes</key> 
     <array> 
      <string>public.data</string> 
     </array> 
    </dict> 
</array> 
Powiązane problemy