ios cocoa cfbundledocumenttypes

ios - La aplicación se muestra en el menú "Abrir en..." como "Copiar en MyApp"



cocoa cfbundledocumenttypes (4)

Recientemente, estaba trabajando para mostrar mi aplicación en el menú "Abrir en ..." al abrir archivos adjuntos de correo personalizados (digamos que extensión-archivo es xyz , y he declarado una application/xyz tipo mime personalizada). Seguí la guía en este sitio:

https://developer.apple.com/library/ios/qa/qa1587/_index.html

y mi aplicación ahora se muestra entre todas las demás aplicaciones, cuando toco en el adjunto correspondiente. El problema está en la descripción en mi aplicación. En lugar de mostrar su nombre ( MyApp ), se muestra como Copy to MyApp . ¿Hay alguna manera de hacer que la descripción de mi aplicación no contenga Copy to palabras?

Actualización, aquí están las pantallas de información de mi aplicación:


Asegúrate de establecer el LSHandlerRank en tu .plist en Owner

Owner indica que la suya es la aplicación nativa que crea y abre archivos de este tipo.

Actualizar Intente configurar CFBundleTypeRole en el Viewer

[...] La función "Visor" para su tipo de documento, [...] significa que su aplicación puede abrir y leer un formato de archivo en particular, pero no puede guardar en este formato de archivo. Publicar en MacOSX Guru Site

Podría imaginar que no se le permite editar los archivos reales que están adjuntos a un correo electrónico de todos modos.


CFBundleTypeRole no funciona con iOS. El nombre del menú es simplemente depende de LSHandlerRank.

Aquí está el resultado en mi prueba.

Owner: Copy to [MyApp] Alternate, Default: Import with [MyApp] None: No appearance (tested in iOS 10.3.1)

El uso adicional se detalla en la referencia de CoreFoundationKeys.

https://developer.apple.com/library/content/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html#//apple_ref/doc/uid/20001431-101685

Si desea usar un nombre de menú personalizado, puede lograr esto con la extensión Compartir como dijo @Dale.


Sé que esta es una pregunta bastante antigua, pero si configura LSSupportsOpeningDocumentsInPlace en true en su Info.plist, y luego maneja adecuadamente los resultados, iOS mostrará "Abrir en" en lugar de "Copiar a" siempre que la aplicación de origen apoya esto

Mira aquí:

https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/LaunchServicesKeys.html#//apple_ref/doc/uid/TP40009250-SW13

y aquí:

https://developer.apple.com/documentation/uikit/uiapplicationopenurloptionsopeninplacekey

y aquí:

https://developer.apple.com/documentation/foundation/nsurl/1417051-startaccessingsecurityscopedreso

Actualizar

Tenga en cuenta que veo "Abrir en" cuando examino un archivo de mi tipo de archivo desde la aplicación Archivos de iOS. En Dropbox, veo "Copiar a". Supongo que la aplicación Archivos establece una configuración que Dropbox no hace cuando se muestra la hoja "Abrir en". ¿Ha intentado abrir uno de sus archivos desde la aplicación Archivos después de establecer esta configuración?


Su aplicación siempre se mostrará con "Copiar a" usando este método y "Abrir en ...". Ninguna cantidad de ajustes en la configuración cambiará eso.

Lo que quieres hacer en su lugar es crear una extensión Compartir. Los pasos para eso están bien documentados por Apple. Ver por ejemplo: https://developer.apple.com/library/content/documentation/General/Conceptual/ExtensibilityPG/

Una extensión de Compartir cambia la naturaleza de la interacción de tu aplicación. En lugar de responder a openURL en el delegado de su aplicación, crea una extensión compartida que se ocupa de (posiblemente varios archivos) como le parezca.