想分享以 Expo 製作的 iOS app 給不在相同 WiFi 環境下的人以 Expo Go 試用,若果用 EAS, 那需要一個付費的 Apple 開發者帳號。
若果是經 Tunnel 那就不用。這裡記錄遇到的一個問題。
問題
使用指令 npx expo start -c --tunnel 時,會出現錯誤 CommandError: ngrok tunnel took too long to connect.
測試
網上不少討論,以下是一些解決方法:
- 在
npx expo start --tunnel時額外加上--reset-cache - 重裝
npm install -g @expo/ngrok - 關掉防火牆
- 額外安裝
brew install ngrok - 額外安裝開發依賴
npm install -D @expo/ngrok
但以上方法都無法解決問題。
解決方法
我不肯定是不是受到 fnm 影響了 (可查閱 npm config get prefix)。
以下是我認為應該有幫助的事:
- 去 ngrok.com 註冊帳號
- 根據指示安裝並加入 authtoken (
ngrok config add-authtoken xxxxxxxxxxx) ngrok http 8081對應 Expo 的 Portnpx expo start,無需加上--tunnel- 分享你的開發域名,末端加上
/_expo/loading(比如https://aaa-bbb-ccc.ngrok-free.dev/_expo/loading) - 選擇以 Expo Go 打開
這樣子便成功了。