Migaro. 技術Tips

                       

ミガロ. 製品の技術情報
IBMiの活用に役立つ情報を掲載!


iOS(iPad/iPhone)のSafariをWindows端末からリモートデバッグする方法

WindowsでWeb制作をしているけれど、iPadの実機Safariでしか発生しない表示崩れや挙動の不具合が見つかってしまった……」通常であればMacのSafariにある「開発」メニューが必要になりますが、Windows PCからでも、USB接続したiPadのSafariをリモートデバッグ(要素の検証やコンソール確認)する方法があります。

はじめに

Windows環境をメインに据える開発者にとって、iOSのSafari特有のレンダリングや挙動の違いを解決するのは困難です。「実機でしか起きないバグを確認するには、Macを導入するしかないのか……」と、デバイスの壁により開発が停滞するのは非常に惜しいことです。
今回のTipsでは、Windows環境からiOSのSafariをデバッグする方法をご紹介します。

Windowsからリモートデバッグを実現する方法

iOS側「Webインスペクタ」を有効化

まず、iPad側で外部からのデバッグを許可する設定を行います。

  1. 「設定」アプリを開きます。
  2. 設定 → Safari → 詳細(または 設定 → アプリ → Safari → 詳細)へ進みます。
  3. 「Webインスペクタ」をオンにします。

Webインスペクタの設定後、デバッグしたいWebサイトをSafariブラウザで開いておきます。

Windows側の準備:Node.jsの導入

各種デバッグツールを動かすために、Node.jsが必要です。
wingetで最新版のNode.jsを入手するか、公式サイトよりダウンロードしてインストールしてください。

wingetで入手する場合
winget install -e --id OpenJS.NodeJS.LTS
公式サイトより入手する場合
  1. Node.js公式サイトにアクセスし、「LTS(推奨版)」をダウンロードしてインストールします。
  2. インストール完了後、PowerShellまたはコマンドプロンプトを開き、以下のコマンドでバージョンが表示されれば成功です。
    • node -v
    • npm -v

Windows側の準備:必要ツールのインストール

次に、iPadを認識させるためのソフトウェアとプロキシツールをインストールします。

  • iTunes をインストールし、iPadをUSBケーブルでPCに接続します。
     ※iTunesは最新版を導入してください。
  • iPadに「このコンピュータを信頼しますか?」と表示されたら**「信頼」**を選択してください。

Scoopの導入

ios-webkit-debug-proxyをインストールするために、Windowsのコマンドライン・インストーラーである「Scoop」を利用します。もしPCに導入されていない場合は、以下の手順でセットアップしてください。

  1. PowerShellを管理者権限で実行します。
  2. スクリプトの実行を許可するために以下のコマンドを入力します。
  3. 「インストールコマンド」を実行します。
  4. 完了後、scoop --version と入力してバージョンが表示されれば準備完了です。

「インストールコマンド」

iex (new-object net.webclient).downloadstring('https://get.scoop.sh')

ios-webkit-debug-proxy のインストール

PowerShellで以下のコマンドを実行します。

scoop bucket add extras
scoop install ios-webkit-debug-proxy

デバッグ用キットのセットアップ

例では、C:\work\debugにリポジトリをクローンします。
gitが導入されていない場合には、先にgitをインストールしてください。

wingetで入手する場合
winget install --id Git.Git -e --source winget
公式サイトより入手する場合
  1. git公式サイトにアクセスし、インストーラーをダウンロードしてインストールします。
  2. インストール完了後、PowerShellまたはコマンドプロンプトを開き、以下のコマンドでバージョンが表示されれば成功です。
    • git --version

GitHubからリモートデバッグ用のキットを取得して設定します。

  1. 任意のフォルダで、リポジトリをクローンします。
  2. 生成された src フォルダに移動します。
  3. 初回生成処理を実行します。

任意のフォルダで、リポジトリをクローン

cd C:\work\debug\
git clone https://github.com/HimbeersaftLP/ios-safari-remote-debug-kit.git

「初回生成処理」

cd C:\work\debug\ios-safari-remote-debug-kit\src
powershell -ExecutionPolicy Bypass -File .\generate.ps1

デバッグサーバーの起動と接続

準備が整ったら、デバッグ用のサーバーを起動します。

  1. ios-safari-remote-debug-kit\src フォルダでコマンドを実行します。
    ※このPowerShell画面は閉じずにそのままにしてください。 これにより、ポート「8080」でデバッグ画面用のサーバーが起動します。
  2. 接続の確認(別のPowerShellウィンドウで実行可能):
    • Test-NetConnection 127.0.0.1 -Port 8080True になること。
    • ブラウザで http://localhost:9221 を開き、iPadのタブ情報が表示されていること。

ios-safari-remote-debug-kit\src フォルダでコマンドを実行

powershell -ExecutionPolicy Bypass -File .\start.ps1

実行すると、接続されている端末がリストされます。
ポート番号が9222で接続ができるようになっています。

start.ps1実行時にエラーが発生する場合 http-server のインストール

実行時に「http-serverが見つからない」という旨のメッセージが出た場合は、以下のコマンドでhttp-serverをインストールしてください。

npm i -g http-server

Webインスペクタを開く

最後に、Windows上の Chrome または Edge で以下のURLを開きます。

http://localhost:8080/Main.html?ws=localhost:9222/devtools/page/1

これで、Windows上のブラウザからiPad Safariで開いているページの要素検査やデバッグが可能になります。