FlutterアプリのInAppWebViewがiOSシミュレータでSafariのWebインスペクタに表示されない問題とその対処法

問題の概要

Flutter + InAppWebViewで構築したiOSアプリをデバッグしようとしたところ、
Safariのメニュー「開発」→「シミュレータ」に以下のような表示がされ、対象アプリが確認できませんでした。

調査可能なアプリケーションがありません

つまり、Webインスペクタを使用したデバッグが行えない状態です。

解決策

InAppWebViewの設定において isInspectable: true を指定することで、Webインスペクタによるデバッグが可能になりました。

以下はその実装例です。

InAppWebView(
  initialUrlRequest: URLRequest(url: WebUri('https://example.com')),
  initialSettings: InAppWebViewSettings(
    isInspectable: true, // Safari Web Inspectorを有効にする設定
  ),
)

このプロパティを有効にすることで、Safariの「開発」メニューからアプリが正しく表示され、WebインスペクタでDOMやコンソールの確認が可能になります。

根本的な原因

InAppWebView公式ドキュメント によると、iOS 16.4以降ではセキュリティ上の変更により、Webインスペクタ機能がデフォルトで無効化されています。

そのため、従来は不要だった isInspectable: true の指定が、iOS 16.4以降ではWebインスペクタを利用するために必要となりました。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください