Меню
RU

AdGuard 4.5.1 для iOS: неожиданная проблема на iOS 17 и её решение

Представляем вашему вниманию не простое обновление, но релиз с историей, которая началась, когда мы обнаружили неожиданную ошибку на iOS 17. Эта ошибка существенно ограничивает количество правил блокировки контента…

Apple, вы сказали, что мы можем использовать до 150 тысяч правил блокировки контента в Safari. Что случилось?

Проблема

Итак, всё началось, когда мы пытались решить проблему на iOS 17, связанную с бесконечными попытками обновления фильтров. При нажатии на иконку 🔄 в правом верхнем углу главного экрана AdGuard запускалась непрерывная анимация вращения, но ничего не происходило. В некоторых случаях это заканчивалось ошибкой обновления фильтра.

Причина

Сначала мы пытались найти ошибки в коде приложения, как сделал бы любой ответственный разработчик. Но чем больше времени мы проводили в поисках, тем яснее становилось, что проблема возникает только на новой версии iOS, которая, по идее, должна быть наиболее отлаженной и оптимизированной. Эта деталь и растущее количество отзывов пользователей привели нас к выводу, что корень проблемы кроется в iOS 17.

Также мы выяснили, что фильтры успешно обновлялись в зависимости от включённых (или, скорее, не включённых) пользователем фильтров. Это, в свою очередь, помогло нам понять, что загрузка правил в Safari иногда достигает предела памяти. Раньше таких проблем не было.

Apple предоставляет возможность внедрять в приложения блокировщики контента Safari, благодаря которым, как видно из названия, можно блокировать нежелательный контент. Очевидно, что это незаменимый инструмент для блокировщиков рекламы на iOS, поскольку он позволяет применять правила фильтрации к сайтам, открываемым в Safari. В настоящее время, согласно документации Safari Content Blocking API, в одном блокировщике контента может быть до 150 тысяч правил (а в одном приложении может быть несколько блокировщиков контента).

Противоречие

В общем, внезапно мы очутились в дивном новом мире, где использование стандартных блокировщиков контента со 150 тысячами правил фильтрации вдруг стало приводить к сбоям на iOS 17. Оказалось, что Safari больше не принимает файлы, превышающие определённый размер: даже наличие 40-60 тысяч правил в блокировщике контента Safari (что в 3 раза меньше 150 тысяч) иногда давало сбой.

В связи с этим возникает простой вопрос к Apple: как так получилось, что блокировщик контента с 40 тысячами правил аварийно завершает работу, если Safari официально разрешает 150 тысяч правил?

Поскольку это очевидная ошибка в iOS 17, мы уже сообщили о ней на форуме Apple. Будем признательны, если вы проголосуете за наш отчёт, нажав Me too. Кроме того, вот идентификатор тикета в Ассистенте обратной связи Apple: FB13282146.

Обходной путь

Нам потребовалось больше недели, чтобы придумать временную меру: мы ограничили размер JSON-файлов и оптимизировали основные фильтры таким образом, чтобы они могли втиснуться в требования этой новой реальности. Если блокировщик рекламы всё ещё слишком велик для iOS (окончательный размер зависит от того, сколько и каких фильтров включены пользователем), мы автоматически уменьшаем его размер, чтобы в Safari применялась хотя бы часть правил, удовлетворяющих требованию по размеру.

Поэтому, несмотря на то, что сейчас у большинства пользователей всё должно работать нормально, мы очень надеемся, что Apple исправит свою ошибку как можно скорее.

Обновлённые библиотеки SafariConverterLib, Scriptlets и TSUrlFilter

Спасибо, что позволили выпустить пар… Теперь можно рассказать о более приятных вещах, которые были сделаны к релизу версии 4.5.1. Например, мы обновили библиотеки SafariConverterLib, Scriptlets и TSUrlFilter. Обновление этих трёх компонентов и их взаимная работа позволяют поддерживать высокое качество фильтрации, то есть эффективную работу и актуальность правил блокировки.

SafariConverterLib конвертирует правила фильтрации AdGuard в правила блокировки контента Safari, что в принципе позволяет использовать всю мощь наших фильтров в AdGuard для iOS. Scriptlets и TSUrlFilter не менее важны, поскольку помогают реализовать функцию Расширенной блокировки в AdGuard for iOS.

Переработанные DnsLibs

В версии 2.3 DnsLibs, нашего движка DNS-фильтрации, мы провели серьёзную доработку, которая позволила значительно повысить производительность и стабильность работы AdGuard в режиме DNS-over-HTTP/3.

Также были исправлены некоторые недочёты, в том числе проблема, из-за которой AdGuard не открывался на iOS 13.x.


Надеемся, вам понравится улучшенный AdGuard для iOS. Если у вас возникнут мысли или предложения по поводу последнего обновления, озвучьте их здесь или поделитесь ими в социальных сетях.
Полный список изменений версии 4.5.1 можно найти на Github.
Предложить новую функцию или рассказать об ошибке можно в разделе Github issues.

