Sto lavorando a un'applicazione iOS che consente di esportare i dati inviando un file via e-mail. L'app registra il tipo di file come un file con l'estensione 'sainputs' (questo è così che l'app può anche aprire un file da un'e-mail o da un dropbox per importare i valori - questo funziona bene). Sto cercando di aggiungere la possibilità di inviare il file a qualsiasi altra applicazione in grado di aprire vari tipi di file. Dropbox è un buon esempio: si suppone che sia in grado di aprire qualsiasi tipo di file.iOS: errore durante l'invio di file specifici dell'applicazione a Dropbox utilizzando UIDocumentInteractionController
Attualmente sto tentando questo visualizzando un UIDocumentInteractionController inizializzato con l'URL del file. Quando viene visualizzato, l'app Dropbox viene visualizzata come una delle opzioni disponibili per l'apertura del file, come previsto.
Tuttavia, quando si preme l'icona Dropbox, non accade nulla e nella console vedo il seguente testo:
LaunchServices: Invalid LSOpenOperation request - No applications found to open document
Nel documento plist dell'app registra un tipo di documento con UTI com.mycompany.myapp. sainputs e registra un UTI di tipo esportato con identificatore com.mycompany.myapp.sainputs, con estensione di nome file pubblica "sainputs" e myapp/input di tipo MIME.
Ecco gli estratti rilevanti dal file 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>
Ho provato a cambiare il tipo MIME per 'application/octet-stream' nel file plist. Non ha fatto la differenza.
Qualsiasi consiglio/idea sarebbe molto apprezzato.
Fornire un valore per la chiave 'UTTypeConformsTo'. Forse 'public.data' funzionerà. – rmaddy
Grazie rmaddy! Questo ha fatto il trucco! Si prega di inviare questo come una risposta, quindi posso contrassegnarlo come la risposta corretta. – bgh