Assine as alterações de configuração de proxy do macOS
Monitore as chaves relevantes do armazenamento dinâmico SystemConfiguration e atualize a política de proxy de um transporte personalizado quando o macOS relatar alterações.
Um transporte que usa um instantâneo de proxy apenas na inicialização pode ficar desatualizado após uma mudança de rede ou local. Para uma assinatura macOS SystemConfiguration, mantenha este ciclo de vida explícito:
- Crie uma sessão SCDynamicStore com um callback.
- Registre chaves ou padrões exatos com
SCDynamicStoreSetNotificationKeys. São arrays separados. A chave global de proxy éState:/Network/Global/Proxies; adicione entradas específicas de serviço apenas onde o transporte as consome. - Organize a entrega do callback por
SCDynamicStoreSetDispatchQueueou pela fonte de run-loop apropriada. Registrar apenas nomes não executa o callback. - Na notificação, releia a configuração efetiva e atualize o trabalho seguinte. A lista de chaves alteradas não é, por si só, a nova política completa.
- No encerramento, desative a entrega com uma fila nula antes de liberar os recursos próprios. Mantenha o armazenamento e o contexto do callback vivos até então.
O cabeçalho da Apple define uma lista vazia de chaves alteradas como uma reinicialização do servidor do armazenamento dinâmico. Nesse caso também, atualize o estado relevante e descarte suposições baseadas no conteúdo anterior.
Esta é uma abordagem de API pública do macOS. Os cabeçalhos da Apple marcam as funções correspondentes como SPI privado para iOS, então a mesma assinatura não é uma interface pública de aplicativos iOS.