Транспорт, който използва снимка на прокси само при стартиране, може да остане остарял след промяна на мрежата или местоположението. За абонамент към macOS SystemConfiguration поддържайте този жизнен цикъл явен:

  1. Създайте сесия SCDynamicStore с callback функция.
  2. Регистрирайте точни ключове или шаблони чрез SCDynamicStoreSetNotificationKeys. Това са отделни масиви. Глобалният ключ за прокси е State:/Network/Global/Proxies; добавяйте входове за конкретна услуга само там, където транспортът ги използва.
  3. Осигурете доставяне на callback чрез SCDynamicStoreSetDispatchQueue или подходящия източник на run-loop. Регистрирането само на имена не стартира callback.
  4. При известие прочетете отново действащата конфигурация и обновете следващата работа. Списъкът с променени ключове сам по себе си не е пълната нова политика.
  5. При спиране изключете доставянето с празна опашка, преди да освободите собствените ресурси. Пазете хранилището и контекста на callback живи до тогава.

Заглавката на Apple дефинира празен списък с променени ключове като рестартиране на сървъра на динамичното хранилище. В този случай също обновете съответното състояние и отхвърлете предположенията, базирани на предишното съдържание.

Това е публичен подход чрез macOS API. Заглавките на Apple отбелязват съответните функции като частен SPI за iOS, така че същият абонамент не е публичен интерфейс за iOS приложения.

Подобни статии