共用方式為


使用熱重新啟動部署 iOS 應用程式

一般而言,建置應用程式時,您的程式代碼會編譯並與其他專案資源結合,以建置部署至模擬器或裝置的應用程式套件組合。 使用此模型時,當您變更應用程式時,必須建置並部署新的應用程式套件組合。 雖然累加組建有助於減少編譯時間,但不論變更的大小為何,部署通常會花費相同的時間。

.NET 多平臺應用程式 UI (.NET MAUI) 熱重新啟動可讓您從 Visual Studio 2022 快速將 .NET MAUI 應用程式部署至 64 位本機 iOS 裝置,而不需要 Mac 組建主機。 它會藉由將變更推送至本機連線iOS裝置上已經存在的現有應用程式套件組合,以移除完整應用程式套件組合重建的需求。 它支援程式代碼檔案、資源和專案參考的變更,讓您能夠在應用程式開發期間快速測試應用程式的變更。

重要

熱重新啟動不是 Mac 組建主機所提供的完整組建體驗的取代專案。 例如,它只能部署使用偵錯組建組態的應用程式,而且不支援靜態庫和架構、XCFrameworks 或系結資源套件。 如需詳細資訊,請參閱 限制

必須符合許多需求,才能使用熱重新啟動將 .NET MAUI 應用程式部署到本機連線的 iOS 裝置:

設定

執行下列步驟來設定熱重新啟動:

  1. 在 Visual Studio 工具列中,使用 [偵錯目標] 下拉式清單選取 [iOS 本機裝置],然後選取 [本機裝置] 專案:

    Screenshot of choosing the initial debug target for hot restart.

  2. 在 Visual Studio 工具列中,選取 [ 本機裝置]:

    Screenshot of the initial debug target chosen for hot restart.

    [ 設定熱重新啟動 安裝精靈] 隨即出現,引導您設定本機 iOS 裝置以進行熱重新啟動部署。

  3. 在 [ 安裝熱重新啟動安裝精靈] 中,選取 [ 下一步]:

    Screenshot of the first step in the setup hot restart wizard.

  4. 如果您沒有安裝 iTunes,安裝精靈會提示您安裝它。 在 [ 安裝熱重新啟動安裝精靈] 中,選取 [ 下載 iTunes]:

    Screenshot of the second step in the setup hot restart wizard.

    注意

    iTunes 可以從 Microsoft Store 安裝,或從 Apple 下載。

    等候 iTunes 下載並加以安裝。 如果您從 Microsoft Store 安裝它,一旦安裝完成,請開啟它,然後遵循其他提示讓它探索本機連線的裝置。

  5. 在 [ 設定熱重新啟動 安裝精靈] 中,選取 [下一步 ] 以移至精靈的下一個步驟,提示您連線本機 iOS 裝置:

    Screenshot of the initial third step in the setup hot restart wizard.

  6. 連線 iOS 裝置透過 USB 纜線將 iOS 裝置連線到開發電腦。 您的裝置上可能會出現提示,要求您信任開發計算機。 在您的裝置上,按兩下 [ 信任 ],並遵循任何其他裝置提示。

  7. 在 [設定熱重新啟動安裝精靈] 中,選取 [下一步],一旦偵測到您的本機 iOS 裝置:

    Screenshot of the completed third step in the setup hot restart wizard.

    注意

    如果安裝精靈無法偵測到本機 iOS 裝置,請中斷連線,然後從開發電腦重新連線您的本機 iOS 裝置。 此外,請確定 iTunes 可辨識您的本機 iOS 裝置。

  8. 在 [設定熱重新啟動設定精靈] 中,按兩下 [使用個別帳戶登入] 超連結,將熱重新啟動設定為使用個別的 Apple Developer Program 帳戶:

    Screenshot of the initial fourth step in the setup hot restart wizard.

    [ 個別帳戶 ] 對話框隨即出現。

    注意

    或者,若要將熱重新啟動設定為使用企業 Apple Developer 帳戶,請按兩下 [使用企業帳戶 登入] 超連結,然後在出現的對話框中輸入您的認證。 然後繼續進行步驟 12。

  9. 建立 App Store 連線 API 金鑰。 這會要求您擁有 Apple Developer 帳戶 和付費 的Apple Developer Program 註冊。 如需建立 App Store 連線 API 金鑰的相關信息,請參閱在 developer.apple.com 上建立 App Store 連線 API 的 API 金鑰。

  10. 在 [個別帳戶] 對話框中,輸入您的 App Store 連線 API 金鑰數據:

    Screenshot of the completed dialog for adding an Apple Individual account.

    選取 [使用者和存取],然後選取 [金鑰] 索引標籤,即可在 App Store 連線 中找到 [名稱]、[簽發者標識符] 和 [金鑰標識碼] 資料。您也可以從此位置下載私密鑰

    Screenshot of Apple App Store Connect API details.

  11. 在 [ 個別帳戶 ] 對話框中,按兩下 [ 新增 ] 按鈕。 [ 個別帳戶 ] 對話框將會關閉。

  12. 在 [ 安裝熱重新啟動安裝精靈] 中,按兩下 [ 完成] 按鈕:

    Screenshot of the completed fourth step in the setup hot restart wizard.

    您的 Apple 開發人員計劃帳戶將會新增至 Visual Studio,安裝程式 熱重新啟動 安裝精靈將會關閉。

  13. 在 [方案總管] 中,以滑鼠右鍵按下您的專案,然後選取 [屬性]。

  14. 在項目屬性中,展開 [iOS ],然後選取 [ 套件組合簽署]。 使用 [ 配置 ] 下拉式清單選取 [自動布建 ],然後按兩下 [ 設定自動布建] 超連結:

    Screenshot of automatic provisioning enabled within the iOS property page in Visual Studio.

    [設定 自動布建 ] 對話框隨即出現。

  15. 在 [設定自動佈建] 對話框中,選取您 連線 API 金鑰的小組:

    Screenshot of the automatic provisioning dialog when it's correctly configured.

    Visual Studio 將會完成自動布建程式。 然後,按兩下 [ 確定] 按鈕以關閉 [ 設定自動布建 ] 對話框。

    注意

    建議使用自動布建,以便輕鬆地設定額外的 iOS 裝置以進行部署。 不過,如果您的計算機上存在正確的布建配置檔,您可以使用手動布建。

