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

幻夢星雲
发布: 2025-12-22 15:58:03
原创
436人浏览过
在 macOS 上打包 Avalonia 应用需通过 dotnet CLI 与 Dotnet.Bundle 工具链生成规范 .app 包:先配置 .csproj 添加 Bundle 元信息及图标,再执行 publish 命令生成 MyApp.app;随后用 codesign 签名、notarytool 公证并 stapler 钉住票证,最终可选打包为 DMG 镜像。

avalonia怎么在macos上打包应用 avalonia macos发布方法

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

配置项目文件(.csproj)

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

  • 添加 Dotnet.Bundle 包引用:
    <packagereference include="Dotnet.Bundle" version="*"></packagereference>
  • <propertygroup></propertygroup> 中设置 Bundle 元信息(关键字段不能遗漏):
    <cfbundlename>MyApp</cfbundlename>
    <cfbundledisplayname>MyApp</cfbundledisplayname>
    <cfbundleidentifier>com.example.myapp</cfbundleidentifier>
    <cfbundleversion>1.0.0</cfbundleversion>
    <cfbundleshortversionstring>1.0</cfbundleshortversionstring>
    <cfbundlepackagetype>APPL</cfbundlepackagetype>
    <cfbundleexecutable>MyApp</cfbundleexecutable>
    <cfbundleiconfile>AppIcon.icns</cfbundleiconfile>
    <nsprincipalclass>NSApplication</nsprincipalclass>
    <nshighresolutioncapable>true</nshighresolutioncapable>
  • 确保 AppIcon.icns 文件已放入项目根目录或 Resources/ 目录,并在 <itemgroup></itemgroup> 中标记为 <bundleresource></bundleresource><content></content> 并设 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+ 无法启动(“已损坏”提示):

Voicv
Voicv

克隆你的声音,就像Ctrl+C, Ctrl+V一样

Voicv 165
查看详情 Voicv
  • 代码签名:使用 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 集成。

以上就是Avalonia怎么在macOS上打包应用 Avalonia macOS发布方法的详细内容,更多请关注php中文网其它相关文章!

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号