Frameworks/Flutter.framework: Permission denied
iOS集成flutter,通过官方方式集成官方链接
在按照官方方式接入之后,开始xcode编译,产生如上错误,导致项目无法编译。
解决方案:
- 升级flutter版本至1.10.2,听这位大哥描述Flutter更新到1.9.x版本iOS运行报错问题,Permission denied的意思是:flutter在集成到现有iOS工程中,flutter在编译时默认对Flutter.framework做了签名操作,导致在我们自己的宿主工程运行时,对动态库flutter做签名时冲突,但是在master 1.10.2已经修复了这个问题。
- 更改本地flutter文件。其实这个问题的原因是xcode编译的时候对framework没有文件权限导致的。
具体方法:
1 进入到你本地flutter的库中:你的flutter目/packages/flutter_tools/bin
2 打开bin下的tool_backend.sh
3 进行如下操作(感谢gitbub大神)
@@ -141,7 +141,7 @@ BuildApp() {
mkdir "${derived_dir}/engine"
RunCommand cp -r -- "${flutter_podspec}" "${derived_dir}/engine"
RunCommand cp -r -- "${flutter_framework}" "${derived_dir}/engine"
- RunCommand find "${derived_dir}/engine/Flutter.framework" -type f -exec chmod a-w "{}" \;
+ RunCommand find "${derived_dir}/engine/Flutter.framework" -type f -iname '.h' -exec chmod a-w "{}" \;
else
RunCommand rm -rf -- "${derived_dir}/Flutter.framework"
RunCommand cp -r -- "${flutter_framework}" "${derived_dir}"