共用方式為


與 Mac 配對以進行 iOS 開發

使用 .NET 多平臺應用程式 UI (.NET MAUI) 建置原生 iOS 應用程式需要存取 Apple 的建置工具,而 Apple 只會在 Mac 上執行。 因此,Visual Studio 2022 必須連線到可網路存取的 Mac,才能建置 .NET MAUI iOS 應用程式。

Visual Studio 2022 的 [與 Mac 配對] 功能會探索、連線、驗證及記住 Mac 組建主機,讓您可以在 Windows 上提高生產力。

與 Mac 配對可啟用下列軟體開發工作流程:

  • 您可以在 Visual Studio 2022 中撰寫 .NET MAUI iOS 程序代碼。
  • Visual Studio 2022 會開啟 Mac 組建主機的網路連線,並使用該電腦上的建置工具來編譯和簽署 iOS 應用程式。
  • 不需要在 Mac 上執行個別的應用程式 – Visual Studio 2022 會透過 SSH 安全地叫用 Mac 組建。
  • Visual Studio 2022 會在變更發生時立即收到通知。 例如,當 iOS 裝置插入 Mac 或變成網路上可用時,iOS 工具列會立即更新。
  • Visual Studio 2022 的多個實例可以同時連線到 Mac。
  • 您可以使用 Windows 命令行來建置 iOS 應用程式。

注意

在遵循本文中的指示之前,請在 Mac 上安裝 Xcode。 然後,在安裝之後手動開啟 Xcode,使其可以新增其他元件。 您也應該安裝 Mono。 此外,如果您有具有Apple晶片的Mac電腦,請確定已安裝 Rosetta。

Visual Studio 2022 會自動設定 Mac 組建主機。 不過,您仍必須安裝並執行 Xcode,並安裝 Mono。

在 Mac 上啟用遠端登入

若要設定 Mac 組建主機,請先啟用遠端登入:

  1. 在 Mac 上,開啟 [系統喜好設定 ],然後移至 [ 共用 ] 窗格。

  2. 進階 清單中啟用 遠端登錄

    啟用遠端登錄設定。

  3. 點選單擊 [遠端登入] 設定旁的 [i],以設定更多設定:

    • 開啟 允許遠端使用者的完整磁碟存取

    • 請確定已將遠端登錄設定為允許存取 所有使用者,或您的 Mac 使用者名稱或群組包含在允許的使用者清單中。

    允許完整磁碟存取,並允許所有使用者設定存取。

  4. 如果出現提示,請設定 macOS 防火牆。 如果您已設定 macOS 防火牆封鎖傳入連線,則可能需要允許 mono-sgen 接收傳入連線。 假如出現警示,系統會提醒您。

  5. 如果它位於與 Windows 電腦相同的網路上,Visual Studio 2022 現在應該可以探索 Mac。 如果無法發現 Mac,請嘗試 手動新增 Mac

從 Visual Studio 2022 連線到 Mac

在 Mac 上啟用遠端登錄之後,將 Visual Studio 2022 連線到 Mac:

  1. 在 Visual Studio 2022 中,開啟現有的 .NET MAUI 專案或建立新的專案。

  2. 開啟 [配對至 Mac] 對話框,使用 iOS 工具列上的 [與 Mac 配對] 按鈕。

    iOS 工具列,醒目提示 [配對至 Mac] 按鈕。

    或者,選取 [工具 > iOS > 配對至 Mac]。

    在 [ 配對到 Mac ] 對話框中,將顯示所有先前已連線及目前可用的 Mac 建置主機清單:

    [配對至 Mac] 對話框。

  3. 在清單中選取 Mac,然後選取 [ 連線]。

  4. 輸入您的使用者名稱和密碼。 第一次連線到任何特定 Mac 時,系統會提示您輸入該電腦的使用者名稱和密碼:

    輸入 Mac 的使用者名稱和密碼。

    提示

    登入時,請使用您的系統用戶名稱。

    [Pair to Mac] 使用這些憑證來建立與 Mac 的新 SSH 連線。 如果成功,則會將金鑰新增至 Mac 上的 authorized_keys 檔案。 與相同的 Mac 的後續連接將自動登錄。

  5. [與 Mac 配對] 會自動配置 Mac 的設定。 Visual Studio 2022 會視需要在連線的 Mac 組建主機上安裝或更新必要條件。 不過,仍必須手動安裝 Xcode。

  6. 檢查連線狀態圖示。 當 Visual Studio 2022 連接到 Mac 時,配對至 Mac 對話框中的那台 Mac 的項目會顯示一個圖示,指出它目前已連線。

    連接的 Mac。

    一次只能連接一台 Mac。

    提示

    以滑鼠右鍵按一下 [與 Mac 配對] 清單中的任何 Mac 都會啟動操作功能表,讓您可以 [連線...]、[忘記這部 Mac] 或 [中斷連線]

    [配對至 Mac] 操作功能表。

    如果您選擇 [不要記住這部 Mac],則會忘記所選取 Mac 的認證。 若要重新連線至該 Mac,您需要重新輸入使用者名稱和密碼。

如果您已成功配對至 Mac 組建主機,即可在 Visual Studio 2022 中建置 .NET MAUI iOS 應用程式。 如需詳細資訊,請參閱 建置您的第一個應用程式

如果您尚未配對 Mac,請嘗試 手動新增 Mac

手動新增 Mac

