问题:
在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 一下工程,搞定!