Flutter 1.9.1 Xcode编译报错,Frameworks/Flutter.framework: Permission denied

1,601 阅读1分钟

Frameworks/Flutter.framework: Permission denied

iOS集成flutter,通过官方方式集成官方链接
在按照官方方式接入之后,开始xcode编译,产生如上错误,导致项目无法编译。

解决方案:

  1. 升级flutter版本至1.10.2,听这位大哥描述Flutter更新到1.9.x版本iOS运行报错问题,Permission denied的意思是:flutter在集成到现有iOS工程中,flutter在编译时默认对Flutter.framework做了签名操作,导致在我们自己的宿主工程运行时,对动态库flutter做签名时冲突,但是在master 1.10.2已经修复了这个问题。
  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}"