前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Flutter - 解决混合开发iOS脚本打包遇到的问题

Flutter - 解决混合开发iOS脚本打包遇到的问题

作者头像
LinXunFeng
发布2020-08-16 23:34:38
1.9K0
发布2020-08-16 23:34:38
举报
文章被收录于专栏:LinXunFeng的专栏LinXunFeng的专栏

使用 Xcode 手动打包是正常的,但是使用脚本打包会报错,错误如下:

代码语言:javascript
复制
The following build commands failed:
    PhaseScriptExecution [CP-User]\ Run\ Flutter\ Build\ Script .../Script-C3A097A8FE12FF5F875B057C.sh
    
flutter build ios --release
then re-run Archive from Xcode.
Command PhaseScriptExecution failed with a nonzero exit code

定位错误

Flutter 环境目录下,按图上所示地址找到 xcode_backend.sh,也可以直接看 官方脚本链接

代码语言:javascript
复制
  # Archive builds (ACTION=install) should always run in release mode.
  if [[ "$ACTION" == "install" && "$build_mode" != "release" ]]; then
    EchoError "========================================================================"
    EchoError "ERROR: Flutter archive builds must be run in Release mode."
    EchoError ""
    EchoError "To correct, ensure FLUTTER_BUILD_MODE is set to release or run:"
    EchoError "flutter build ios --release"
    EchoError ""
    EchoError "then re-run Archive from Xcode."
    EchoError "========================================================================"
    exit -1
  fi

解决方案

可以看到,官方脚本的说明里面给出两个解决方案

方案一:直接设置 FLUTTER_BUILD_MODErelease 方案二:先运行 flutter build ios --release ,再使用 Xcode 去打包

这里我们是用 Jenkins 脚本进行打包,所以方案二不适用,方案一更加方便些

代码语言:javascript
复制
# 设置Flutter的编译模式为release
export FLUTTER_BUILD_MODE=release

# 执行原有项目的打包脚本
./script/build_iOS.sh
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 定位错误
  • 解决方案
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档