在 Mac 上开发 .NET MAUI
.NET 多平台应用程序 UI (.NET MAUI) 是一个跨平台框架,用于使用 C# 和 XAML 创建本机移动和桌面应用程序,这些应用程序可以从单个共享代码库在 Android、iOS、macOS 和 Windows 上运行。
先决条件
- Xcode 13 最新版本 - 可从 Mac App Store 或 https://developer.apple.com 下载
- Android Studio
- 最新的 Android SDK(API 31 或更高版本)
- Android 模拟器(可选)- 安装后,创建并启动 Android 模拟器。或者,您可以使用为开发配置的 Android 设备。
- OpenJDK 11
- VS Code(推荐)
使用 .NET MAUI 安装 .NET 6
- 从dotnet/installer下载并运行最新的 .NET 6 安装程序。
打开终端并检查您是否已准备好安装 .NET MAUI。
dotnet --version - 使用workload工作负载安装命令安装 .NET MAUI:
sudo dotnet workload install maui --source https://api.nuget.org/v3/index.json
创建APP应用
创建一个新的应用程序并运行:
dotnet new maui -n "MyMauiApp"
cd MyMauiApp
dotnet build -t:Run -f net6.0-maccatalyst

这将恢复项目依赖项、编译应用程序并启动。-f 参数是“目标框架”。选项包括:
- net6.0-android
- net6.0-ios
- net6.0-maccatalyst
- net6.0-windows10.0.19041 (mac下不可运行)
要在 Windows 上运行 Windows(UWP)框架,需要安装 Visual Studio 2022 preview。
以 iOS 为目标
为了以 iOS 模拟器(iOS emulator)为目标,您需要提供设备 ID (UUID)。打开 Xcode,然后转到 Windows > 设备和模拟器 (Windows > Devices and Simulators)。右键单击要使用的模拟器并复制“设备标识符(Device Identifier)”。

现在将值附加到参数-p:_DeviceName=:v2:uuid=:
dotnet build -t:Run -f net6.0-ios -p:_DeviceName=:v2:udid=02C556DA-64B8-440B-8F06-F8C56BB7CC22
以安卓为目标
在构建 Android 应用程序之前,请启动模拟器或使用adb connect. 然后命令运行:
dotnet build -t:Run -f net6.0-android

