Requisitos del SDK de Apple: qué hace cada uno de los 86 SDK que exigen el manifiesto de privacidad
Apple acaba de presentar una lista de 86 SDK que requerirán manifiestos de privacidad a partir de la primavera de 2024. Estos SDK abarcan una amplia gama de funciones, como redes, autenticación, gestión de bases de datos, desarrollo de interfaz de usuario y más. Aquí se incluyen numerosos SDK de Facebook y Google , incluyendo al menos 12 solo para Firebase y muchos para Flutter, el paquete de desarrollo multiplataforma de código abierto de Google. La lista también incluye un número significativo de SDK de Meta, incluyendo uno para AEM, la Gestión de Eventos Agregados de Meta, que limita la transmisión de datos confidenciales a la vez que permite la medición de conversiones e interacciones.
Organizaciones o mantenedores con la mayor cantidad de SDK en la lista :
- Google: 24
- Comunidad Flutter: 19
- Meta: 7
- Una señal: 4
Algunas de las capacidades comunes de los SDK en la lista de manifiesto de privacidad:
- Tareas de vídeo e imagen: 10
- Gestión, almacenamiento y análisis de datos: 9
- Tareas de redes y networking: 5
- Notificaciones: 5
- Inicio de sesión/autenticación de usuario: 4
- Vistas web en aplicaciones: 3
- Biblioteca compartida: 3
- Cifrado: 2
Aquí tienes una lista con los 86 SDK y bibliotecas de desarrollo de apps iOS, junto con breves descripciones generales de su función y las empresas, organizaciones o mantenedores que están detrás de cada uno. Más información sobre lo que NO está en la lista a continuación ...
Los 86 manifiestos de privacidad que requieren SDK
| SDK/Biblioteca | Descripción general | Empresa/Organización/Mantenedor |
| Hacer rappel | Bibliotecas de C++ para tipos de datos y algoritmos | |
| Redes AF | Biblioteca de redes para solicitudes HTTP | Software de Alamofire |
| Alamofire | Biblioteca de redes basada en Swift | Software de Alamofire |
| Autorización de aplicaciones | Biblioteca OAuth 2.0 y OpenID Connect | Fundación OpenID y colaboradores |
| BoringSSL / openssl_grpc | Bibliotecas criptográficas | Google (BoringSSL), Proyecto gRPC (openssl_grpc) |
| Condensador | Marco de desarrollo de aplicaciones multiplataforma | Marco iónico |
| Gráficos | Biblioteca Swift para gráficos interactivos | Manzana |
| conectividad_plus | Complemento de Flutter para conectividad de red | Comunidad de Flutter |
| Córdoba | Marco de desarrollo de aplicaciones multiplataforma | Fundación de software Apache |
| información_del_dispositivo_más | Complemento de Flutter para obtener información del dispositivo | Comunidad de Flutter |
| Controlador DKImagePicker | Biblioteca de selectores de imágenes | Dang-Khoa Nguyen |
| Galería de fotos DK | Biblioteca de galerías de fotos | Dang-Khoa Nguyen |
| Kit FBAEM | Kit de gestión de eventos de Facebook Analytics | |
| Promesas de FBL | Biblioteca de promesas para Objective-C/Swift | |
| Kit básico de FBSDK | Funcionalidad principal del SDK de Facebook | |
| Conceptos básicos de FBSDKCoreKit | Funcionalidad principal del SDK de Facebook | |
| Kit de inicio de sesión de FBSDK | SDK de Facebook para la autenticación de usuarios | |
| Kit de intercambio de archivos FBSDK | SDK de Facebook para compartir contenido | |
| selector de archivos | Complemento de Flutter para seleccionar archivos | Comunidad de Flutter |
| Pruebas ABT de Firebase | Servicio Firebase para pruebas A/B | |
| FirebaseAuth | Servicio Firebase para la autenticación de usuarios | |
| FirebaseCore | Servicio Firebase para la configuración de aplicaciones | |
| Diagnóstico básico de Firebase | Servicio Firebase para diagnóstico de aplicaciones | |
| Extensión de FirebaseCore | Extensión de FirebaseCore | |
| FirebaseCoreInternal | Configuraciones internas de FirebaseCore | |
| FirebaseCrashlytics | Servicio Firebase para informar fallos | |
| Enlaces dinámicos de Firebase | Servicio Firebase para enlaces profundos | |
| FirebaseFirestore | Base de datos NoSQL de Firebase | |
| Instalaciones de Firebase | Servicio Firebase para el seguimiento de instalaciones | |
| Mensajería de Firebase | Servicio Firebase para notificaciones push | |
| Configuración remota de Firebase | Servicio Firebase para configuración remota | |
| Aleteo | Kit de herramientas de interfaz de usuario de Google para multiplataforma | |
| flutter_inappwebview | Complemento de Flutter para vistas web dentro de la aplicación | Comunidad de Flutter |
| notificaciones locales de flutter | Complemento de Flutter para notificaciones locales | Comunidad de Flutter |
| tostada de aleteo | Complemento de Flutter para notificaciones de notificaciones | Comunidad de Flutter |
| Base de Datos FMDB | Gestión de bases de datos SQLite en aplicaciones iOS | Carne voladora inc. |
| geolocalizador_apple | Plugin de Flutter para geolocalización en iOS | Flujo base |
| Transporte de datos de Google | Marco para el transporte de datos | |
| Iniciar sesión en Google | Biblioteca para el inicio de sesión de Google | |
| Caja de herramientas de Google para Mac | Utilidades para los servicios de Google en macOS/iOS | |
| Utilidades de Google | Utilidades y funciones auxiliares para Google | |
| grpcpp | Implementación de gRPC en C++ | Proyecto gRPC |
| Autenticación de aplicaciones GTM | Biblioteca para integrar AppAuth con Google | |
| GTMSessionFetcher | Biblioteca de Google para la gestión de solicitudes de red | |
| Hermes | Motor de JavaScript para aplicaciones React Native | |
| selector de imágenes ios | Complemento de Flutter para seleccionar imágenes (iOS) | Comunidad de Flutter |
| Administrador de teclado IQ | Biblioteca para gestionar el teclado iOS | Michael Tyson |
| Administrador de teclado IQ Swift | Versión rápida de IQKeyboardManager | Michael Tyson |
| Martín pescador | Biblioteca Swift para descarga y almacenamiento en caché de imágenes | wei wang |
| niveldb | Biblioteca de bases de datos LevelDB de Google | |
| Lottie | Biblioteca para agregar animaciones a aplicaciones iOS | Airbnb |
| HUD de progreso de MB | Biblioteca para mostrar indicadores de carga | Matej Bukovinski |
| nanopb | Implementación de Buffers de Protocolo en C | Dave Garton y colaboradores |
| Una señal | Servicio de notificaciones push | OneSignal Inc. |
| OneSignalCore | Funcionalidad principal de OneSignal | OneSignal Inc. |
| Extensión OneSignal | Extensión para notificaciones de OneSignal | OneSignal Inc. |
| Resultados de OneSignal | Análisis y seguimiento de resultados de OneSignal | OneSignal Inc. |
| OpenSSL | Biblioteca criptográfica para comunicaciones seguras. | Comunidad OpenSSL |
| Conjunto ordenado | Estructura de datos para colecciones ordenadas | Manzana |
| información del paquete | Complemento de Flutter para recuperar información del paquete | Comunidad de Flutter |
| información_del_paquete_más | Ampliación de package_info con información adicional | Comunidad de Flutter |
| proveedor_de_ruta | Complemento de Flutter para rutas de directorio | Comunidad de Flutter |
| proveedor_de_rutas_ios | Complemento de ruta de directorio específico de iOS (Flutter) | Comunidad de Flutter |
| Promesas | Biblioteca Swift para gestionar tareas asincrónicas | |
| Protobuf | Formato de serialización de Protocol Buffers | |
| Accesibilidad | Biblioteca para monitorizar la accesibilidad de la red | Tony Million |
| RealmSwift | Base de datos móvil para almacenamiento y recuperación de datos | MongoDB |
| Cacao recetado | Extensiones de RxSwift para Cocoa/UIKit | ReactiveX y colaboradores |
| Relé Rx | Extensión de RxSwift para proporcionar comportamiento de retransmisión | ReactiveX y colaboradores |
| RxSwift | Biblioteca de programación reactiva para Swift | ReactiveX y colaboradores |
| Imagen web SD | Biblioteca para carga y almacenamiento en caché de imágenes asincrónicas | Olivier Poitrey y colaboradores |
| compartir_más | Plugin de Flutter para compartir contenido | Comunidad de Flutter |
| preferencias_compartidas_ios | Complemento SharedPreferences específico para iOS (Flutter) | Comunidad de Flutter |
| SnapKit | Biblioteca Swift para restricciones de diseño automático | Comunidad SnapKit |
| sqflite | Complemento de base de datos SQLite para Flutter | Comunidad de Flutter |
| Starscream | Biblioteca WebSocket para Swift | Dalton Cherry y colaboradores |
| HUD de progreso de SV | Biblioteca para visualizar HUD (Head-Up Displays) | Sam Vermette |
| SwiftyGif | Biblioteca Swift para mostrar GIF | Daniel Martín |
| SwiftyJSON | Biblioteca Swift para analizar datos JSON | Ruo Yu Fu |
| Tostada | Complemento de Flutter para mostrar mensajes de notificación | Hajime Nakamura |
| UnityFramework | Marco para crear aplicaciones basadas en Unity | Tecnologías de Unity |
| lanzador de URL | Complemento de Flutter para lanzar URL | Comunidad de Flutter |
| lanzador de URL iOS | Complemento de iniciador de URL específico para iOS (Flutter) | Comunidad de Flutter |
| reproductor de vídeo avfoundation | Complemento de reproductor de vídeo Flutter para AVFoundation | Comunidad de Flutter |
| wakelock | Complemento de Flutter para evitar que el dispositivo entre en suspensión | Comunidad de Flutter |
| vista web_flutter_wkwebview | Complemento de Flutter para WebView con soporte para WKWebView | Comunidad de Flutter |
(Nota: ChatGPT creó parcialmente esta información. La revisé y actualicé algunos datos donde había cambios recientes o había alguna confusión, pero no puedo garantizar que sea 100 % precisa en todos los casos.)
Nota importante sobre el manifiesto de privacidad de Apple que requiere SDK
Apple afirma que los desarrolladores de aplicaciones deberán empezar a incluir manifiestos de privacidad para cualquier SDK incluido. Sin embargo, este requisito está sujeto a ciertas condiciones :
- Cuando envías una nueva aplicación
- Cuando envía una actualización de la aplicación que " agrega uno de los SDK enumerados como parte de la actualización"
He hecho hincapié en los "añadidos" porque, según el lenguaje sencillo de la notificación de Apple, no será necesario declarar manifiestos de privacidad para estos SDK si se actualiza una aplicación antigua que ya incluye uno de ellos. En otras palabras, se está aplicando una cláusula de derechos adquiridos.
Por supuesto, no soy abogado: consulte con el suyo para estar seguro de sus obligaciones.
¿Por qué estos SDK y no otros?
Por supuesto, no sabemos la motivación de Apple aquí, pero podemos especular por qué Apple eligió estos SDK y no otros.
Una razón podría ser simplemente la escala . Cualquier SDK con cientos de miles o millones de instalaciones o inclusiones en aplicaciones representa un riesgo considerable si se usa incorrectamente, por lo que la simple escala podría ser un factor.
Otra es el enfoque en su función . Cualquier SDK que ofrezca configuración remota podría modificar el comportamiento de la aplicación tras su envío a la App Store y la revisión de Apple, lo que obviamente aumenta el riesgo. Cualquier SDK utilizado para redes o para la identificación/autenticación de usuarios también tiene potencial de uso indebido, al igual que cualquier SDK que obtenga y proporcione datos sobre hardware, software o identificadores a nivel de dispositivo. Acabamos de descubrir cómo los gobiernos han estado utilizando las notificaciones push para vigilar a los usuarios finales , por lo que presumiblemente las empresas u organizaciones podrían hacer lo mismo, y probablemente por eso vemos algunos SDK de notificaciones push en la lista.
No vemos SDKs de MMP aquí , lo que sugiere que Apple considera su propia SKAdNetwork como una forma segura de medición de marketing, y que las empresas de medición de marketing que la utilizan son aliadas en materia de privacidad. Dado que todos los actores importantes en el ámbito de la medición móvil tienen obligaciones detalladas con las grandes redes de autoatribución, esta parece una decisión acertada. Además, dependiendo de los datos a los que acceda el SDK de cada MMP, si un MMP desea datos de otras API , esto obligará a que el motivo del MMP se declare en los manifiestos de privacidad.
En resumen: es difícil encontrar todos los SDK potencialmente infractores , ya que prácticamente cualquier SDK que pueda ejecutar redes y recopilar datos supone un riesgo potencial. En última instancia, podríamos ver a Apple adoptar algo similar al SDK Sandbox de Google en Privacy Sandbox para Android, que colocará los SDK en un entorno específico que limita su acceso a datos extracurriculares.
¿Habrá más?
Por supuesto, existe la posibilidad de que se creen más SDK. Nada es estático en tecnología, especialmente en dispositivos móviles, y a medida que se creen más SDK, Apple querrá supervisarlos. Cabe destacar que Apple se protege contra quienes simplemente renombran o reempaquetan los SDK para eludir los requisitos:
“Cualquier versión de un SDK listado, así como cualquier SDK que reempaquete los que figuran en la lista, están incluidos en el requisito”, afirma Apple.
En otras palabras, no se puede evadir el requisito.