Änderungen der macOS-Proxykonfiguration abonnieren
Überwachen Sie die relevanten Schlüssel des SystemConfiguration-Dynamikspeichers und aktualisieren Sie die Proxyrichtlinie eines eigenen Transports, wenn macOS Änderungen meldet.
Ein Transport, der nur beim Start einen Proxy-Schnappschuss verwendet, kann nach einem Netzwerk- oder Standortwechsel veraltet bleiben. Bei einem macOS-SystemConfiguration-Abonnement sollte dieser Lebenszyklus ausdrücklich eingehalten werden:
- Erstellen Sie eine SCDynamicStore-Sitzung mit einem Callback.
- Registrieren Sie exakte Schlüssel oder Muster mit
SCDynamicStoreSetNotificationKeys. Dabei handelt es sich um getrennte Arrays. Der globale Proxyschlüssel istState:/Network/Global/Proxies; dienstspezifische Eingaben fügen Sie nur dort hinzu, wo der Transport sie verwendet. - Organisieren Sie die Callback-Zustellung über
SCDynamicStoreSetDispatchQueueoder die passende Run-Loop-Quelle. Das bloße Registrieren von Namen führt den Callback nicht aus. - Bei einer Benachrichtigung lesen Sie die wirksame Konfiguration erneut und aktualisieren die weitere Arbeit. Die Liste der geänderten Schlüssel ist nicht selbst die vollständige neue Richtlinie.
- Deaktivieren Sie beim Herunterfahren die Zustellung mit einer Null-Warteschlange, bevor Sie eigene Ressourcen freigeben. Halten Sie den Speicher und den Callback-Kontext bis dahin am Leben.
Apples Header definiert eine leere Liste geänderter Schlüssel als Neustart des Dynamikspeicher-Servers. Aktualisieren Sie auch in diesem Fall den relevanten Zustand und verwerfen Sie Annahmen, die auf dem vorherigen Inhalt beruhen.
Dies ist ein öffentlicher macOS-API-Ansatz. Apples Header kennzeichnen die entsprechenden Funktionen als privates SPI für iOS, daher ist dasselbe Abonnement keine öffentliche iOS-Anwendungsschnittstelle.