flutter 打包mac程序 dmg教程

✅ 前提条件

  1. 你已经在 macOS 上安装了 Android Studio + Flutter SDK。

  2. Flutter 支持 macOS 构建。

  • 运行下面命令确认是否支持:

    ```Plain Text bash 复制编辑 flutter doctor


    🧱 第一步:启用 macOS 支持

    如果是新项目,执行以下命令添加 macOS 支持:

Plain Text bash 复制编辑 flutter create .

复制代码
或者,确保 `macos/` 目录已经存在。

---

## 🛠 第二步:设置 macOS 工程(可选)

你可以修改 `macos/Runner.xcworkspace` 下的设置,比如:

- 图标:`macos/Runner/Assets.xcassets/AppIcon.appiconset/`

- 应用名称等:`macos/Runner/Info.plist`

---

## 🏗 第三步:构建 macOS 程序

### ✅ Release 模式构建

Plain Text bash 复制编辑 flutter build macos

复制代码
构建成功后,会生成一个可运行的 `.app` 包:

📁 路径:

Plain Text swift 复制编辑 build/macos/Build/Products/Release/YourApp.app ```

你可以直接双击运行,或右键 -> 显示包内容,查看内部结构。

创建create_dmg.sh脚本

脚本完整内容如下

bash 复制代码
#!/bin/bash

# 1.打包 flutter build macos
# 2.授予权限 chmod +x create_dmg.sh

# 定义源目录
SOURCE_DIR="./build/macos/Build/Products/Release/"

# 查找第一个 .app 文件
SOURCE_APP_PATH=$(find "$SOURCE_DIR" -maxdepth 1 -type d -name "*.app" | head -n 1)

# 检查是否找到了 .app 文件
if [ -z "$SOURCE_APP_PATH" ]; then
  echo "No .app file found in $SOURCE_DIR"
  exit 1
fi

# 设置输出 DMG 路径
OUTPUT_DMG_PATH="$SOURCE_DIR"$(basename "$SOURCE_APP_PATH" .app).dmg

# 创建 DMG 文件
echo "Creating DMG from $SOURCE_APP_PATH to $OUTPUT_DMG_PATH..."

# hdiutil打包详细参数如下
# `-volname`: 安装时挂载的名字(一般和 app 一样)
#`-srcfolder`: 你的 `.app` 路径
#`-format UDZO`: 压缩格式(推荐使用)
# `-ov`: 允许覆盖已有文件
# 输出路径是 `.dmg` 文件最终保存的位置
hdiutil create -volname "$(basename "$SOURCE_APP_PATH")" \
  -srcfolder "$SOURCE_APP_PATH" \
  -ov -format UDZO "$OUTPUT_DMG_PATH"

echo "DMG created successfully at $OUTPUT_DMG_PATH"

注意给脚本程序增加权限

复制代码
chmod +x create_dmg.sh

点击执行脚本

执行结果

相关推荐
汤姆yu1 天前
Mac 上 2026 版 OpenClaw 安装与配置全流程
macos·openclasw安装
MonkeyKing_sunyuhua1 天前
K8S执行MAC打出的本地镜像错误:exec /usr/local/bin/uvicorn: exec format error
macos·容器·kubernetes
程序员老刘1 天前
跨平台开发地图:金三银四你准备好了吗? | 2026年3月
flutter·客户端
恋猫de小郭1 天前
Kotlin 在 2.0 - 2.3 都更新了什么特性,一口气带你看完这两年 Kotlin 更新
android·前端·flutter
左手厨刀右手茼蒿1 天前
Flutter 三方库 all_lint_rules_community 的鸿蒙化适配指南 - 在鸿蒙系统上构建极致、严谨、基于全量社区 Lint 规则的工业级静态代码质量与安全审计引擎
flutter·harmonyos·鸿蒙·openharmony·all_lint_rules_community
雷帝木木1 天前
Flutter for OpenHarmony:Flutter 三方库 cbor 构建 IoT 设备的极致压缩防窃协议(基于标准二进制 JSON 表达格式)
网络·物联网·flutter·http·json·harmonyos·鸿蒙
Zender Han1 天前
Flutter Bloc / Cubit 最新详解与实战指南(2026版)
android·flutter·ios
王码码20351 天前
Flutter 三方库 servicestack 的鸿蒙化适配指南 - 实现企业级 Message-based 架构集成、支持强类型 JSON 序列化与跨端服务调用同步
flutter·harmonyos·鸿蒙·openharmony·message-based
里欧跑得慢1 天前
Flutter 三方库 jsonata_dart 的鸿蒙化适配指南 - 实现高性能的 JSON 数据查询与转换、支持 JSONata 表达式引擎与端侧复杂数据清洗
flutter·harmonyos·鸿蒙·openharmony·jsonata_dart
小路恢弘1 天前
xcode替换LLVM插件
ide·macos·xcode