Prenumerera på ändringar i macOS-proxykonfigurationen
Övervaka de relevanta nycklarna i SystemConfiguration-dynamiklagret och uppdatera proxypolicyn för en anpassad transport när macOS rapporterar ändringar.
En transport som bara använder en proxyögonblicksbild vid start kan bli inaktuell efter en nätverks- eller platsändring. För en macOS SystemConfiguration-prenumeration, håll denna livscykel explicit:
- Skapa en SCDynamicStore-session med en callback.
- Registrera exakta nycklar eller mönster med
SCDynamicStoreSetNotificationKeys. Det är separata arrayer. Den globala proxy-nyckeln ärState:/Network/Global/Proxies; lägg bara till tjänstespecifika indata där transporten använder dem. - Ordna callback-leverans via
SCDynamicStoreSetDispatchQueueeller den lämpliga run-loop-källan. Att bara registrera namn kör inte callbacken. - Vid avisering, läs om den effektiva konfigurationen och uppdatera det fortsatta arbetet. Listan över ändrade nycklar är inte i sig den fullständiga nya policyn.
- Vid avstängning, inaktivera leverans med en nollkö innan egna resurser släpps. Håll lagret och callback-kontexten vid liv till dess.
Apples header definierar en tom lista över ändrade nycklar som en omstart av dynamiklagerservern. Uppdatera även relevant tillstånd i det fallet och kasta bort antaganden som bygger på det tidigare innehållet.
Detta är ett offentligt macOS-API-tillvägagångssätt. Apples headrar markerar motsvarande funktioner som privat SPI för iOS, så samma prenumeration är inte ett offentligt iOS-applikationsgränssnitt.