Pracuję nad aplikacją iOS, która umożliwia eksportowanie danych przez wysłanie pliku pocztą e-mail. Aplikacja rejestruje typ pliku jako plik z rozszerzeniem "sainputs" (tak, aby aplikacja mogła również otwierać plik z wiadomości e-mail lub skrzynki referencyjnej w celu importowania wartości - to działa poprawnie). Próbuję dodać możliwość wysłania pliku do dowolnej innej aplikacji, która może otwierać różne typy plików. Dropbox to dobry przykład - powinien otwierać dowolny typ pliku.iOS: błąd podczas wysyłania pliku specyficznego dla aplikacji do Dropbox za pomocą UIDocumentInteractionController
Obecnie próbuję to, wyświetlając UIDocumentInteractionController, który jest zainicjalizowany z adresu URL pliku. Po wyświetleniu aplikacja Dropbox pojawia się zgodnie z oczekiwaniami jako jeden z dostępnych sposobów otwierania pliku.
Jednak, kiedy nacisnąć ikonę Dropbox, i nic się nie dzieje w konsoli widzę następujący tekst:
LaunchServices: Invalid LSOpenOperation request - No applications found to open document
w pliku plist o aplikacji rejestruje typ dokumentu mającego UTI com.mycompany.myapp. sainputs i rejestruje wyeksportowany typ UTI o identyfikatorze com.mycompany.myapp.sainputs z publicznymi rozszerzeniami nazw plików 's oraz Mapp typu myapp/inputs.
Oto istotne fragmenty pliku plist:
<key>CFBundleDocumentTypes</key>
<array>
<dict>
<key>CFBundleTypeName</key>
<string>My App's File Type</string>
<key>LSHandlerRank</key>
<string>Owner</string>
<key>LSItemContentTypes</key>
<array>
<string>com.mycompany.myapp.sainputs</string>
</array>
</dict>
<array>
.
.
.
<key>UTExportedTypeDeclarations</key>
<array>
<dict>
<key>UTTypeConformsTo</key>
<array/>
<key>UTTypeDescription</key>
<string>My App's File Type</string>
<key>UTTypeIdentifier</key>
<string>com.mycompany.myapp.sainputs</string>
<key>UTTypeTagSpecification</key>
<dict>
<key>public.filename-extension</key>
<string>sainputs</string>
<key>public.mime-type</key>
<string>steuerapp/inputs</string>
</dict>
</dict>
<array>
Próbowałem zmieniając typ MIME dla 'application/octet-stream' w pliku plist. To nie miało znaczenia.
Wszelkie porady/pomysły byłyby bardzo cenne.
Podaj wartość dla klucza 'UTTypeConformsTo'. Być może "public.data" zadziała. – rmaddy
Dziękuję rmaddy! To wystarczy! Opublikuj to jako odpowiedź, więc mogę oznaczyć ją jako poprawną odpowiedź. – bgh