如何在Xcode中配置--dart-define?构建启动报错求助
解决Xcode设置DART_DEFINES构建失败的问题
问题根源
直接在Xcode Build Settings的User-Defined里设置DART_DEFINES=ENV=at这类键值对会失败,因为Flutter要求DART_DEFINES的值必须是base64编码后的字符串,Xcode不会自动处理编码,导致后续Flutter执行脚本解析参数出错,触发PhaseScriptExecution错误。而VSCode的launch.json和flutter命令行工具会自动完成编码步骤,所以能正常工作。
解决方法
方法1:手动编码DART_DEFINES的值
- 对需要传递的键值对进行base64编码,比如处理
ENV=at:
得到编码结果echo -n "ENV=at" | base64RU5WPWF0 - 在Xcode的Build Settings -> User-Defined中,设置
DART_DEFINES为上述编码后的字符串 - 清理并重新构建:执行
flutter clean,然后在Xcode中按Cmd+Shift+K清理Build Folder后重新构建
方法2:通过Scheme传递启动参数(更便捷)
不需要修改Build Settings,直接给Scheme配置启动参数:
- 打开Xcode,点击顶部的Scheme选择框,选择
Edit Scheme... - 在左侧选择
Run,切换到Arguments标签页 - 在
Arguments Passed On Launch列表中添加:--dart-define=ENV=at - 保存Scheme后,直接点击启动按钮即可正常构建并启动应用
方法3:修复Flutter脚本执行问题
如果上述方法无效,可能是Flutter生成的iOS脚本存在异常:
- 执行
flutter clean清空构建缓存 - 执行
flutter pub get重新获取依赖 - 执行
flutter build ios --config-only重新生成iOS项目配置文件 - 回到Xcode重新构建
内容的提问来源于stack exchange,提问作者Robert Sandberg
相关产品推荐
相关产品推荐