如果您沒有在 配對到 Mac 對話框中看到特定的 Mac,請手動新增它:

  1. 在你的 Mac 上,開啟系統偏好設定> 共享> 遠端登入,以找出 Mac 的 IP 位址:

    在系統偏好設定 > 共用中的 Mac IP 位址。

    或者,使用命令列。 在終端機中,發出下列命令:

    ipconfig getifaddr en0
    

    視您的網路組態而定,您可能需要使用 以外的 en0介面名稱, en1 例如 或 en2

  2. 在 Visual Studio 2022 的 [與 Mac 配對] 對話框中,選取 [ 新增 Mac...] :

    [配對至 Mac] 對話框中的 [新增 Mac] 按鈕。

  3. 輸入 Mac 的 IP 位址,然後選取 [ 新增]:

    輸入 Mac 的 IP 位址。

  4. 輸入 Mac 的使用者名稱和密碼:

    輸入使用者名稱及密碼。

    提示

    登入時,請使用您的系統用戶名稱。

  5. 選取 [登入 ] 以透過 SSH 將 Visual Studio 2022 連線到 Mac,並將其新增至已知計算機清單。

SSH 金鑰產生

與 Mac 配對會在第一次連線時自動產生 SSH 金鑰,而其格式取決於遠端 Mac 執行中的 macOS 版本。

針對 macOS 15.4.1+ 執行時所產生的 SSH 金鑰與 Xamarin.iOS 不相容。 如果您正在處理 .NET MAUI 和 Xamarin.iOS 專案,並根據專案類型使用不同的 macOS 版本,請確定您使用 15.4.1 之前的 macOS 版本執行初始連線,以確保您有與這兩種類型的專案相容的 SSH 密鑰。

若要強制重新產生 SSH 金鑰,您應該刪除 Windows 上的 %LocalAppData%\Xamarin\MonoTouch 資料夾。

啟用對已知 Mac 的自動連線

根據預設,Visual Studio 啟動時,將不會建立與先前配對 Mac 的連線。 不過,您可以在 Visual Studio 中,瀏覽至 工具 > 選項 > Xamarin > iOS 設定 ,並確保已核取 啟用已知 Mac 的自動連線 來啟用此功能。

在 Visual Studio 中啟用對已知 Mac 的自動連線。

重新啟動 Visual Studio 之後,它會在每個啟動時自動連線到已知的 Mac。

自動遠端 Mac 設定

配對至 Mac 可自動設定 Mac,並安裝建置 .NET MAUI iOS 應用程式所需的必要軟體。 這包括 .NET 和各種 Xcode 相關工具(但不是 Xcode 本身)。

重要

  • 無法在配對的 Mac 上安裝 Xcode。 您必須在 Mac 組建主機上手動安裝它。 這是 .NET MAUI iOS 開發的必要專案。
  • 自動遠端 Mac 設定需要在 Mac 上啟用遠端登錄,而且 Mac 必須可供 Windows 電腦使用網路存取。
  • 自動遠端 Mac 安裝程式需要 Mac 上足夠的可用空間才能安裝 .NET。

此外,當 Visual Studio 2022 連線到 Mac 時,Pair to Mac 會為 Mac 進行必要的軟體安裝和更新。

Xcode 工具和授權

與 Mac 配對也會確認是否已安裝 Xcode 並接受其軟體授權。 雖然 [配對到 Mac] 不會安裝 Xcode,但它會提示接受授權。

此外,[Pair to Mac] 將會安裝或更新隨 Xcode 散發的各種套件。 這些套件的安裝會快速發生,而且不會出現提示。

針對自動遠端 Mac 設定進行疑難解答

如果您在使用自動 Mac 布建時遇到問題,請查看儲存在 %LOCALAPPDATA%\Xamarin\Logs\17.0 中的 Visual Studio 2022 IDE 記錄。 這些記錄可能包含錯誤訊息,協助您進一步診斷失敗或取得支援。

從 Windows 命令列建置 iOS 應用程式

與 Mac 配對支援從命令行建置 .NET MAUI 應用程式。 瀏覽至保存 .NET MAUI iOS 應用程式來源的資料夾,然後執行下列命令:

dotnet build -f net8.0-ios -p:ServerAddress={macOS build host IP address} -p:ServerUser={macOS username} -p:ServerPassword={macOS password} -p:TcpPort=58181 -p:_DotNetRootRemoteDirectory=/Users/{macOS username}/Library/Caches/Xamarin/XMA/SDKs/dotnet/

上述範例中傳遞給 dotnet 的參數如下:

  • ServerAddress – Mac 組建主機的IP位址。
  • ServerUser – 登入 Mac 組建主機時要使用的用戶名稱。 請使用您的系統使用者名稱,而非完整名稱。
  • ServerPassword – 登入 Mac 組建主機時要使用的密碼。
  • _DotNetRootRemoteDirectory - Mac 組建主機上包含 .NET SDK 的資料夾。

第一次從 Visual Studio 2022 或命令列以 Pair to Mac 登入 Mac 組建主機時,Pair to Mac 會設定 SSH 金鑰。 使用這些金鑰,未來的登入不需要使用者名稱或密碼。 新建立的金鑰會儲存在 %LOCALAPPDATA%\Xamarin\MonoTouch 中。

如果從命令列建置呼叫中省略 ServerPassword 參數,Pair to Mac 會嘗試使用已儲存的 SSH 金鑰來登入 Mac 建置主機。

重要

自動遠端 Mac 安裝程式不會針對命令行組建執行,因此您必須從 Visual Studio 執行與 Mac 的初始連線,或確定您已在 Mac 上安裝所有必要的元件。

如需從 Windows 命令行建置 iOS 應用程式的詳細資訊,請參閱 使用命令行發佈 iOS 應用程式。