Flutter iOS双main文件:如何在Xcode中选归档程序传TestFlight
多入口Flutter应用上传TestFlight解决方案
方案一:用Flutter命令行分别编译归档
- 编译生产环境版本(对应
main_prod.dart):
编译完成后,终端会提示打开归档目录,直接在Xcode中选中该归档文件,点击「Distribute App」上传至TestFlight。flutter build ipa --target=lib/main_prod.dart - 编译开发环境版本(对应
main_dev.dart):
重复上述上传步骤即可。flutter build ipa --target=lib/main_dev.dart
(如果需要区分环境标识,可添加--flavor=prod/--flavor=dev参数,前提是已配置好Flavor相关设置)
方案二:在Xcode中配置多Scheme实现一键归档
- 用Xcode打开Flutter项目的
ios/Runner.xcworkspace文件 - 点击顶部菜单栏
Product > Scheme > Manage Schemes - 选中默认的
RunnerScheme,点击左下角「Duplicate」,分别复制出Runner-Prod和Runner-Dev两个Scheme - 编辑每个Scheme的启动参数:
- 选中
Runner-Prod,点击「Edit」 - 切换到
Build标签页,在Arguments Passed On Launch中添加--target=lib/main_prod.dart - 对
Runner-Dev做同样操作,添加--target=lib/main_dev.dart
- 选中
- 分别归档上传:
- 顶部Scheme选择器切换到
Runner-Prod,点击Product > Archive,完成后上传至TestFlight - 再切换到
Runner-Dev,重复归档上传流程
- 顶部Scheme选择器切换到
关键注意点
- 两个版本的
CFBundleIdentifier必须不同(例如生产版用com.yourapp.prod,开发版用com.yourapp.dev),否则会覆盖TestFlight中已有的版本。可在Xcode对应Scheme的Build Settings里修改,或通过Flutter的--dart-define传递配置。 - 若使用Flavor,需在iOS项目的
Info.plist和Build Settings中配置对应环境的图标、应用名称等,方便在TestFlight中区分版本。
内容的提问来源于stack exchange,提问作者cc_9313
相关产品推荐
相关产品推荐

