Subscriviu-vos als canvis de configuració del proxy de macOS
Vigileu les claus rellevants del magatzem dinàmic SystemConfiguration i actualitzeu la política de proxy d'un transport personalitzat quan macOS informi de canvis.
Un transport que utilitza una instantània de proxy només en arrencar pot quedar desactualitzat després d'un canvi de xarxa o d'ubicació. Per a una subscripció de macOS SystemConfiguration, manteniu aquest cicle de vida explícit:
- Creeu una sessió SCDynamicStore amb una funció de retorn.
- Registreu claus o patrons exactes amb
SCDynamicStoreSetNotificationKeys. Són matrius separades. La clau global de proxy ésState:/Network/Global/Proxies; afegiu entrades específiques de servei només on el transport les consumeixi. - Organitzeu el lliurament de la funció de retorn mitjançant
SCDynamicStoreSetDispatchQueueo la font de run-loop adequada. Registrar només els noms no executa la funció de retorn. - En rebre la notificació, torneu a llegir la configuració efectiva i actualitzeu la feina posterior. La llista de claus canviades no és per si mateixa la nova política completa.
- En tancar, desactiveu el lliurament amb una cua nul·la abans d'alliberar els recursos propis. Manteniu el magatzem i el context de retorn vius fins aleshores.
La capçalera d'Apple defineix una llista buida de claus canviades com un reinici del servidor del magatzem dinàmic. En aquest cas també, refresqueu l'estat rellevant i descarteu les suposicions basades en el contingut anterior.
Aquest és un enfocament d'API pública de macOS. Les capçaleres d'Apple marquen les funcions corresponents com a SPI privat per a iOS, així que la mateixa subscripció no és una interfície pública d'aplicacions iOS.