======================================================================== スマホ実機デバッグ手順 (Smartphone Debugging Guide) ======================================================================== 1. 概要 (Overview) ------------------------------------------------------------------------ 1-0. 目的 本ドキュメントは,開発中のWebゲーム「Pixel Paint War」をスマホ実機で動作 確認するための手順書である. 学校や組織のネットワーク(Fortinet等)による制限や,WSL2特有のネットワー クの壁を回避するため,トンネリングツール「ngrok」を使用した外部公開手順 を採用する. 1-1. 前提条件 ・WSL2 (Ubuntu等) 上で開発環境が構築済みであること. ・ngrok の公式サイトでアカウント作成済みであること. ・Authtoken (認証トークン) が取得済みであること. 2. ngrokのインストール (Installation) ------------------------------------------------------------------------ Linux (WSL2) 環境へのインストール手順を記述する. ※ apt パッケージマネージャ経由ではエラーが発生しやすいため,バイナリ直接 インストール方式を採用する. 2-1. ダウンロードと配置 1. 圧縮ファイルのダウンロード ターミナルで以下のコマンドを実行し,Linux版バイナリを取得する. $ wget https://bin.equinox.io/c/bNyj1mQVY4c/ngrok-v3-stable-linux-amd64.tgz 2. 解凍とインストール ダウンロードしたファイルを解凍し,実行パスの通ったディレクトリに移動する. $ sudo tar xvzf ngrok-v3-stable-linux-amd64.tgz -C /usr/local/bin 3. 動作確認 バージョン情報が表示されるか確認する. $ ngrok --version ※ "ngrok version 3.x.x" 等と表示されれば成功である. 2-2. アカウント認証 (Authentication) ngrok のダッシュボード (https://dashboard.ngrok.com/get-started/your-authtoken) からトークンを確認し,以下のコマンドで設定する. ■ トークンの登録 $ ngrok config add-authtoken [あなたのAuthtoken] ※ "[あなたのAuthtoken]" の部分は実際の文字列に置き換える. 3. デバッグ実行手順 (Execution Steps) ------------------------------------------------------------------------ 3-1. Client設定の修正 (Update Configuration) 開発サーバーが外部 (ngrok) からの接続を受け付けるよう,設定を変更する. ■ package.json の編集 `apps/client/package.json` を開き,`scripts` ブロックの `dev` コマンドに `--host` オプションを追加する. [修正前] "dev": "vite" [修正後] "dev": "vite --host" 3-2. 開発サーバーの起動 (Launch Dev Server) まず,ローカル環境でアプリケーションを起動する. ■ Clientアプリの起動 プロジェクトルートで以下のコマンドを実行する. $ pnpm --filter client dev ※ ターミナルに `Network: http://x.x.x.x:5173/` と表示されれば設定成功である. 3-3. ngrokによる公開 (Expose via ngrok) 新しいターミナルウィンドウを開き,以下の手順でトンネルを作成する. 1. ngrokの起動 Vite の Host ヘッダーチェックを回避するため,オプションを付与して実行する. $ ngrok http 5173 --host-header="localhost" 2. 公開URLの確認 起動後に表示されるステータス画面から,"Forwarding" の行を確認する. Session Status online Account User Name (Plan: Free) Forwarding https://xxxx-xxxx.ngrok-free.app -> http://localhost:5173 上記の "https://xxxx-xxxx.ngrok-free.app" が公開URLとなる. 3-4. スマホからのアクセス (Access from Smartphone) 1. URLの共有 発行された URL をスマホに送信する(QRコード作成ツールやチャット等を使用). 2. ブラウザでの確認 スマホのブラウザ(Chrome,Safari等)で URL にアクセスする. タイトル画面が表示されれば接続成功である. 4. 注意事項とトラブルシューティング (Notes & Troubleshooting) ------------------------------------------------------------------------ 4-1. Freeプランの制限 ・同時接続数: Freeプランでは同時に1つのポートしか公開できない. ・Client/Server構成の注意: 本手順ではフロントエンド (Port 5173) のみ公開している. バックエンド (Port 3000) への WebSocket 通信が必要な場合,ゲーム開始時 に接続エラーとなる可能性がある. - 対策: UIレイアウトや描画負荷の確認を主目的として使用する. 4-2. エラー対応 ■ "ERR_NGROK_3200" (Tunnel already open) ・既に別のターミナルで ngrok が起動している場合に発生する. - 対策: 起動中の ngrok を終了 (Ctrl + C) してから再実行する. ■ "Invalid Host Header" (画面が真っ白になる) ・Vite が不正なドメインからのアクセスを拒否している. - 対策: 起動コマンドに `--host-header="localhost"` が含まれているか再確認する. ■ "ERR_CERT_AUTHORITY_INVALID" (Fortinet等の警告) ・ngrok を使用せずローカルIPで接続しようとした場合に,組織内ネットワーク のセキュリティ機器にブロックされる現象である. - 対策: 必ず本手順の ngrok 経由 (https) で接続する.