如何用Flutter在App Store Connect发布同名iOS和macOS应用
Flutter环境下发布独立同名macOS应用(不同Bundle ID)
先明确两种方式的区别
- Xcode iOS项目里的「Enable support for macOS」是创建Mac Catalyst应用,本质是将iOS应用适配到macOS,共享iOS代码基础,但这种方式更适合纯原生iOS项目转macOS。对你的Flutter场景来说,因为Flutter本身提供独立的macOS项目支持,且你需要不同Bundle ID来区分平台、适配第三方服务,所以这种方式并非最优选择,会导致两个平台的配置耦合,不利于独立调试和第三方服务配置。
- 正确路径是基于Flutter独立的macOS项目,配合App Store Connect单独创建macOS应用记录,完全分离两个平台的配置。
具体操作流程
1. 在App Store Connect创建macOS应用记录
- 登录App Store Connect,点击「Add a macOS app」
- 填写以下信息:
- Bundle ID:选择
com.myapp.macos(如果未在开发者后台注册,App Store Connect会自动帮你注册) - 名称:和iOS应用保持一致
- 选择对应的开发者团队,完成应用创建
- Bundle ID:选择
- 后续配置:完善定价、分级、隐私政策链接等基础信息,和iOS应用的配置流程一致
2. 配置Flutter macOS项目
- 打开Flutter项目根目录下的
macos/Runner.xcworkspace(注意是macOS目录下的工程,不是iOS的) - 在Xcode中选中
Runner目标,进入「General」标签页:- 修改「Bundle Identifier」为
com.myapp.macos - 配置签名:勾选「Automatically manage signing」,选择你的开发者账号,Xcode会自动生成对应的Provisioning Profile(前提是App Store Connect已经创建了该Bundle ID的应用记录)
- 修改「Bundle Identifier」为
- 第三方服务适配:
- 针对你使用的第三方服务(如推送、统计、支付等),在其后台添加
com.myapp.macos这个Bundle ID - 将第三方服务提供的配置文件(如
GoogleService-Info.plist)替换或添加到macOS项目的Runner目录下
- 针对你使用的第三方服务(如推送、统计、支付等),在其后台添加
3. 构建并上传到App Store Connect
- 终端运行命令生成Release包:
flutter build macos --release - 在Xcode中打开macOS工程,选择「Product」→「Archive」,等待归档完成
- 打开Xcode的「Organizer」,选中刚生成的归档,点击「Distribute App」,选择「App Store Connect」,按照向导完成上传
- 回到App Store Connect,找到你的macOS应用,在「TestFlight」或「App Store」标签页中选择刚上传的构建版本,提交审核即可
注意事项
- 两个平台的版本号、构建号可以独立设置,但建议保持逻辑上的协调(比如大版本号一致)
- 测试macOS应用时,重点验证平台特定功能:如文件系统权限、通知授权、窗口管理等,这些和iOS存在差异
- 确保开发者账号的权限足够,能够创建macOS应用和生成对应的签名文件
内容的提问来源于stack exchange,提问作者Tom3652
相关产品推荐
相关产品推荐

