使用 .NET CLI 生成 iOS 应用
本教程介绍如何使用 macOS 上的 .NET 命令行接口 (CLI) 在 iOS 上创建和运行 .NET Multi-platform App UI (.NET MAUI) 应用:
要创建 .NET MAUI 应用,需要下载并运行最新 .NET 运行时的安装程序。 还需要下载并安装你使用的 .NET MAUI 版本所需的 Xcode 版本。 有关信息,请参阅发行版本。
在 Mac 上,打开终端,并检查是否已安装最新 .NET 运行时:
dotnet --version
在终端中,安装 .NET MAUI 的最新公共版本:
sudo dotnet workload install maui --source https://api.nuget.org/v3/index.json
此命令将安装最新发布的 .NET MAUI 版本,包括所需的平台 SDK。
在终端中,使用 .NET CLI 创建新的 .NET MAUI 应用:
dotnet new maui -n "MyMauiApp"
在终端中,将目录更改为 MyMauiApp,然后生成并运行应用:
cd MyMauiApp dotnet build -t:Run -f net8.0-ios
dotnet build
命令将还原项目依赖项,生成应用,并在默认模拟器中启动它。在默认模拟器中,多次按“单击我”按钮,并观察按钮单击次数的计数是否递增。
使用特定版本的 Xcode 进行生成
如果在 Mac 上安装了多个版本的 Xcode,则可以指定生成应用时应使用哪个 Xcode 版本。 有许多方法可用于实现此目的,但建议的方法是将 MD_APPLE_SDK_ROOT
环境变量设置为 Xcode 版本的路径。
警告
不建议使用 xcode-select -s
设置 Xcode 的版本。
若要在当前终端会话的持续时间内设置 MD_APPLE_SDK_ROOT
环境变量:
打开“终端”应用程序。
键入以下命令,替换为你的 Xcode 版本,然后按 Enter:
export MD_APPLE_SDK_ROOT=/Applications/Xcode_14.1.0.app
如果要永久性设置此环境变量,则可以将 export
命令添加到你的 shell 配置文件,例如 .zprofile。
在特定模拟器上启动应用
可以从 Mac 的特定 iOS 模拟器上启动 .NET MAUI iOS 应用,方法是提供其唯一设备 ID (UDID):
在 Mac 上,打开 Xcode,选择“Windows”>“Devices and Simulators”菜单项,然后选择“Simulators”选项卡。
右键单击所选模拟器,然后选择“Copy Identifier”以将 UDID 复制到剪贴板。
或者,可以通过执行
simctl list
命令来检索 UDID 值的列表:/Applications/Xcode.app/Contents/Developer/usr/bin/simctl list
在终端中,通过使用
-p
MSBuild 选项指定_DeviceName
MSBuild 属性,在所选模拟器上生成并运行该应用:dotnet build -t:Run -f net8.0-ios -p:_DeviceName=:v2:udid=MY_SPECIFIC_UDID
例如,使用以下命令生成应用并在 iPhone 13 Pro 模拟器上运行它:
dotnet build -t:Run -f net8.0-ios -p:_DeviceName=:v2:udid=E25BBE37-69BA-4720-B6FD-D54C97791E79
在所选模拟器中,多次按“单击我”按钮,并观察按钮单击次数的计数是否递增。
在设备上启动应用
必须先预配设备,然后才能将 iOS 应用部署到该设备。 有关详细信息,请参阅 iOS 设备预配。 预配设备后,可以在设备上从 Mac 启动 .NET MAUI iOS 应用,方法是提供其唯一设备 ID (UDID):
使用 USB 线缆将设备连接到本地 Mac。
打开 Xcode,并导航到“Window”>“Devices and Simulators”。
在 Xcode中,选择“Devices”选项卡,然后从连接的设备列表中选择设备。
在 Xcode中,将“Identifier”值复制到剪贴板:
或者,右键单击设备并选择“Copy Identifier”,将 UDID 复制到剪贴板。
在终端中,通过使用
-p
MSBuild 选项指定_DeviceName
MSBuild 属性,在所选设备上生成并运行该应用:dotnet build -t:Run -f net8.0-ios -p:RuntimeIdentifier=ios-arm64 -p:_DeviceName=MY_SPECIFIC_UDID
将“MY_SPECIFIC_UDID”替换为复制到剪贴板的设备标识符。