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:

  1. Erstellen Sie eine SCDynamicStore-Sitzung mit einem Callback.
  2. Registrieren Sie exakte Schlüssel oder Muster mit SCDynamicStoreSetNotificationKeys. Dabei handelt es sich um getrennte Arrays. Der globale Proxyschlüssel ist State:/Network/Global/Proxies; dienstspezifische Eingaben fügen Sie nur dort hinzu, wo der Transport sie verwendet.
  3. Organisieren Sie die Callback-Zustellung über SCDynamicStoreSetDispatchQueue oder die passende Run-Loop-Quelle. Das bloße Registrieren von Namen führt den Callback nicht aus.
  4. 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.
  5. 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.

Ähnliche Artikel