Requisitos do SDK da Apple: O que cada um dos 86 SDKs que exigem manifesto de privacidade faz
Apple acabou de lançar uma lista de 86 SDKs que exigirão manifestos de privacidade a partir da primavera de 2024. Os SDKs cobrem diversas funcionalidades, incluindo rede, autenticação, gerenciamento de banco de dados, desenvolvimento de UI e mais. Há muitos SDKs do Facebook e Google aqui, incluindo pelo menos 12 apenas para Firebase e vários para Flutter, o pacote de desenvolvimento multiplataforma de código aberto do Google. A lista também traz um número significativo de SDKs da Meta, incluindo um para AEM, o Gerenciamento Agregado de Eventos da Meta, que limita a transmissão de dados sensíveis e permite medir conversões e engajamento.
Organizações ou responsáveis pela manutenção com o maior número de SDKs na lista:
- Google: 24
- Comunidade Flutter: 19
- Meta: 7
- OneSignal: 4
Algumas das funcionalidades comuns dos SDKs listadas no manifesto de privacidade:
- Tarefas de vídeo e imagem: 10
- Gerenciamento, armazenamento e análise de dados: 9
- Tarefas de rede e de rede: 5
- Notificações: 5
- Login/autenticação do usuário: 4
- Visualizações da Web em aplicativos: 3
- Biblioteca compartilhada: 3
- Criptografia: 2
Aqui está uma lista com todos os 86 SDKs e bibliotecas de desenvolvimento iOS, com breves descrições do que fazem e das empresas, organizações ou mantenedores por trás de cada um. Mais sobre o que NÃO está na lista abaixo …
Todos os 86 manifestos de privacidade que exigem SDKs
| SDK/Biblioteca | Visão geral | Empresa/Organização/Responsável pela Manutenção |
| Rapel | Bibliotecas C++ para tipos de dados e algoritmos | |
| Rede AF | Biblioteca de rede para requisições HTTP | Software Alamofire |
| Alamofire | Biblioteca de rede baseada em Swift | Software Alamofire |
| AppAuth | Biblioteca OAuth 2.0 e OpenID Connect | Fundação OpenID e colaboradores |
| BoringSSL / openssl_grpc | Bibliotecas criptográficas | Google (BoringSSL), Projeto gRPC (openssl_grpc) |
| Capacitor | Framework de desenvolvimento de aplicativos multiplataforma | Estrutura iônica |
| Gráficos | Biblioteca Swift para gráficos interativos | Apple |
| conectividade_plus | Plugin Flutter para conectividade de rede | Comunidade Flutter |
| Córdoba | Framework de desenvolvimento de aplicativos multiplataforma | Fundação de Software Apache |
| informações_do_dispositivo_mais | Plugin Flutter para informações do dispositivo | Comunidade Flutter |
| Controlador DKImagePicker | Biblioteca de seleção de imagens | Dang-Khoa Nguyen |
| Galeria de Fotos DK | Biblioteca de galeria de fotos | Dang-Khoa Nguyen |
| Kit FBAEM | Kit de gerenciamento de eventos do Facebook Analytics | |
| Promessas FBLP | Biblioteca de promessas para Objective-C/Swift | |
| FBSDKCoreKit | Funcionalidades principais do SDK do Facebook | |
| FBSDKCoreKit_Básico | Funcionalidades principais do SDK do Facebook | |
| Kit de login FBSDK | SDK do Facebook para autenticação de usuários | |
| FBSDKShareKit | SDK do Facebook para compartilhamento de conteúdo | |
| seletor de arquivos | Plugin Flutter para seleção de arquivos | Comunidade Flutter |
| Testes FirebaseAB | Serviço Firebase para testes A/B | |
| FirebaseAuth | Serviço Firebase para autenticação de usuários | |
| FirebaseCore | Serviço Firebase para configuração de aplicativos | |
| Diagnóstico do núcleo do Firebase | Serviço Firebase para diagnóstico de aplicativos | |
| Extensão FirebaseCore | Extensão FirebaseCore | |
| FirebaseCoreInternal | Configurações internas do FirebaseCore | |
| FirebaseCrashlytics | Serviço Firebase para relatórios de falhas | |
| FirebaseDynamicLinks | Serviço Firebase para links diretos | |
| FirebaseFirestore | Banco de dados NoSQL do Firebase | |
| Instalações do Firebase | Serviço Firebase para rastreamento de instalações | |
| FirebaseMessaging | Serviço Firebase para notificações push | |
| FirebaseRemoteConfig | Serviço Firebase para configuração remota | |
| Flutter | Kit de ferramentas de interface do usuário do Google para multiplataforma | |
| flutter_inappwebview | Plugin Flutter para webviews em aplicativos | Comunidade Flutter |
| flutter_notificações_locais | Plugin Flutter para notificações locais | Comunidade Flutter |
| fluttertoast | Plugin Flutter para notificações toast | Comunidade Flutter |
| FMDB | Gerenciamento de banco de dados SQLite em aplicativos iOS | Flying Meat Inc. |
| geolocalizador_maçã | Plugin Flutter para geolocalização no iOS | Fluxo base |
| GoogleDataTransport | Estrutura para transporte de dados | |
| Login do Google | Biblioteca para login do Google | |
| GoogleToolboxParaMac | Utilitários para serviços do Google no macOS/iOS | |
| Utilitários do Google | Utilitários e funções auxiliares para o Google | |
| grpcpp | Implementação em C++ do gRPC | Projeto gRPC |
| GTMAppAuth | Biblioteca para integrar o AppAuth com o Google | |
| GTMSessionFetcher | Biblioteca do Google para gerenciamento de solicitações de rede | |
| Hermes | Mecanismo JavaScript para aplicativos React Native | |
| image_picker_ios | Plugin Flutter para seleção de imagens (iOS) | Comunidade Flutter |
| Gerenciador de teclado IQ | Biblioteca para gerenciar o teclado do iOS | Michael Tyson |
| IQKeyboardManagerSwift | Versão Swift do IQKeyboardManager | Michael Tyson |
| Martim-pescador | Biblioteca Swift para download/cache de imagens | Wei Wang |
| leveldb | Biblioteca de banco de dados LevelDB do Google | |
| Lottie | Biblioteca para adicionar animações a aplicativos iOS | Airbnb |
| HUD de progresso MB | Biblioteca para exibir indicadores de carregamento | Matej Bukovinski |
| nanopb | Implementação de Protocol Buffers em C | Dave Garton e colaboradores |
| OneSignal | Serviço de notificações push | OneSignal Inc. |
| OneSignalCore | Funcionalidades principais do OneSignal | OneSignal Inc. |
| Extensão OneSignal | Extensão para notificações do OneSignal | OneSignal Inc. |
| Resultados do OneSignal | Análises e rastreamento de resultados do OneSignal | OneSignal Inc. |
| OpenSSL | Biblioteca criptográfica para comunicação segura. | Comunidade OpenSSL |
| Conjunto ordenado | Estrutura de dados para coleções ordenadas | Apple |
| informações_do_pacote | Plugin Flutter para recuperar informações de pacotes | Comunidade Flutter |
| informações_do_pacote_mais | Extensão do pacote_info com informações adicionais | Comunidade Flutter |
| provedor_de_caminho | Plugin Flutter para caminhos de diretório | Comunidade Flutter |
| provedor_de_caminho_ios | Plugin de caminho de diretório específico para iOS (Flutter) | Comunidade Flutter |
| Promessas | Biblioteca Swift para lidar com tarefas assíncronas | |
| Protobuf | Formato de serialização do Protocol Buffers | |
| Acessibilidade | Biblioteca para monitoramento da acessibilidade da rede | Tony Million |
| RealmSwift | Banco de dados Mobile para armazenamento/recuperação de dados | MongoDB |
| RxCacau | Extensões RxSwift para Cocoa/UIKit | ReactiveX e colaboradores |
| Relé Rx | Extensão RxSwift para fornecer comportamento de retransmissão | ReactiveX e colaboradores |
| RxSwift | Biblioteca de programação reativa para Swift | ReactiveX e colaboradores |
| SDWebImage | Biblioteca para carregamento/cache assíncrono de imagens | Olivier Poitrey e colaboradores |
| compartilhar_mais | Plugin Flutter para compartilhamento de conteúdo | Comunidade Flutter |
| preferências_compartilhadas_ios | Plugin SharedPreferences específico para iOS (Flutter) | Comunidade Flutter |
| SnapKit | Biblioteca Swift para restrições de Auto Layout | Comunidade SnapKit |
| sqflite | Plugin de banco de dados SQLite para Flutter | Comunidade Flutter |
| Starscream | Biblioteca WebSocket para Swift | Dalton Cherry e colaboradores |
| SVProgressHUD | Biblioteca para exibição de HUDs (Head-Up Displays) | Sam Vermette |
| SwiftyGif | Biblioteca Swift para exibir GIFs | Daniel Martín |
| SwiftyJSON | Biblioteca Swift para analisar dados JSON | Ruoyu Fu |
| Brinde | Plugin Flutter para exibir mensagens toast | Hajime Nakamura |
| UnityFramework | Framework para criação de aplicativos baseados em Unity | Tecnologias Unity |
| url_launcher | Plugin Flutter para abrir URLs | Comunidade Flutter |
| url_launcher_ios | Plugin de inicialização de URL específico para iOS (Flutter) | Comunidade Flutter |
| video_player_avfoundation | Plugin de reprodutor de vídeo Flutter para AVFoundation | Comunidade Flutter |
| bloqueio de despertar | Plugin do Flutter para impedir que o dispositivo entre em modo de suspensão | Comunidade Flutter |
| webview_flutter_wkwebview | Plugin Flutter para WebView com suporte a WKWebView | Comunidade Flutter |
(Nota: este conteúdo foi parcialmente criado pelo ChatGPT. Verifiquei e atualizei alguns dados onde houve alterações recentes ou onde havia alguma confusão, mas não posso garantir que esteja 100% correto em todos os casos.)
Nota importante sobre o manifesto de privacidade da Apple que exige SDKs
A Apple afirma que os desenvolvedores de aplicativos precisarão começar a incluir manifestos de privacidade para qualquer SDK listado. Mas existem algumas condições para esse requisito:
- Ao enviar um novo aplicativo
- Quando você envia uma atualização de app que “adiciona um dos SDKs listados como parte da atualização”
Adicionei ênfase ao termo "adiciona" acima porque, com base na linguagem clara da notificação da Apple, você não precisará declarar manifestos de privacidade para esses SDKs se estiver atualizando um aplicativo antigo que já inclua um desses SDKs. Em outras palavras, há uma espécie de direito adquirido em vigor.
É claro que não sou advogado: consulte o seu para ter certeza de suas obrigações.
Por que esses SDKs e não outros?
É claro que não sabemos a motivação da Apple aqui, mas podemos especular sobre o porquê de a Apple ter escolhido esses SDKs e não outros.
Umadas razões pode ser simplesmente a escala. Qualquer SDK com centenas de milhares ou milhões de instalações ou inclusões em aplicativos representa um risco amplo se usado indevidamente, então a escala em si pode ser um fator importante aqui.
Outra é um foco no que eles fazem. Qualquer SDK que ofereça configuração remota pode mudar o comportamento do app após sua submissão à App Store e a revisão da Apple’s, o que obviamente aumenta o risco. Qualquer SDK usado para rede ou autenticação de ID de usuário tem potencial de uso indevido, assim como qualquer SDK que coleta e fornece dados de hardware, software ou informações de identificador ao nível do dispositivo. Acabamos de aprendido como os governos têm usando notificações push para vigiar usuários finais, então presumivelmente empresas ou organizações poderiam fazer o mesmo, e isso provavelmente explica por que vemos alguns SDKs de notificação push na lista.
Nós não vemos MMP SDKs aqui, sugerindo que a Apple vê sua própria SKAdNetwork como uma forma de medição de marketing com privacidade e empresas de medição que a utilizam como aliadas na privacidade. Dado que todos os principais players no mobile espaço de medição têm obrigações detalhadas com as grandes redes auto‑atribuídas, isso parece uma escolha segura. Além disso, dependendo dos dados que cada SDK de MMP’s acessa, se um MMP quiser qualquer dado da outra lista de privacidade da Apple APIs de motivo obrigatório, isso forçará que o motivo do MMP’s seja declarado nos manifestos de privacidade de qualquer forma.
Visão geral: é difícil achar todos os SDKs potencialmente infratores, pois quase todo SDK que faz rede e coleta dados é risco potencial. No fim, a Apple pode adotar um Sandbox de SDKs como o do Google no Privacy Sandbox Android, limitando o acesso a dados extras.
Tem mais por vir?
É claro que existe a possibilidade de surgirem mais SDKs. Nada é estático na tecnologia, especialmente em mobile , e à medida que novos SDKs forem criados, a Apple desejará monitorá-los. Vale ressaltar que a Apple está se protegendo contra pessoas que simplesmente renomeiam ou reempacotam SDKs para contornar os requisitos
“Qualquer versão de um SDK listado, bem como quaisquer SDKs que reempacotem aqueles na lista, estão incluídos no requisito”, afirma a Apple.
Em outras palavras, não dá para contornar essa exigência.