Flutter圈子程序员程序园

记录run Flutter Boost iOS Example遇

2019-05-05  本文已影响23人  一个程序员的自我修养

问题:

在run Flutter Boost iOS Example时遇到下面这个报错

        /bin/sh: /packages/flutter_tools/bin/xcode_backend.sh: No such file or directory


解决:

Step 1. 搞清楚问题是什么,就解决了问题的一半!--吉德林法则 Jidelim Law


先定位问题发生在哪里?在Xcode的Build Phases的Run Script里:

/bin/sh "$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh” build

再确定问题是什么?先大致定位是找不到环境变量:$FLUTTER_ROOT

echo $FLUTTER_ROOT 没有输出,echo $PROJECT_DIR有输出,

确实是环境变量没有设置成功的原因!

先试着自己解决

在系统层面设置环境变量:

我的是在~/.zshrc里添加

export FLUTTER_ROOT="/Users/futu/ios/env/flutter”

但是在Xcode里依然报同样的问题,

所以问题还是得在Xcode工程里找!

但是对于Flutter的工程结构还不是很熟悉,怎么办,想到了万能的Google!

Step 2.找到问题的关键词,是解决问题另一半的一半! — 关键词法则 Keywords Law(本文原创,引用请注明出处)


Google这个问题,尝试了好几个关键词(比如Xcode $FLUTTER_ROOT),发现下面这个关键词是正解:

ios $FLUTTER_ROOT

点开第一条:

Emit an actionable error message if FLUTTER_* not defined in Xcode run-script phases #12751

不是很明了,看到之前有解决过类似问题

再打开里面的flutter build ios fail #12725

文章有点长,用关键词 flutter root 搜索下,看到了同一个回答者cbracken对这个问题的大段描述,大概知道了,相关的环境变量是在Generated.xcconfig里设置的!

但是在example/ios/Flutter的目录下没有这个配置!

一定是少了什么操作,对,没有对Flutter进行初始化!

但是怎么初始化呢,查了下flutter有哪些命令,尝试了下

flutter build ios

果然生成了Generated.xcconfig

OK,run 一下工程,搞定!

Step 3.解决完问题,事情并没有结束,需要先衡量下是否需要深究此问题产生的原因,如果投入产出比不是很大,或者有优先级更高的事情,那么可以先记录此问题,当某天遇到一定要搞清楚的时候再来搞清楚也不迟!-- 懒加载法则 Lazy Load Law(本文原创,引用请注明出处)


上一篇下一篇

猜你喜欢

热点阅读