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 SDKs que requerirán manifiestos de privacidad a partir de la primavera de 2024. Los SDKs cubren una amplia gama de funcionalidades, incluyendo redes, autenticación, gestión de bases de datos, desarrollo UI y más. Hay muchos SDKs de Facebook y Google aquí, incluyendo al menos 12 solo de Firebase y muchos de Flutter, el paquete de desarrollo multiplataforma de código abierto de Google. La lista también incluye varios SDKs de Meta, incluido uno para AEM, el Aggregated Event Management de Meta que limita la transmisión de datos sensibles a la privacidad mientras permite medir conversiones y compromiso.
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 SDKs y bibliotecas de desarrollo de iOS, junto con breves descripciones de lo que hacen y las empresas, organizaciones o mantenedores detrás de cada uno. Más 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ías una actualización de la app que “añade uno de los SDK listados 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.
Unarazó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.
Otro es un enfoque en lo que hacen. Cualquier SDK que ofrezca configuración remota podría cambiar el comportamiento de la aplicación después de su envío a la App Store y la revisión de Apple’s, lo que obviamente añade riesgo. Cualquier SDK que se use para redes o identificación de usuario/autenticación tiene también potencial de uso indebido, al igual que cualquier SDK que obtenga y proporcione datos a nivel de hardware, software o información de identificadores del dispositivo. We’ve just aprendido cómo los gobiernos han estado usando notificaciones push para vigilar a los usuarios finales, por lo que presumiblemente las empresas u organizaciones podrían hacer lo mismo, y eso’s probablemente la razón por la que vemos algunos SDK de notificaciones push en la lista.
Nos no vemos MMP SDK aquí, lo que sugiere que Apple ve su propio SKAdNetwork como una forma segura de privacidad para la medición de marketing y las empresas de medición que lo usan como aliadas en privacidad. Dado que todos los actores clave en el espacio de medición móvil tienen obligaciones detalladas con las grandes redes auto‑atribuyentes, esto parece una decisión segura. Además, según los datos a los que acceda cada individuo MMP’s SDK, si un MMP quiere cualquier dato de la otra lista de privacidad de Apple’s APIs de razón requerida, eso obligará a declarar la razón del MMP en los manifiestos de privacidad de todos modos.
Panorama: es duro hallar todos los SDK potencialmente infractores, ya que casi cualquier SDK que pueda hacer networking y recopilar datos representa un riesgo potencial. En última instancia, podríamos ver a Apple adoptar algo como el Sandbox de SDK de Google en Privacy Sandbox de Android, que colocará los SDK en un entorno específico que limite su acceso a datos extra.
¿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.