无需互联网!LocalSend macOS DMG安装器制作全攻略

无需互联网!LocalSend macOS DMG安装器制作全攻略

【免费下载链接】localsend localsend - 一个开源应用程序,允许用户在本地网络中安全地共享文件和消息,无需互联网连接,适合需要离线文件传输和通信的开发人员。 【免费下载链接】localsend 项目地址: https://gitcode.com/GitHub_Trending/lo/localsend

你是否在为开源项目打包macOS应用时遭遇过流程繁琐、依赖复杂的问题?本文将以LocalSend项目为例,详解如何从零构建安全可靠的DMG安装器,全程无需互联网连接,完美适配离线开发环境。读完本文你将掌握:应用编译、代码签名、DMG制作、苹果公证全流程,以及本地化资源配置技巧。

准备工作与环境配置

在开始打包前需确保系统已安装:

  • Xcode Command Line Tools
  • Flutter SDK(推荐使用FVM版本管理)
  • create-dmg工具(可通过brew install create-dmg安装)

项目核心配置文件:

应用编译流程解析

Flutter项目构建步骤

# 清理构建缓存
fvm flutter clean

# 安装依赖包
fvm flutter pub get

# 编译Release版本应用
fvm flutter build macos

编译产物路径:app/build/macos/Build/Products/Release/LocalSend.app

代码签名配置

项目采用Apple Developer ID签名机制,关键配置如下:

SIGN_ID="Developer ID Application: Tien Do Nam (3W7H4PYMCV)"
codesign --deep --force --verbose --options runtime \
  --entitlements macos/Runner/Release.entitlements \
  --sign "$SIGN_ID" build/macos/Build/Products/Release/LocalSend.app

签名权限配置文件:app/macos/Runner/Release.entitlements

DMG安装器制作详解

定制化DMG布局设计

LocalSend采用自定义背景图片和图标排列,实现专业级安装界面:

DMG背景设计

核心布局参数(位于scripts/compile_mac_dmg.sh第22-30行):

create-dmg \
  --volname "LocalSend" \
  --window-size 500 300 \
  --background "../scripts/dmg/background.png" \
  --icon LocalSend.app 130 110 \
  --app-drop-link 360 110 \
  LocalSend.dmg \
  build/macos/Build/Products/Release/LocalSend.app

DMG制作参数说明

参数作用推荐值
--volname磁盘卷标名称LocalSend
--window-size窗口尺寸(宽×高)500 300
--icon应用图标位置130 110
--app-drop-link拖拽安装区域360 110

苹果公证与分发流程

自动化公证实现

项目集成苹果NotaryTool工具链,实现一键公证:

xcrun notarytool submit LocalSend.dmg \
  --wait \
  --apple-id $DEV_EMAIL \
  --password "$APP_PASSWORD" \
  --team-id "$TEAM_ID"

公证结果处理

公证完成后需执行stapler命令附加票据:

xcrun stapler staple LocalSend.dmg

最终产物校验:

  • 公证状态查询:xcrun stapler validate LocalSend.dmg
  • 签名信息查看:codesign -dv --verbose=4 LocalSend.dmg

常见问题解决方案

签名失败排查路径

  1. 检查钥匙串中是否安装对应Developer ID证书
  2. 验证 entitlements 文件权限配置
  3. 确认应用沙箱设置:app/macos/Runner/DebugProfile.entitlements

DMG体积优化技巧

  • 清理构建产物:rm -rf app/build/macos
  • 移除调试符号:在Xcode构建设置中设置STRIP_INSTALLED_PRODUCT=YES
  • 压缩资源文件:使用app/util/file_size_helper.dart中的压缩算法

本地化资源配置

多语言支持文件位于:app/assets/i18n/,包含30+种语言翻译。DMG安装器会自动读取系统语言设置,展示对应语言的欢迎界面。

推荐使用项目提供的翻译校验工具:

dart run scripts/contributions_digester.dart

总结与后续优化

通过本文介绍的流程,你已掌握LocalSend macOS应用从编译到分发的全链路能力。建议后续关注:

  • 自动化构建:集成GitHub Actions实现CI/CD
  • 签名密钥管理:使用苹果钥匙串加密存储证书
  • 体积优化:采用core/src/util/compress.rs中的LZMA压缩算法

完整打包脚本已开源,欢迎社区贡献优化方案:scripts/compile_mac_dmg.sh

【免费下载链接】localsend localsend - 一个开源应用程序,允许用户在本地网络中安全地共享文件和消息,无需互联网连接,适合需要离线文件传输和通信的开发人员。 【免费下载链接】localsend 项目地址: https://gitcode.com/GitHub_Trending/lo/localsend

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值