Abonați-vă la modificările configurației proxy din macOS
Monitorizați cheile relevante ale depozitului dinamic SystemConfiguration și actualizați politica de proxy a unui transport personalizat când macOS raportează modificări.
Un transport care folosește o copie a proxy-ului doar la pornire poate rămâne învechit după o schimbare de rețea sau locație. Pentru un abonament macOS SystemConfiguration, păstrați acest ciclu de viață explicit:
- Creați o sesiune SCDynamicStore cu un callback.
- Înregistrați chei sau modele exacte cu
SCDynamicStoreSetNotificationKeys. Sunt tablouri separate. Cheia globală de proxy esteState:/Network/Global/Proxies; adăugați intrări specifice serviciului doar acolo unde transportul le folosește. - Organizați livrarea callback-ului prin
SCDynamicStoreSetDispatchQueuesau sursa run-loop potrivită. Doar înregistrarea numelor nu rulează callback-ul. - La notificare, recitiți configurația efectivă și actualizați lucrul ulterior. Lista cheilor modificate nu este în sine noua politică completă.
- La oprire, dezactivați livrarea cu o coadă nulă înainte de a elibera resursele deținute. Păstrați depozitul și contextul callback-ului vii până atunci.
Antetul Apple definește o listă goală de chei modificate ca o repornire a serverului depozitului dinamic. Și în acest caz, împrospătați starea relevantă și eliminați presupunerile bazate pe conținutul anterior.
Aceasta este o abordare API macOS publică. Antetele Apple marchează funcțiile corespunzătoare ca SPI privat pentru iOS, deci același abonament nu este o interfață publică de aplicații iOS.