使用熱重新啟動部署和偵錯

執行初始設定之後,您的本機連線 iOS 裝置會出現在 [偵錯目標] 下拉功能表中。 若要部署與偵錯您的應用程式:

  1. 請確定您的本機連線 iOS 裝置已解除鎖定。

  2. 在 Visual Studio 工具列中,選取偵錯目標下拉式清單中的本機連線 iOS 裝置,然後按兩下 [執行 ] 按鈕來建置您的應用程式,並將其部署至本機 iOS 裝置:

    Screenshot of the chosen debug target for hot restart.

  3. 部署應用程式之後,Visual Studio 會顯示 [連線 調試程式] 對話框:

    Screenshot of the dialog asking you to launch the app on your device.

    在裝置上啟動應用程式,Visual Studio 會將調試程式連線到執行中的應用程式,並關閉 [連線 調試程式] 對話框。

在偵錯應用程式時,您可以編輯 C# 程式代碼,然後按 Visual Studio 工具列中的重新啟動按鈕,以重新啟動偵錯會話,並套用新的變更:

Screenshot of the restart button on the Visual Studio toolbar.

防止程式代碼執行

HOTRESTART預處理器符號可用來防止程式代碼在以熱重新啟動進行偵錯時執行:

#if !HOTRESTART
  // Code here won't be executed when debugging with hot restart
#endif

啟用熱重新啟動

Visual Studio 2022 預設會啟用熱重新啟動。 如果先前已停用,則可以從 Visual Studio 功能表欄選取 [工具 > 選項 ] 來啟用它。 接下來,在 [選項] 對話框中,展開 [Xamarin],然後選取 [iOS 設定]。 然後,確定已核取 [ 啟用熱重新啟動 ]:

Screenshot of how to enable hot restart within Visual Studio.

限制

使用熱重新啟動時有一個限制:

  • 它只能用來部署使用偵錯組建組態的應用程式。 您仍然需要 Mac 組建主機來建置、簽署及部署應用程式以供生產環境之用。
  • 不支援分鏡腳本和 XIB 檔案,如果您的 app 嘗試在運行時間載入這些檔案,可能會當機。
  • 不支援靜態 iOS 連結庫和架構,如果您的應用程式嘗試載入這些連結庫,您可能會看到運行時錯誤或當機。
  • 不支援 XCFrameworks 和系結資源套件。
  • 不支援資產目錄。 使用熱重新啟動時,您的應用程式會顯示 .NET 圖示和啟動畫面。

疑難排解

iOS 使用監視應用程式啟動時間和回應性的監視程式,並終止沒有回應的應用程式。 例如,監視程式會終止長時間封鎖主線程的應用程式。 在舊的 iOS 裝置上,監視程式可能會在調試程式連線到應用程式之前,終止使用熱重新啟動部署的應用程式。 因應措施是減少在應用程式啟動路徑中執行的處理量,以及使用較新的 iOS 裝置。

若要回報其他問題,請使用 [說明>傳送>意見反應報告問題] 中的意見反應工具。