NEFilterProvider записывает сетевую активность

NEFilterProvider, а точнее два его подкласса NEFilterDataProvider и NEFilterPacketProvider, имеют функциональные возможности, позволяющие или запрещающие сетевую активность. Однако я не смог найти способ войти в активность в целях отладки.

Я знаю, что в документации сказано следующее:

он работает в очень ограниченной песочнице. Песочница не позволяет расширению поставщика данных фильтра перемещать сетевой контент за пределы его адресного пространства, блокируя все операции доступа к сети, IPC и записи на диск.

но есть ли какой-нибудь трюк, чтобы зарегистрировать это в режиме отладки? Может быть, используяos_log или что-то подобное?

1 ответ

да, вы можете использоватьи прочитайте вывод в консольном приложении. если вы хотите обойти ограничения конфиденциальности (при разработке/тестировании), используйтепрефикс вроде так...

      import os.log

// ...somewhere in the provider class
os_log("something i want to log %{public}@", someVar)

вы правы, документации по этой области очень, очень не хватает, кроме примера кода SimpleFirewall и видео wwdc. у меня есть приложение в производстве, использующеено это стоило мне моего рассудка, чтобы понять, как собрать все это вместе. в какой-то момент я попытаюсь написать несколько сообщений в блоге или сделать демо-репозиторий, чтобы попытаться помочь создать центральный ресурс сообщества для обмена знаниями и заполнения пробелов в документации с помощью с трудом завоеванных знаний.

Другие вопросы по тегам