Skip to content

添加 macOS 构建支持并为 macOS 平台启用系统标题栏#17

Merged
LHGS-github merged 5 commits intoNamePickerOrg:masterfrom
unDefFtr:master
Dec 14, 2025
Merged

添加 macOS 构建支持并为 macOS 平台启用系统标题栏#17
LHGS-github merged 5 commits intoNamePickerOrg:masterfrom
unDefFtr:master

Conversation

@unDefFtr
Copy link
Copy Markdown
Contributor

变更概述

  • 修复 macOS 下自定义 titlebar 与系统窗口控制冲突问题:macOS 使用系统 TitleBar,隐藏右上角自定义按钮。
  • CI 增加 macOS 自动化构建,分别支持 Intel x64 与 Apple Silicon arm64,并产出可下载的压缩包制品。

具体改动

  • 标题栏策略调整
    • 在应用启动时按平台分支配置:
      • macOS 使用 TitleBarStyle.normal,显示系统 TitleBar 与系统控制按钮
      • 非 macOS 保持自定义 titlebar,使用 TitleBarStyle.hidden
    • 在页面布局中按平台条件渲染 CustomTitleBar
      • macOS 不再渲染自定义标题栏组件
  • GitHub Actions 自动化构建(macOS)
    • 新增 build_macos_intelruns-on: macos-13)与 build_macos_armruns-on: macos-14
    • 使用 subosito/flutter-action@v2 设置 Flutter stable 渠道,执行 flutter pub getflutter build macos --release
    • 使用 ditto.app 压缩为 zip 并上传为制品,分别命名:
      • NamePicker-macOS-x64(Intel)
      • NamePicker-macOS-arm64(Apple Silicon)

代码引用

  • 平台化标题栏样式:
    • namepicker/lib/main.dart:28-32
  • 条件渲染自定义标题栏组件:
    • namepicker/lib/main.dart:252
  • macOS 原生窗口入口(未改动,维持系统 TitleBar):
    • namepicker/macos/Runner/MainFlutterWindow.swift:4-15
  • GitHub Actions 工作流:
    • /.github/workflows/build.yml:91-124(macOS x64)
    • /.github/workflows/build.yml:125-157(macOS arm64)

兼容性与影响

  • UI 行为:
    • macOS:窗口拖拽由系统 TitleBar 接管;自定义 CustomTitleBar 不再渲染
    • 非 macOS:行为不变
  • 打包与分发:
    • macOS 产出 zip 包,未包含签名与公证

设计说明

  • 使用 Platform.isMacOS 做平台分支,避免与 window_manager.startDragging() 的手势冲突
  • 保留非 macOS 侧的自定义标题栏一致的外观与交互
  • CI 将 Intel 与 ARM 构建分离,减少交叉编译不确定性

已知事项与后续建议

  • 如需在 macOS 上保持自定义标题栏外观但使用系统拖拽区,可考虑 TitleBarStyle.hiddenInset 并配合 NSWindow 样式调整;当前按需求选择了系统 TitleBar
  • macOS 分发若面向生产,建议在工作流中加入代码签名与公证步骤,并产出 .dmg.pkg

清单

  • macOS 启用系统 TitleBar
  • macOS 隐藏自定义窗口控制按钮
  • 新增 macOS Intel/ARM 构建作业并上传 zip 产物

unDefFtr and others added 5 commits November 23, 2025 14:17
添加Linux deb打包步骤,自动从pubspec.yaml获取版本号并生成deb包
添加macOS Intel和ARM架构的构建及打包流程,分别生成x64和arm64的zip包
调整macOS平台标题栏样式为normal以适配系统原生外观,非macOS平台保持hidden样式
添加iOS和macOS的Podfile配置及依赖,更新项目文件以支持CocoaPods集成
@LHGS-github LHGS-github merged commit 554a94f into NamePickerOrg:master Dec 14, 2025
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants