メニュー
日本語

【AdGuard for iOS v4.5.1】iOS 17 のルール数制限バグへの対策

このアップデートにはちょっとしたストーリーがあります。
iOS 17 でコンテンツブロッカーのルール数が実質的に制限されているという予期せぬバグを発見した話です。

このバグの回避策に加えて、v4.5.1 にはアプリのパフォーマンスと安定性に有用な改善と修正もいくつか含まれています。

Appleさん、Safariで最大15万のコンテンツブロックルールを使えるって言ってたけど、どうしたの?

問題

この話は、iOS 17でフィルターが実際に更新されることなく永遠に更新しつづける問題の解決策を見つけようとしたところから始まりました。

そうです、AdGuardのメイン画面の右上にある🔄アイコンをタップすると、何も起こらず、アニメーションが無限回転するだけという現象が起きていました。
場合によっては、フィルター更新エラーことになることもありました。

起因

当初、私たちは自分たちのアプリのコードに問題を見つけようとしていました(責任ある開発者なら誰でもそうすると思いますが)。
しかし、試せば試すほど、この問題が最も最適化されているはずの最新iOSでのみ発生するという事実が発覚しました。
この点とユーザーから増えるフィードバックにより、問題の根源はアップデートされたiOSにあることに気づきました。

次に、ユーザーが有効にしている(というか、むしろ有効にしていない)フィルターの数・種類によっては、フィルターが正常に更新されることがあって、その結果、Safariへのルール読み込みがメモリ制限にヒットしてしまうことがあることがあわかりました。

Appleは開発者に対し、Safari コンテンツブロッカー機能をアプリに実装する可能性を提供しており、これにより開発者はコンテンツブロック機能をユーザーに提供することができます。もちろんのこと、これはSafariでアクセスしたページにフィルタリングルールを適用する手口であるため、iOS用広告ブロックアプリにとっては不可欠なツールであります。現在、Safari Content Blocking APIのドキュメンテーションによると、1つのコンテンツブロッカーで最大15万のルールを使用できます(1つのアプリで複数のコンテンツブロッカーを仕様することも可能)

矛盾

AdGuardが15万フィルタリングルールを含む定番Safariコンテンツブロッカーを使用すると、iOS 17では突然クラッシュが発生するようになっているという驚くべき現実に直面しました。
それは、Safariが特定のサイズ以上のファイルを受け付けなくなったからよいうことがわかりました。
4万~6万件のルール(これは15万件制限の3倍減少)を持つコンテンツブロッカーでさえ、含まれるルールによってはクラッシュすることがありました。

Safariが公式に15万のルールを許可しているのに、どうして4万ルールのコンテンツブロッカーもクラッシュすることがあるのか?

これは明らかにiOS 17のバグなので、すでにAppleのフォーラムで報告しました
そちらで「Me too」を押してアップヴォートしていただけると助かります。
また、AppleのフィードバックアシスタントでのチケットIDはこちら: FB13282146

回避策

この新しい"サイズ要件"に収まるように、AdGuardコンテンツブロッカーのJSONファイルのサイズを制限し、主要フィルター(AdGuard ベースフィルタ等)も全部最適化しました。
コンテンツブロッカーがiOSからしてまだ大きすぎる場合(最終的なサイズは、ユーザーが有効にしているフィルタの数と種類に依存します)、AdGuardは自動的にそのサイズを削減し、サイズ要件を満たすルールの少なくとも一部がSafariで適用されるようにします。

そのため、現時点ではほとんどのユーザーにとって問題なく動作するはずではありますが、Appleが早急にこのバグを修正してくれることを心待ちにしています。

SafariConverterLib、Scriptlets、TSUrlFilter の更新

v4.5.1 には問題対策だけでなく、改善もあります。

例えば、SafariConverterLib、Scriptlets、TSUrlFilterの依存関係を更新しました。
これら3つのコンポーネントの更新と相互接続により、高いフィルタリング品質、つまりブロックルールの最新状態と効率的なパフォーマンスを維持することができます。

SafariConverterLibは、AdGuardのフィルタリングルールをSafariのコンテンツブロックルールに変換するライブラリで、AdGuard for iOS でフィルタのフルパワーを使用することを可能にします。
ScriptletsTSUrlFilterも、AdGuard for iOS の「高度な保護機能」の実装に役立つので、重要なものです。

DnsLibs の改新

DnsLibs (AdGuardのDNSフィルタリングエンジン) v2.3では、AdGuardのDNS-over-HTTP/3のパフォーマンスと安定性を大幅に改善するいくつかの重大な手直しと調整を行いました。

また、iOS 13.xでAdGuardが開かない問題も修正いたしました。


このアップデートについてご意見、ご感想がございましたら、以下にコメントを残していただいたり、SNSでお寄せください。

AdGuard for iOS v4.5.1 の完全な変更履歴は、Github にあります。
また、Github issues経由のフィードバックも大歓迎しております。

この記事を気に入っていただけましたか?
9,934 9934件のユーザーレビュー
素晴らしい

AdGuard for Windows

AdGuard for Windowsは、単なる広告ブロッカーではなく、広告をブロックし、危険なサイトへのアクセスを制御し、ページの読み込みを高速化し、不適切なコンテンツから子供を保護する、多目的ツールです。
ダウンロードされますと、使用許諾契約書に同意したことになります。
詳細
9,934 9934件のユーザーレビュー
素晴らしい

AdGuard for Mac

