iOS UIActivity Sharing
Compartir UIActivity de iOS
Compartir UIActivity Simplificado
Desde iOS 6 en adelante, las aplicaciones de terceros pueden compartir datos como texto, URLs o imágenes utilizando mecanismos como AirDrop, como se describe en la guía de Comunicación entre Aplicaciones de Apple. Esta función se manifiesta a través de una hoja de actividad de compartir a nivel del sistema que aparece al interactuar con el botón "Compartir".
Una enumeración exhaustiva de todas las opciones de compartir integradas está disponible en UIActivity.ActivityType. Los desarrolladores pueden optar por excluir opciones de compartir específicas si las consideran inadecuadas para su aplicación.
Cómo Compartir Datos
La atención debe dirigirse a:
La naturaleza de los datos que se comparten.
La inclusión de actividades personalizadas.
La exclusión de ciertos tipos de actividades.
El compartir se facilita mediante la instanciación de un UIActivityViewController
, al cual se le pasan los elementos destinados a compartir. Esto se logra llamando a:
Los desarrolladores deben examinar el UIActivityViewController
para las actividades y actividades personalizadas con las que se inicializa, así como cualquier excludedActivityTypes
especificado.
Cómo recibir datos
Los siguientes aspectos son cruciales al recibir datos:
La declaración de tipos de documento personalizados.
La especificación de tipos de documento que la aplicación puede abrir.
La verificación de la integridad de los datos recibidos.
Sin acceso al código fuente, aún se puede inspeccionar el Info.plist
en busca de claves como UTExportedTypeDeclarations
, UTImportedTypeDeclarations
y CFBundleDocumentTypes
para comprender los tipos de documentos que una aplicación puede manejar y declarar.
Una guía concisa sobre estas claves está disponible en Stackoverflow, resaltando la importancia de definir e importar UTIs para el reconocimiento a nivel del sistema y asociar tipos de documentos con su aplicación para la integración en el diálogo "Abrir con".
Enfoque de prueba dinámica
Para probar actividades de envío, se podría:
Engancharse en el método
init(activityItems:applicationActivities:)
para capturar los elementos y actividades compartidos.Identificar actividades excluidas interceptando la propiedad
excludedActivityTypes
.
Para recibir elementos, implica:
Compartir un archivo con la aplicación desde otra fuente (por ejemplo, AirDrop, correo electrónico) que solicite el diálogo "Abrir con...".
Enganchar
application:openURL:options:
entre otros métodos identificados durante el análisis estático para observar la respuesta de la aplicación.Emplear archivos malformados o técnicas de fuzzing para evaluar la robustez de la aplicación.
Referencias
Última actualización