故障排除提示:如果您收到错误提示您需要在 Visual Studio 中设置 JavaSdkDirectory,您可能需要将以下内容添加到项目目录中的文件“Directory.Build.props”中。
<Project>
<PropertyGroup>
<JavaSdkDirectory Condition="'$(JavaSdkDirectory)'=='' and '$(JAVA_HOME_8_X64)'!=''">$(JAVA_HOME_8_X64)</JavaSdkDirectory>
</PropertyGroup>
</Project>
参考资料 https://github.com/dotnet/maui/wiki/macOS-Install
FreeSql QQ群:4336577(已满)、8578575(已满)、52508226(在线)
BA & Blazor QQ群:795206915、675147445
BlazorMaui+bb demo :GitHub | Gitee(仅副本)
在 Mac 上开发 .NET MAUI(全)https://www.cnblogs.com/densen2014/p/16057571.html
在 M1 Mac 上开发 .NET MAUI (iOS) https://www.cnblogs.com/densen2014/p/16057563.html
在 Windows 上开发 .NET MAUI https://docs.microsoft.com/zh-cn/dotnet/maui/get-started/installation
在 Mac 上开发 .NET MAUI的更多相关文章
- 在 M1 Mac 上开发 .NET MAUI (iOS)
在 M1 Mac 上开始使用 .NET MAUI 开发 (iOS) 的最简单方法. .NET 多平台应用程序 UI (.NET MAUI) 是一个跨平台框架,用于使用 C# 和 XAML 创建本机移动 ...
- 在Mac上开发使用yeoman构建Asp.net core项目并且实现分层引用
1.Yeoman? yeoman是一个自动化脚手架工具.它提供很多generator,generator相当于VisualStudio的模板,用来初始化项目.更多的就不多说了,写一遍都写不完,自己看吧 ...
- 不借助 Docker Desktop 在Mac上开发容器应用
镜像下载.域名解析.时间同步请点击 阿里巴巴开源镜像站 Docker Desktop是最为流行的开发者工具,Docker公司在 8/31 宣布对Docker Desktop的用户协议进行了变更,对个人 ...
- Tidb go mac 上开发环境搭建
1.安装golang 运行环境 2.安装lite ide 工具 3.安装dep 包管理工具 4.安装delve debuger 调试工具 我用的是mac hight sierra 10.13 版, 会 ...
- 在Mac上搭建React Native开发环境
概述 前面我们介绍过在window环境下开发React Native项目,今天说说怎么在mac上搭建一个RN的开发环境. 配置mac开发环境 基本环境安装 1.先安装Homebrew:用于安装Node ...
- [转] 在Mac上搭建React Native开发环境
原文链接: http://blog.csdn.net/xiangzhihong8/article/details/53914336 概述 前面我们介绍过在window环境下开发React Native ...
- 在Mac上使用Visual Studio Code开发/调试.NET Core代码
.Net Core 1.0终于发布了,Core的一大卖点就是跨平台.这个跨平台不只是跨平台运行,而且可以跨平台开发.今天抽空研究了下在Mac下如何使用VS Code来开发.NET Core程序,并且调 ...
- 在MAC上搭建cordova3.4.0的IOS和android开发环境
Hello,大家好,今天给大家说说在mac上搭建cordova3.4.0的iOS和Android开发环境,首先下载cordova,地址:https://cordova.apache.org/#down ...
- Android开发-mac上使用三星S3做真机调试
之前一直未使用真机进行Android开发,为准备明天的培训,拿出淘汰下来的s3准备环境,竟然发现无法连接mac,度娘一番找到答案,如下:mac 系统开发android,真机调试解决方案(无数的坑之后吐 ...
随机推荐
- 解决github网站打不开的方法
发现github最近经常抽风,之前发现打不开时就挂个梯子,最近梯子也都被封了,尝试了下改host发现效果挺好,方法如下(Mac电脑): 1.通过站长工具找出DNS地址:进入站长工具网站的域名解析网址: ...
- SP2742题解
晚自习用10min推出结论,太屑了 设 \(S=\sum_{i=1}^n a_i\),很显然每个位置的答案 \(ans_i\) 只和 \(a_i\) 和 \(S\) 有关.让我们打个表,找一下规律: ...
- Python基础之hello world!
仪式感很重要嘛: 精通各个语言的hello world! Python3 版本的 print('Hello world')
- vue路由传参丢失问题
vue路由传递参数如果用params传递参数,那么页面刷新就会丢失数据,可以改用query来传递参数,这样刷新就不会丢失
- Java的jmap命令使用详解
jmap命令简介 jmap(Java Virtual Machine Memory Map)是JDK提供的一个可以生成Java虚拟机的堆转储快照dump文件的命令行工具.除此以外,jmap命令还可以查 ...
- python3求200以内能被17整除的最大正整数
for i in range(200, 17,-1): if(i%17==0): print(i) break
- MySQL知识补充(表字段操作、视图、触发器、事物、存储过程、内置函数、流程控制、索引、慢查询)
今日内容概要 表字段操作补充(掌握) 视图(了解) 触发器(了解) 事务(掌握) 存储过程(了解) 内置函数(了解) 流程控制(了解) 索引(熟悉) 内容详细 1.表字段操作补充 # 1.添加表字段 ...
- _u32定义
驱动开发的原则: 能用__u32就最好用它,或者用u_int32_t之类的也可以,但不要直接用unsigned int等默认的数据类型.目的是让别人明白,你这个变量占多大内存. 原因: 1.你不能确定 ...
- python中字符串与列表之间的相互转换
1.字符串>列表:split() a = 'my first python' b = a.split(" ") print(b)输出: 2.列表>字符串:join() ...
- 【仿真】Carla之收集数据快速教程 (附完整代码) [7]
收集过程可视化展示,随后进入正文: 参考与前言 看到仿真群对这类任务下(用carla收集数据然后再做训练等) 需求量大,顺手马上写一个好了,首先收集数据需要考虑清楚: 收集什么数据,需要什么样的数据格 ...