I am working on an iOS application that allows exporting its data by emailing a file. The app registers the file-type as a file having the extension 'sainputs' (this is so that the app can also open a file from an email or dropbox for importing the values - this works fine). I am trying to add the possibility to send the file to any other application that can open miscellaneous types of files. Dropbox is a good example - it is supposed to be able to open any type of file.
I am currently attempting this by displaying a UIDocumentInteractionController that is initialized with the URL of the file. When it is displayed, the Dropbox app appears as one of the available choices for opening the file, as expected.
However, when I press the Dropbox icon, nothing happens and in the console I see the following text:
LaunchServices: Invalid LSOpenOperation request - No applications found to open document
In the app's plist file it registers a document type having UTI com.mycompany.myapp.sainputs, and it registers an exported type UTI having identifier com.mycompany.myapp.sainputs, with public file name extension 'sainputs' and MIME-type myapp/inputs.
Here are the relevant excerpts from the plist file:
<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>
I tried changing the MIME-type to 'application/octet-stream' in the plist file. It did not make a difference.
Any advice/ideas would be highly appreciated.
UTTypeConformsTo
key. Perhapspublic.data
will work. – rmaddy