全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

Avalonia怎么在macOS上打包应用 Avalonia macOS发布方法

在 macOS 上打包 Avalonia 应用需通过 dotnet CLI 与 Dotnet.Bundle 工具链生成规范 .app 包:先配置 .csproj 添加 Bundle 元信息及图标,再执行 publish 命令生成 MyApp.app;随后用 codesign 签名、notarytool 公证并 stapler 钉住票证,最终可选打包为 DMG 镜像。

在 macOS 上打包 Avalonia 应用,核心是生成符合 Apple 生态规范的 .app 包,并完成签名与公证(Gatekeeper 要求)。整个流程不依赖 Xcode 图形界面,主要靠 dotnet CLI + Dotnet.Bundle 工具链完成。

配置项目文件(.csproj)

这是打包前提,必须显式声明 macOS 专用属性:

  • 添加 Dotnet.Bundle 包引用:
  • 中设置 Bundle 元信息(关键字段不能遗漏):
    MyApp
    MyApp
    com.example.myapp
    1.0.0
    1.0
    APPL
    MyApp
    AppIcon.icns
    NSApplication
    true
  • 确保 AppIcon.icns 文件已放入项目根目录或 Resources/ 目录,并在 中标记为 并设 CopyToOutputDirectoryPreserveNewest

执行打包命令

在项目根目录终端中运行:

dotnet publish -c Release -r osx-x64 --self-contained true -p:PublishTrimmed=true -p:PublishSingleFile=false

注意:
-r osx-x64(Intel)或 -r osx-arm64(Apple Silicon)需按目标机器匹配;
PublishSingleFile=false 是推荐选项,因 macOS Bundle 要求结构化目录(含 Contents/ 子目录),单文件模式不兼容;
– 输出路径默认为 bin/Release/net8.0/osx-x64/publish/,其中会生成 MyApp.app 文件夹。

签名与公证(上架/分发必需)

未签名的 .app 在 macOS 10.15+ 无法启动(“已损坏”提示):

  • 代码签名:使用 Apple 开发者证书(需加入 Apple Developer Program):
    codesign --force --deep --sign "Developer ID Application: Your Name (ABC123)" --options runtime MyApp.app
  • 公证(Notarization):上传到 Apple 服务验证安全策略:
    xcrun notarytool submit MyApp.app --keychain-profile "AC_PASSWORD" --wait
    (需提前配置 notarytool 凭据)
  • Stapling(钉住公证票证)
    xcrun stapler staple MyApp.app

可选:制作 DMG 安装镜像

提升用户安装体验,可用脚本自动化生成带拖拽图标的 DMG:

  • 准备背景图、应用图标、别名(指向 Applications)
  • 使用 hdiutil 创建并配置:
    hdiutil create -volname "MyApp" -srcfolder "MyApp.app" -ov -format UDZO MyApp.dmg
  • 更完整方案可参考 Avalonia 官方示例中的 bundle.sh 脚本(支持自动检测芯片架构)

完成签名和 stapling 后,双击即可正常运行,且能通过 Gatekeeper 验证。整个流程无需 Visual Studio 或 Rider,纯命令行驱动,适合 CI/CD 集成。


# word  # app  # 工具  # mac  # ai  # macos  # apple  # cos  # gate  # 架构  # format  # include  # visual studio  # xcode  # 自动化  # 钉住  # 镜像  # 可选  # 这是  # 并在  # 双击  # 上架  # 命令行  # 中会  # 正常运行 


相关文章: c# await 一个已经完成的Task会发生什么  JS中使用new Date(str)创建时间对象不兼容firefox和ie的解决方法(两种)  建站之星安装步骤有哪些常见问题?  上海制作企业网站有哪些,上海有哪些网站可以让企业免费发布招聘信息?  如何用PHP工具快速搭建高效网站?  如何通过cPanel快速搭建网站?  建站之星安装提示数据库无法连接如何解决?  建站之星3.0如何解决常见操作问题?  建站之星官网登录失败?如何快速解决?  建站之星在线客服如何快速接入解答?  如何快速搭建FTP站点实现文件共享?  如何快速搭建高效WAP手机网站?  如何用低价快速搭建高质量网站?  网站制作员失业,怎样查看自己网站的注册者?  教学论文网站制作软件有哪些,写论文用什么软件 ?  建站之星代理如何优化在线客服效率?  建站之星北京办公室:智能建站系统与小程序生成方案解析  如何通过云梦建站系统实现SEO快速优化?  c# 服务器GC和工作站GC的区别和设置  Python路径拼接规范_跨平台处理说明【指导】  自助网站制作软件,个人如何自助建网站?  如何正确下载安装西数主机建站助手?  如何在西部数码注册域名并快速搭建网站?  孙琪峥织梦建站教程如何优化数据库安全?  如何彻底卸载建站之星软件?  矢量图网站制作软件,用千图网的一张矢量图做公司app首页,该网站并未说明版权等问题,这样做算不算侵权?应该如何解决?  建站之星在线版空间:自助建站+智能模板一键生成方案  北京营销型网站制作公司,可以用python做一个营销推广网站吗?  网站制作软件免费下载安装,有哪些免费下载的软件网站?  简历在线制作网站免费,免费下载个人简历的网站是哪些?  学校免费自助建站系统:智能生成+拖拽设计+多端适配  临沂网站制作公司有哪些,临沂第四中学官网?  如何快速搭建高效香港服务器网站?  高端建站三要素:定制模板、企业官网与响应式设计优化  Avalonia如何实现跨窗口通信 Avalonia窗口间数据传递  如何在Mac上搭建Golang开发环境_使用Homebrew安装和管理Go版本  如何在IIS中配置站点IP、端口及主机头?  网站网页制作专业公司,怎样制作自己的网页?    小型网站建站如何选择虚拟主机?  宁波免费建站如何选择可靠模板与平台?  如何获取免费开源的自助建站系统源码?  已有域名如何免费搭建网站?  网站网页制作电话怎么打,怎样安装和使用钉钉软件免费打电话?  网站代码制作软件有哪些,如何生成自己网站的代码?  广州网站制作公司哪家好一点,广州欧莱雅百库网络科技有限公司官网?  湖州网站制作公司有哪些,浙江中蓝新能源公司官网?  如何选择最佳自助建站系统?快速指南解析优劣  建站之星如何助力网站排名飙升?揭秘高效技巧  定制建站是什么?如何实现个性化需求? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。