Понравился пост?
Загружая комментарии, вы соглашаетесь с условиями использования и политикой конфиденциальности.

AdGuard для Windows

AdGuard для Windows — это не просто «ещё один блокировщик». Это многоцелевой инструмент, который блокирует рекламу и доступ к опасным сайтам, ускоряет загрузку страниц и защищает детей от взрослого контента.
Отзывы пользователей: 19539
4,7 из 5
Скачивая программу, вы принимаете условия Лицензионного соглашения
Читать далее

AdGuard для Mac

В отличие от других блокировщиков, AdGuard разработан с учётом специфики операционной системы macOS. Он не только блокирует рекламу в Safari и других браузерах, но и защищает вас от слежки, фишинга и мошенничества в сети.
Отзывы пользователей: 19539
4,7 из 5
Скачивая программу, вы принимаете условия Лицензионного соглашения
Читать далее

AdGuard для Android

AdGuard for Android — это идеальное решение для Android-устройств. В отличие от других блокировщиков, AdGuard не требует полного доступа и предоставляет широкий спектр возможностей по управлению приложениями.
Отзывы пользователей: 19539
4,7 из 5
Скачивая программу, вы принимаете условия Лицензионного соглашения

AdGuard для iOS

Самый продвинутый блокировщик рекламы для Safari: он позволяет забыть о всплывающей рекламе, ускоряет загрузку страниц и защищает личные данные. А с помощью ручной блокировки можно настроить фильтрацию так, как это удобно вам.
Отзывы пользователей: 19539
4,7 из 5
Скачивая программу, вы принимаете условия Лицензионного соглашения

Браузерное расширение AdGuard

AdGuard — самое быстрое и легкое браузерное расширение для блокировки всех типов рекламы! Выбирайте AdGuard для быстрого и безопасного серфинга без рекламы.
Отзывы пользователей: 19539
4,7 из 5

AdGuard для Safari

Расширения, блокирующие рекламу в Safari, переживают не лучшие времена с тех пор, как компания Apple вынудила всех использовать новый SDK. Познакомьтесь с нашим легко настраиваемым и молниеносным приложением!
Отзывы пользователей: 19539
4,7 из 5
App Store
Скачать
Скачивая программу, вы принимаете условия Лицензионного соглашения

AdGuard Home

AdGuard Home — мощный сетевой инструмент против рекламы и трекинга. С усилением роли интернета вещей становится все более и более важным управлять всей вашей сетью. После настройки AdGuard Home будет охватывать ВСЕ ваши домашние устройства и для этого вам не понадобится программное обеспечение на стороне клиента.
Отзывы пользователей: 19539
4,7 из 5

AdGuard Content Blocker

AdGuard Content Blocker устраняет все объявления в мобильных браузерах, которые поддерживают технологию блокировки контента — к примеру, Samsung Internet и Яндекс.Браузер. Он обладает меньшим количеством функций, чем AdGuard для Android, но при этом бесплатен, прост в установке и по-прежнему обеспечивает высокое качество блокировки рекламы.
Отзывы пользователей: 19539
4,7 из 5
Скачивая программу, вы принимаете условия Лицензионного соглашения
Читать далее

Помощник AdGuard

Дополнительное браузерное расширение для десктопных приложений AdGuard. Даёт доступ к таким функциям в браузере, как блокировка отдельных элементов, занесение сайта в белый список или отправление отчёта.
Отзывы пользователей: 19539
4,7 из 5
Помощник для Chrome Это ваш текущий браузер?
Установить
Скачивая программу, вы принимаете условия Лицензионного соглашения
Помощник для Firefox Это ваш текущий браузер?
Установить
Скачивая программу, вы принимаете условия Лицензионного соглашения
Помощник для Edge Это ваш текущий браузер?
Установить
Скачивая программу, вы принимаете условия Лицензионного соглашения
Помощник для Opera Это ваш текущий браузер?
Установить
Скачивая программу, вы принимаете условия Лицензионного соглашения
Помощник для Yandex Это ваш текущий браузер?
Установить
Скачивая программу, вы принимаете условия Лицензионного соглашения
Помощник для Safari Это ваш текущий браузер?
Если вы не можете найти свой браузер в списке, попробуйте прежнюю версию Помощника, которую вы можете найти в настройках расширения AdGuard.
Загрузка AdGuard началась Стрелка указывает на файл: нажмите на него, и установка начнётся Выберите «Открыть», нажмите «OK» и дождитесь загрузки файла. В открывшемся окне перетащите значок AdGuard в папку «Приложения». Спасибо за выбор AdGuard! Выберите «Открыть», нажмите «OK» и дождитесь загрузки файла. В открывшемся окне нажмите «Установить». Спасибо за выбор AdGuard!
AdGuard есть и в мобильном варианте