Меню
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.

Понравился пост?
9 934 9934 отзыва
Отлично!

AdGuard для Windows

AdGuard для Windows — это не просто «ещё один блокировщик». Это многоцелевой инструмент, который блокирует рекламу и доступ к опасным сайтам, ускоряет загрузку страниц и защищает детей от взрослого контента.
Скачивая программу, вы принимаете условия Лицензионного соглашения
Узнать больше
9 934 9934 отзыва
Отлично!

AdGuard для Mac

В отличие от других блокировщиков, AdGuard разработан с учётом специфики операционной системы macOS. Он не только блокирует рекламу в Safari и других браузерах, но и защищает вас от слежки, фишинга и мошенничества в сети.
Скачивая программу, вы принимаете условия Лицензионного соглашения
Узнать больше
9 934 9934 отзыва
Отлично!

AdGuard для Android

AdGuard для Android — это идеальное решение для Android-устройств. В отличие от других блокировщиков, AdGuard не требует root-доступа и позволяет управлять трафиком любых приложений на вашем устройстве.
Скачивая программу, вы принимаете условия Лицензионного соглашения
Узнать больше
9 934 9934 отзыва
Отлично!

AdGuard для iOS

Лучший блокировщик рекламы для iPhone и iPad. AdGuard устраняет рекламу в Safari, защищает ваши данные и ускоряет загрузку страниц. AdGuard для iOS использует новейшую технологию блокировки, которая обеспечивает непревзойденное качество фильтрации и позволяет применять множество различных фильтров одновременно
Скачивая программу, вы принимаете условия Лицензионного соглашения
Узнать больше
9 934 9934 отзыва
Отлично!

AdGuard Content Blocker

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

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

AdGuard — самое быстрое и легкое браузерное расширение для блокировки всех типов рекламы! Выбирайте AdGuard для быстрого и безопасного серфинга без рекламы.
9 934 9934 отзыва
Отлично!

Помощник AdGuard

Дополнительное браузерное расширение для десктопных приложений AdGuard. Даёт доступ к таким функциям в браузере, как блокировка отдельных элементов, занесение сайта в белый список или отправление отчёта.
9 934 9934 отзыва
Отлично!

AdGuard DNS

AdGuard DNS – это альтернативный способ заблокировать рекламу, защитить личные данные и оградить детей от взрослых материалов. Он прост в настройке и использовании и обеспечивает необходимый минимум защиты от рекламы, трекинга и фишинга, независимо от платформы.
9 934 9934 отзыва
Отлично!

AdGuard Home

AdGuard Home — мощный сетевой инструмент против рекламы и трекинга. С усилением роли интернета вещей становится все более и более важным управлять всей вашей сетью. После настройки AdGuard Home будет охватывать ВСЕ ваши домашние устройства и для этого вам не понадобится программное обеспечение на стороне клиента.
9 934 9934 отзыва
Отлично!

AdGuard Pro для iOS

AdGuard Pro предлагает гораздо больше чем просто блокировку рекламы в Safari, которая есть в обычной версии. С помощью специальных настроек DNS вы сможете блокировать больше рекламы, защитить ваши личные данные и оградить детей от взрослого контента.
Скачивая программу, вы принимаете условия Лицензионного соглашения
Узнать больше
9 934 9934 отзыва
Отлично!

AdGuard для Safari

Расширения, блокирующие рекламу в Safari, переживают не лучшие времена с тех пор, как компания Apple вынудила всех использовать новый SDK. Познакомьтесь с нашим легко настраиваемым и молниеносным приложением!
9 934 9934 отзыва
Отлично!

AdGuard Temp Mail

Ваш временный почтовый ящик, чтобы на основную почту не приходил спам
9 934 9934 отзыва
Отлично!

AdGuard для Android TV

AdGuard для Android TV — единственное приложение, которое блокирует рекламу, защищает ваши данные и действует как фаервол для Smart TV. Получайте предупреждения о веб-угрозах, используйте безопасный DNS, а ваш трафик будет зашифрован. Смотрите любимые сериалы безопасно и без рекламы!
Загрузка AdGuard началась Стрелка указывает на файл: нажмите на него, и установка начнётся Выберите «Открыть», нажмите «OK» и дождитесь загрузки файла. В открывшемся окне перетащите значок AdGuard в папку «Приложения». Спасибо за выбор AdGuard! Выберите «Открыть», нажмите «OK» и дождитесь загрузки файла. В открывшемся окне нажмите «Установить». Спасибо за выбор AdGuard!
AdGuard есть и в мобильном варианте