AdGuardはmacOSの仕様を念頭に設計されたユニークな広告ブロッカーです。 ブラウザやアプリで広告を取り除くだけでなく、個人情報追跡、フィッシング、詐欺から端末を守ります。
ダウンロードされますと、使用許諾契約書に同意したことになります。
詳細
9,934 9934件のユーザーレビュー
素晴らしい

AdGuard for Android

AdGuard for Androidは、Android搭載端末に最適なソリューションです。 他のほとんどの広告ブロッカーと違って、root権限を必要とせず、アプリでのフィルタリング、アプリ管理など、幅広い機能を提供しています。
ダウンロードされますと、使用許諾契約書に同意したことになります。
詳細
9,934 9934件のユーザーレビュー
素晴らしい

AdGuard for iOS

AdGuard はiOSに最適な広告ブロックアプリです。Safariブラウザですべての広告を削除し、プライバシー保護、ページの読み込み時間の短縮を実現します。 また、複数のフィルタを同時に使用できるようにしながら、最高のフィルタリング品質を実現する最新の広告ブロック技術を採用しています。
ダウンロードされますと、使用許諾契約書に同意したことになります。
詳細
9,934 9934件のユーザーレビュー
素晴らしい

AdGuard VPN

74ヵ所の世界中ロケーション

どのコンテンツも自由にアクセス

強力な暗号化

ログ一切なしポリシー

最速コネクション

年中無休サポート(日本語対応)

無料で使ってみる
ダウンロードされますと、使用許諾契約書に同意したことになります。
詳細
9,934 9934件のユーザーレビュー
素晴らしい

AdGuardコンテンツブロッカー

AdGuard Content Blockerは、コンテンツブロッカーテクノロジーをサポートするモバイルブラウザー(Samsung Internet、Yandex.Browser)のすべての種類の広告を排除します。 Android for AdGuardよりも制限されていますが、無料で簡単にインストールでき、広告のブロック品質も高いです。
ダウンロードされますと、使用許諾契約書に同意したことになります。
詳細
9,934 9934件のユーザーレビュー
素晴らしい

AdGuard ブラウザ拡張機能

AdGuardは、Webページ上のすあらゆる広告を効果的にブロックします。また最速で軽量な広告ブロック拡張機能です!是非AdGuardを使って広告のない高速で安全なブラウジングをお楽しみください。
9,934 9934件のユーザーレビュー
素晴らしい

AdGuardアシスタント

“AdGuardデスクトップアプリのお手伝い役”ブラウザー拡張機能。カスタム要素のブロック、Webサイトのホワイトリストへの登録、報告の送信などといった機能に直接ブラウザーからアクセスできるようにします。
9,934 9934件のユーザーレビュー
素晴らしい

AdGuard DNS

AdGuard DNSは、広告ブロック、プライバシー保護、ペアレンタルコントロールの代替ソリューションです。初期設定が簡単で、端末のプラットフォームやデバイスに関係なく、オンライン広告、トラッカー、フィッシングに対する必要最小限の保護を提供します。
9,934 9934件のユーザーレビュー
素晴らしい

AdGuard Home

AdGuard Home は、広告とトラッキング(追跡)をブロックするネットワーク全体用ソフトウェアです。 セットアップを完成すると、全ての家庭内デバイスをカバーし、クライアント側のソフトウェアさえ必要ありません。 Internet-Of-Thingsや接続するデバイスの登場と伴って、ネットワーク全体を制御することがますます重要になってきています。
9,934 9934件のユーザーレビュー
素晴らしい

AdGuard Pro for iOS

AdGuard Pro は、通常バージョンのユーザーに既に知られているSafariの優れた広告ブロック機能以外にも多くの機能を提供いたします。 カスタムDNS設定へのアクセスを提供することで、広告ブロック、アダルトコンテンツからお子様を守り、盗難からあなたの個人データを保護することができます。
ダウンロードされますと、使用許諾契約書に同意したことになります。
詳細
9,934 9934件のユーザーレビュー
素晴らしい

AdGuard for Safari

Appleが新しいSDKの使用を開発者全員に強制し始めてから、Safari用の広告ブロック拡張機能は苦境に立たされています。AdGuard拡張機能は、Safari用の高品質な広告ブロック機能を復活させることがミッションです。
9,934 9934件のユーザーレビュー
素晴らしい

AdGuard Temp Mail

匿名性とプライバシーを保護する、無料の捨てメアド(一時メールアドレス)ジェネレーター。メインのメールサービスに迷惑メールは届きません!
9,934 9934件のユーザーレビュー
素晴らしい

AdGuard for Android TV

AdGuard for Android TV は、広告をブロックし、プライバシーを保護し、スマートテレビのファイアウォールとして機能する唯一のアプリです。Webの脅威に関する警告を受け取り、セキュアDNSを使用し、トラフィックを暗号化しましょう。セキュリティを向上して、広告なしでお気に入りの番組をお楽しみください!
AdGuardをダウンロード中です AdGuardをインストールするには、矢印が指してるファイルをクリックしてください 「開く」を選択し、「OK」をクリックして、ファイルがダウンロードされるのをお待ちください。 ダウンロードが終了し開きましたウィンドウでAdGuardを「Applications」フォルダにドラッグで移動させてください。 AdGuardをダウンロードして頂きありがとうございます! 「開く」を選択し、「OK」をクリックして、ファイルがダウンロードされるのをお待ちください。 ダウンロードが終了し開きましたウィンドウで「インストール」をクリックしてください。 AdGuardをダウンロードして頂きありがとうございます!
以下のQRコードをスキャンすることでモバイル端末にもAdGuardをインストールできます。