Flutter 项目更新到 最新 Xcode 12工具出现的 "坑"


背景:  为了适配 iOS 14的 一些新特性, Xcode 工具 需要更新 至最新的 Xcode12 , 由于 电脑空闲内存空间不够,清理了大量的Flutter 编译产物.腾出内存空间 安装Xcode12 .

问题: 更新 Xcode 12 后, Xcode 工具 会默认 修改  之前Xcode11 的 一些工程 编译配置,最后导致编程 找不到相关库 的编译路径. (Flutter  项目 遇到的, 纯原生项目 暂时未知)

比如 : 这个常见的 网络库AFNetworking 编译找不到

  (这个库 实际上 通过 cocoapods  已经下载安装 成功,也编译成 功了,但是 Flutter 产物 链接 这个库时,找不到路径,手动指定 路径发现不生效, 因为 Flutter 工程 是通过 自己的编译 配置文件 查找路径的)

因为 上面的一些库链接 不成功,所以 Flutter 产物自然生成 不了.

缺少Flutter 编译产物

根本原因: (编译配置文件 被 Xcode12 修改了)

错误的 编译配置(如下):

错误的 编译配置

正确的 编译配置

正确的 编译配置

如果 指定 正确的 编译配置文件 后,还是 编译不成功.

很大原因是  上面的配置文件本身有问题,

因为上面的 编译配置文件是 在 flutter build ios 这个命令 自动生成的

解决办法: 

方法一:  Flutter 产物 这个文件夹下 所有产物以及 配置文件删除掉.  然后重新执行 Flutter build ios 这个命令生成产物.

方法二: 放弃 上面整个 仓库工程代码,以及相关的编译残留配置. 

   从新拉取分支代码,然后,按上面正确的工程配置,指定编译文件,从新编译产物.

   (这个方法是牛逼中的战斗机,可以解决莫名其妙的一些编译报错)

第二个 "坑"

报错:Showing All Messages

No architectures to compile for (ONLY_ACTIVE_ARCH=YES, active arch=arm64, VALID_ARCHS=armv64 arm64e x86_64  armv7).

原因: 升级 Xcode 12 后, Flutter 产物依赖的一些第三方 库,的CPU 架构 不对. 会导致模拟器无法运行,(Xcode 11 这些 配置其实之前有的,我这边因为是 直接更新Xcode12,导致部分配置不对)

解决方法:

 看图 配置,

1.Build Setting  —> 搜索  VALID_ARCHS , 

 2. 对应写上  armv64 arm64e x86_64 ,就OJBK 了.

指定CPU 编译架构 armv64 arm64e x86_64 

吐血总结:

 记得千万不要直接 在 APPStore 直接升级 Xcode, 因为这么升级是 直接顶替 掉旧版Xcode 的,这样很容易导致之前的项目编译配置不正常. 被新Xcode 从新组织配置了.

最保险升级Xcode 的方法 应该是 

  在官方苹果 网站 下载安装包, 然后 再安装 Xcode12  , 这样的话 电脑上 同时保留着 新旧 2个 Xcode , 方便升级过程中 有问题,直接在旧Xcode 处理临时紧急问题.

 为什么没这么干呢?  因为电脑内存空间严重不足(高清大片太多),难以同时支撑 2 个Xcode  这么庞大的 家伙.

(说到底,还是人穷志短,没法装逼…)

搞完 成功 !!! 

尼玛,真香!!!

特别鸣谢,金兴大佬全程指点迷津!!!

你可能感兴趣的:(Flutter 项目更新到 最新 Xcode 12工具出现的 "坑")