單鍵部署

什麼是一鍵式部署?

這個功能會在有正確配置平台且將支援的裝置連接到電腦上後彈出。由於很多地方都有可能出問題 (平台可能未正確設定、可能沒正確安裝 SDK、裝置可能為正確設定…等),所以讓使用者知道有單鍵部署這功能存在也不錯。

有些平台 (在本文撰寫時,只有 Android) 可以在 USB 裝置連接到電腦上時自動偵測,並提供使用者在該裝置上自動匯出、安裝與 (以除錯模式) 執行專案的功能,用業界的流行語來說,就是「單鍵部署」。

備註

在匯出對話方塊中新增匯出範本並標記為**可執行**後便可使用一鍵部署。你可以同時將多個匯出預設項標記為可執行,但同一平臺被標記為可執行的只能有一個。如果你把該平臺的第二個預設項標記為可執行,其它預設項的標記會被取消。

支援的平台

  • Android: 將在匯出專案時啟用除錯,並在連接的裝置上運作。

    • 另外,在建置自定匯出樣板前,依然必須依照 為 Android 匯出 中所提到的步驟進行。

    • 如果你連接的裝置超過一台,Godot會詢問你想匯出專案到哪台裝置。

  • iOS: 匯出專案並啟用除錯,然後在連接的裝置或模擬器上執行。

    • 請務必依照 為 iOS 匯出 中描述的步驟進行。否則,一鍵部署按鈕將不會出現。

    • 每當使用新的 Bundle Identifier 時,請先匯出專案,再用 Xcode 開啟並至少建置一次,以建立新的描述檔,或直接在 Apple Developer 帳號後台建立描述檔。

    • 如果你連接的裝置超過一台,Godot會詢問你想匯出專案到哪台裝置。

  • 桌面平台: 匯出專案並啟用除錯,透過 SSH 在遠端電腦上執行。

  • Web: 會啟動本地網頁伺服器,並在預設瀏覽器中執行匯出的專案。預設僅能在 localhost 存取。如需讓其他裝置存取,請參考 疑難排解

單鍵部署

  • Android:
    • 在您的行動裝置上啟用開發人員模式,然後在裝置的設定中啟用 USB 除錯。

    • 啟用 USB 除錯後,使用 USB 纜線將裝置連接到您的 PC。

    • 如果你是高級使用者,也可以使用無線ADB。

  • iOS:
    • 安裝 Xcode,接受 Xcode 授權條款,並使用你的 Apple Developer 帳號登入。

    • 如果你使用的是 Xcode 14 或更早版本,請安裝 ios-deploy,並在編輯器設定中設定 ios-deploy 的路徑(請見「匯出 ⇾ iOS ⇾ iOS Deploy」)。

    • 如要在實體裝置上執行:
      • 請將你的行動裝置與 Mac 配對。

      • 在裝置上啟用開發者模式。

      • 裝置可透過 USB 或區域網路連線。

      • 請確保裝置與電腦在同一區域網路,並於編輯器設定中選擇正確的網路介面(請見「網路 ⇾ 除錯 ⇾ 遠端主機」)。預設情況下,編輯器僅監聽 localhost 連線。

    • 如要在模擬器中執行:
      • 請於 Xcode 安裝並啟動模擬器。

    • 請確保裝置螢幕已解鎖。

  • 桌面平台:
    • 啟用 SSH 遠端部署,並於專案匯出設定中設定連線參數。

  • 請確認針對目標平台 (Android、iOS 或 Web) 存在一個標記為 可執行 的匯出預設集。

  • 如果這些都配置正確並且沒有報告有錯,編輯器右上角會出現平臺對應的圖示。

  • 點擊該按鈕一鍵匯出到所需的平臺。

../../_images/remote_debug.webp

疑難排解

Android

如果你在命令列中運作 adb devices 時無法在裝置列表中看到該裝置,那麼 Godot 就也無法看到。要解決這個問題:

  • 請檢查是否啟用了 USB 並在該裝置上授權。請嘗試解鎖你的裝置,如果有任何授權的彈框的話請接受。如果你沒有看到這樣的彈框,在 PC 上執行 adb devices 應該就會在該裝置上彈出授權提示。

  • 請嘗試在該裝置的開發者設定中`撤銷除錯授權 <https://stackoverflow.com/questions/23081263/adb-android-device-unauthorized>`__,然後再重試這些步驟。

  • 請嘗試使用 USB 除錯而不是無線除錯,反之亦然。有時候換種方法就能更好地工作。

  • 在 Linux 上,你可能缺少所需的 udev 規則,導致你的裝置無法被識別。

Web

預設情況下,編輯器啟動的網頁伺服器僅能從 localhost 存取。也就是說,區網內或網際網路上的其他裝置(即使路由器有設定埠轉發)都無法存取該伺服器。這是為了安全考量,以避免在你測試時,其他裝置也能存取匯出的專案。此外,綁定在 localhost 也能避免在 Web 平台一鍵部署時出現防火牆提示。

若要讓本地網頁伺服器可在區域網路中存取,請將 匯出 > Web > HTTP Host 編輯器設定改為 0.0.0.0 。此外,須啟用 匯出 > Web > 使用 TLS ,因 SharedArrayBuffer 需要安全連線才能運作( 除非 連線目標是 localhost )。但由於其他用戶端會連線到遠端裝置,因此此處必須啟用 TLS。

若要讓本地網頁伺服器能從網際網路存取,還需將編輯器設定中「匯出 > Web > HTTP Port」(預設為 8060)透過路由器以 TCP 進行埠轉發。通常需從路由器網頁介面設定,為指定埠口新增 NAT 規則。若屬 IPv6 連線,則需在路由器的 IPv6 防火牆允許該埠。同樣,必須啟用「匯出 > Web > 使用 TLS」。

備註

啟用 使用 TLS 後,瀏覽器會因 Godot 採用臨時自簽憑證顯示警告。你可以放心忽略,點擊 進階 後選擇 繼續前往(網址) 即可。

如果你有瀏覽器信任的 SSL/TLS 憑證,可以在「匯出 > Web > TLS 金鑰」和「匯出 > Web > TLS 憑證」指定金鑰和憑證檔案路徑。只有當專案以 TLS 憑證所涵蓋的網域名存取時,此功能才會生效。