「Rork Companion をインストールして QR を読んだのに、ぐるぐるが回ったまま接続されない」——これは私自身も Rork Companion を初めて使った日に体験した症状です。Web エディタ側では「接続待ち」のまま、スマホ側ではローディングが終わらありません。原因は単純なものから少し深いものまでさまざまですが、切り分けの順序さえ知っていれば 5 分以内に解決できます。
このガイドでは、Rork Companion の接続失敗・同期遅延・プレビュー反映の不具合を、症状別に整理しました。iOS 版と Android 版の両方で確認した内容です。
まずは「同じ Wi-Fi に繋がっているか」だけ先に確認
Rork Companion は QR 読み取り後、Web エディタと 同じネットワーク内 で通信します。スマホがモバイル回線、PC が Wi-Fi、という状態だと QR ログインは成功してもライブプレビューが届きません。
具体的に確認すること:
- スマホの Wi-Fi 名(SSID)と PC の Wi-Fi 名が一致しているか
- スマホの「モバイル通信を優先」オプションがオフか
- VPN がオンになっていないか(特に企業 VPN)
私が以前ハマったのは、Mac が 5GHz の Wi-Fi に繋がっているのにスマホが 2.4GHz の同名 SSID(別ネットワーク扱い)に繋がっていたケースです。同じ SSID 名でも、ルーターの仕様によっては別セグメントになることがあります。
QR ログインが失敗する典型パターン
パターン A: QR が古くなっている
Rork Web エディタの QR コードは表示後 60 秒程度で無効化されます。長時間放置すると読み取り成功しても「QR has expired」になります。Web 画面を一度更新して新しい QR を生成してください。
パターン B: Companion アプリのバージョンが古い
App Store / Google Play の Rork Companion は頻繁に更新されています。古いバージョンでは新しい QR フォーマットに対応していないことがあるので、アップデートを確認してください。
パターン C: カメラ権限が許可されていない
QR が読めない場合、カメラ権限が原因のことが多いです。設定アプリから Rork Companion のカメラ権限を確認します。iOS では「設定 > Rork Companion > カメラ」、Android では「アプリ情報 > 権限 > カメラ」です。
接続後にプレビューが更新されない
QR 接続には成功するが、コードを編集してもスマホ側のプレビューが古いまま、というケース。これは別の原因です。
原因 1: ホットリロードがブロックされている
Rork のプレビューは内部的に WebSocket でホットリロード信号を送っています。次のいずれかが該当すると、信号が届きません。
- スマホがスリープ状態になっている → 画面を点けて Companion をフォアグラウンドに
- Companion アプリがバックグラウンドに退避された → 開き直す
- スマホ側のバッテリー最適化で Companion のバックグラウンド動作が制限されている → Android で多発
Android のバッテリー最適化対策は次の通りです。
設定 > アプリ > Rork Companion > バッテリー > 制限なし(または最適化しない)
原因 2: ファイル保存が反映されていない
Web エディタで Cmd+S しないと、ファイルは「変更中」状態で Rork のサーバーには保存されません。エディタ右上のセーブインジケーター("Saving..." → "Saved")を確認してください。
原因 3: Native モジュールの変更を編集している
Expo の Native モジュール設定(app.json、expo-build-properties)を変えた場合、ホットリロードでは反映されません。Companion から「Rebuild Preview」を選ぶか、Web 側で「Force Rebuild」を実行する必要があります。
「失敗」表示が出るが原因不明な時
Companion アプリ画面に赤い「Connection Failed」が出るが、上のチェックすべてクリアしている——というケースもあります。私の経験では次の 2 つが原因のことが多いです。
1. Rork のサーバー側障害
[Rork Status Page] のような公式ステータスページがあれば、まずそこを確認してください。サーバー側の問題なら待つしかありません。X(旧 Twitter)で「rork down」を検索すると同様の報告が見つかることがあります。
2. プロジェクト固有の依存関係エラー
package.json に存在しないパッケージや、Expo SDK バージョンと非互換のパッケージが含まれていると、ビルド失敗で Companion 接続が確立できないことがあります。Web エディタのビルドログ(左下のターミナル)を見ると、エラーメッセージが出ているはずです。
よくあるのが、AI が生成したコードに含まれる「実在しないパッケージ名」です。react-native-amazing-feature のような、それっぽいけど存在しないパッケージが提案されているケースを何度も見てきました。npm install がエラーで止まっていないか、ターミナル出力を最後まで確認してください。
カメラ・位置情報・通知などのネイティブ機能が動かない
Companion アプリ経由のプレビューでは、ネイティブ機能の動作が制限されることがあります。これは「バグ」ではなく仕様です。
- カメラ・マイク・位置情報の権限ダイアログは Companion アプリ側で出る(プレビューしているアプリではない)
- プッシュ通知は Companion 経由のプレビューでは送信されない(実機ビルドが必要)
- App Clip / Widget の挙動も Companion では再現できない
これらの機能をテストする場合は、Companion ではなく EAS Build で実機ビルドを作って TestFlight / Internal Testing で配布してください。
切り分けチェックリスト
ここまでをまとめます。症状別に上から確認してください。
QR でログインできない
- スマホと PC が同じ Wi-Fi か
- QR が 60 秒以内のものか
- Companion アプリは最新版か
- カメラ権限が許可されているか
ログインはできるがプレビューが古い
- Companion アプリがフォアグラウンドにあるか
- Web エディタで Cmd+S したか
- Native モジュール変更なら Rebuild Preview を実行
- Android ならバッテリー最適化を「制限なし」に
「Connection Failed」が出る
- Rork のサーバー状態を確認
- Web エディタのビルドログでエラー確認
package.jsonの依存関係に問題がないか
次のアクション
接続トラブルに遭遇したら、まず「同じ Wi-Fi か」だけでも先に確認してみてください。これだけで体感 6 割の症状が解決します。それで直らない場合は症状別チェックリストを上から順に試してください。
Rork はクラウド側でビルドが走る関係で、ローカル開発と違って「自分の環境のせい」と「サーバー側のせい」の切り分けが難しい場面があります。Web エディタのターミナル出力を読む癖をつけると、エラーの正体がはっきり見えるようになります。