使用熱重新啟動部署 iOS 應用程式
一般而言,建置應用程式時,您的程式代碼會編譯並與其他專案資源結合,以建置部署至模擬器或裝置的應用程式套件組合。 使用此模型時,當您變更應用程式時,必須建置並部署新的應用程式套件組合。 雖然累加組建有助於減少編譯時間,但不論變更的大小為何,部署通常會花費相同的時間。
.NET 多平臺應用程式 UI (.NET MAUI) 熱重新啟動可讓您從 Visual Studio 2022 快速將 .NET MAUI 應用程式部署至 64 位本機 iOS 裝置,而不需要 Mac 組建主機。 它會藉由將變更推送至本機連線iOS裝置上已經存在的現有應用程式套件組合,以移除完整應用程式套件組合重建的需求。 它支援程式代碼檔案、資源和專案參考的變更,讓您能夠在應用程式開發期間快速測試應用程式的變更。
重要
熱重新啟動不是 Mac 組建主機所提供的完整組建體驗的取代專案。 例如,它只能部署使用偵錯組建組態的應用程式,而且不支援靜態庫和架構、XCFrameworks 或系結資源套件。 如需詳細資訊,請參閱限制。
必須符合許多需求,才能使用熱重新啟動將 .NET MAUI 應用程式部署到本機連線的 iOS 裝置:
- 您必須使用 Visual Studio 2022 17.3 版或更新版本。
- 您的開發電腦上必須安裝 iTunes (Microsoft Store 或 64 位版本)。
- 您必須擁有 Apple Developer 帳戶 和付費 的 Apple Developer Program 註冊。
設定
執行下列步驟來設定熱重新啟動:
在 Visual Studio 工具列中,使用 [偵錯目標] 下拉式清單選取 [iOS 本機裝置],然後選取 [本機裝置] 專案:
在 Visual Studio 工具列中,選取 [ 本機裝置]:
[ 設定熱重新啟動 安裝精靈] 隨即出現,引導您設定本機 iOS 裝置以進行熱重新啟動部署。
在 [ 安裝熱重新啟動安裝精靈] 中,選取 [ 下一步]:
如果您沒有安裝 iTunes,安裝精靈會提示您安裝它。 在 [ 安裝熱重新啟動安裝精靈] 中,選取 [ 下載 iTunes]:
注意
iTunes 可以從 Microsoft Store 安裝,或從 Apple 下載。
等候 iTunes 下載並加以安裝。 如果您從Microsoft市集安裝它,安裝完成後請開啟它,然後遵循其他提示來探索本機連線的裝置。
在 [ 設定熱重新啟動 安裝精靈] 中,選取 [下一步 ] 以移至精靈的下一個步驟,提示您連線本機 iOS 裝置:
透過USB纜線將您的iOS裝置連線到您的開發電腦。 您的裝置上可能會出現提示,要求您信任開發計算機。 在您的裝置上,按兩下 [ 信任 ],並遵循任何其他裝置提示。
在 [設定熱重新啟動安裝精靈] 中,選取 [下一步],一旦偵測到您的本機 iOS 裝置:
注意
如果安裝精靈無法偵測到本機 iOS 裝置,請中斷連線,然後從開發電腦重新連線您的本機 iOS 裝置。 此外,請確定 iTunes 可辨識您的本機 iOS 裝置。
在 [設定熱重新啟動設定精靈] 中,按兩下 [使用個別帳戶登入] 超連結,將熱重新啟動設定為使用個別的 Apple Developer Program 帳戶:
[ 個別帳戶 ] 對話框隨即出現。
注意
或者,若要將熱重新啟動設定為使用企業 Apple Developer 帳戶,請按兩下 [使用企業帳戶 登入] 超連結,然後在出現的對話框中輸入您的認證。 然後繼續進行步驟 12。
建立 App Store Connect API 金鑰。 這會要求您擁有 Apple Developer 帳戶 和付費 的Apple Developer Program 註冊。 如需建立 App Store Connect API 金鑰的相關信息,請參閱 在 developer.apple.com 上建立 App Store Connect API 的 API 密鑰。
在 [ 個別帳戶 ] 對話框中,輸入您的 App Store Connect API 金鑰數據:
選取 [使用者和存取],然後選取 [金鑰] 索引標籤,即可在 App Store Connect 中找到 [名稱]、[簽發者標識符] 和 [金鑰標識碼] 數據。您也可以從此位置下載私密鑰:
在 [ 個別帳戶 ] 對話框中,按兩下 [ 新增 ] 按鈕。 [ 個別帳戶 ] 對話框將會關閉。
在 [ 安裝熱重新啟動安裝精靈] 中,按兩下 [ 完成] 按鈕:
您的 Apple 開發人員計劃帳戶將會新增至 Visual Studio,安裝程式 熱重新啟動 安裝精靈將會關閉。
在 [方案總管] 中,以滑鼠右鍵按下您的專案,然後選取 [屬性]。
在項目屬性中,展開 [iOS ],然後選取 [ 套件組合簽署]。 使用 [ 配置 ] 下拉式清單選取 [自動布建 ],然後按兩下 [ 設定自動布建] 超連結:
[設定 自動布建 ] 對話框隨即出現。
在 [ 設定自動佈建 ] 對話框中,選取連線 API 金鑰的小組:
Visual Studio 將會完成自動布建程式。 然後,按兩下 [ 確定] 按鈕以關閉 [ 設定自動布建 ] 對話框。
注意
建議使用自動布建,以便輕鬆地設定額外的 iOS 裝置以進行部署。 不過,如果您的計算機上存在正確的布建配置檔,您可以使用手動布建。
使用熱重新啟動部署和偵錯
執行初始設定之後,您的本機連線 iOS 裝置會出現在 [偵錯目標] 下拉功能表中。 若要部署與偵錯您的應用程式:
請確定您的本機連線 iOS 裝置已解除鎖定。
在 Visual Studio 工具列中,選取偵錯目標下拉式清單中的本機連線 iOS 裝置,然後按兩下 [執行 ] 按鈕來建置您的應用程式,並將其部署至本機 iOS 裝置:
部署應用程式之後,Visual Studio 會顯示 [ 連接調試程式 ] 對話框:
在裝置上啟動應用程式,Visual Studio 會將調試程式連線到執行中的應用程式,並關閉 [ 連接調試程式 ] 對話方塊。
在偵錯應用程式時,您可以編輯 C# 程式代碼,然後按 Visual Studio 工具列中的重新啟動按鈕,以重新啟動偵錯會話,並套用新的變更:
防止程式代碼執行
HOTRESTART
預處理器符號可用來防止程式代碼在以熱重新啟動進行偵錯時執行:
#if !HOTRESTART
// Code here won't be executed when debugging with hot restart
#endif
啟用熱重新啟動
Visual Studio 2022 預設會啟用熱重新啟動。 如果先前已停用,則可以從 Visual Studio 功能表欄選取 [工具 > 選項 ] 來啟用它。 接下來,在 [ 選項] 對話框中,展開 [Xamarin ],然後選取 [iOS 設定]。 然後,確定已核取 [ 啟用熱重新啟動 ]:
限制
使用熱重新啟動時有一個限制:
- 它只能用來部署使用偵錯組建組態的應用程式。 您仍然需要 Mac 組建主機來建置、簽署及部署應用程式以供生產環境之用。
- 不支援分鏡腳本和 XIB 檔案,如果您的 app 嘗試在運行時間載入這些檔案,可能會當機。
- 不支援靜態 iOS 連結庫和包含靜態連結庫的架構,如果您的應用程式嘗試載入這些連結庫,您可能會看到運行時錯誤或當機。
- 支援 XCFrameworks 和系結資源套件,只要它們不包含靜態 iOS 連結庫或具有靜態庫的架構。
- 不支援資產目錄。 使用熱重新啟動時,您的應用程式會顯示 .NET 圖示和啟動畫面。
疑難排解
iOS 使用監視應用程式啟動時間和回應性的監視程式,並終止沒有回應的應用程式。 例如,監視程式會終止長時間封鎖主線程的應用程式。 在舊的 iOS 裝置上,監視程式可能會在調試程式連線到應用程式之前,終止使用熱重新啟動部署的應用程式。 因應措施是減少在應用程式啟動路徑中執行的處理量,以及使用較新的 iOS 裝置。
若要回報其他問題,請使用 [說明>傳送>意見反應報告問題] 中的意見反應工具。