Mac 14 安装 Flutter 3.4、3.10 以及编译 问题集以及解决方式

前言

前两天准备一台新的Mac 设备,安装Flutter 开发环境,并且在上面编译两个APP,一个基于Flutter 3.4 一个时基于3.10。中途遇到各种问题,总体汇聚整理一下,大家均可参考。

环境或开发工具 版本
Mac Sonoma 14.2.1
XCode 15.2
Flutter 两个版本: 3.4 和 3.10.6
AndroidStudio Android Studio Hedgehog

安装

安装包信息

环境或开发工具 说明 其他
XCode APP Store 下载最新安装
Android Google.cn 官网下载安装 安装好后启动,仍然需要更新安卓包文件,访问受限,该问题自行网上找答案
Flutter 两个版本: 3.4 和 3.10.6 下载地址
cocoapod Flutter 通过 pod 安装其他依赖环境 切换国内地址源,本次使用效果很好,地址

配置

在用户根目录下增加配置环境变量配置文件 .zshrc (不同mac版本不同)
下面是本次配置,PUB_HOSTED_URL 和 FLUTTER_STORAGE_BASE_URL 是配置flutter 依赖包下载通过国内镜像安装。不然运行指令 flutter pub get 能否成功就是一门玄学。

export PUB_HOSTED_URL=https://pub.flutter-io.cn
export FLUTTER_STORAGE_BASE_URL=https://storage.flutter-io.cn

# Setting PATH for flutter
#PATH="/Users/David/works/FlatterSDK/flutter/bin:${PATH}"
PATH="/Users/david/works/flutter_sdk/flutter340/bin:${PATH}"
#PATH="/Users/david/works/flutter_sdk/flutter3106/bin:${PATH}"
export PATH

Flutter 编译过程问题

问题集

过程 问题 解决方式
首次编译 首次运行 Flutter 编译指令,会自动通过 pod 安装进一步安装依赖环境,报错 pod 安装失败。原因是无法访问某个 github 上的资源 浏览器上测试当时 github 也不能访问,等到github 可以访问的时候,再次编译,问题解决。尝试过一些捷径,就算通过捷径能够通过浏览器访问 github 但是 pod 仍然不上道,最终还是等到自然访问 github 可以的时候才解决
Flutter 3.10 编译错误 The binary was built with the incorrect architecture to run on this machine. If you are on an ARM Apple Silicon Mac, Flutter requires the Rosetta translation environment. Try running: sudo softwareupdate --install-rosetta --agree-to-license 按提示执行指令 sudo softwareupdate --install-rosetta --agree-to-license 安装。原因可以访问该地址
Flutter 3.10.6 文件安全报警 安装过程中会遇到几个Flutter 文件安全告警。文件大概为:fundsubset,iproxy, 等 参考下述解决方式和截屏
Flutter 3.4 debug 报错 Could not run build/ios/iphoneos/Runner.app, Try launching Xcode and selecting “Product > Run” to fix the problem。此时到XCode debug 运行,可以连接iOS设备并成功运行 运行 Flutter run -v 会暴露具体问题,问题仍然是 fundsubset,iproxy 文件安全性报警,但是编译过程中没有暴露错误信息出来。 注意:在解决该问题后,可以直接Flutter debug, 偶尔仍然报改错,再次运行 Flutter run -v 后(没有报任何错误),在运行debug 就又可以了
Flutter 3.4 ipa 编译 报错 编译报错 Failed to package /Users/david/Documents/works/works/jxc/LinHang.
Command PhaseScriptExecution failed with a nonzero exit code  | 运行 Flutter build ipa -v 会暴露具体问题,问题仍然是  fundsubset,iproxy 文件安全性报警,但是编译过程中没有暴露错误信息出来。 **注意**:这些问题解决后,最后有个签名错误,目前暂时没有解决他,直接切换到XCode 里面去Archive 提交APP包 |

Flutter 文件安全性问题处理

编译过程中好几个Flutter安全问题,如下图问题

解决方式:

  1. 在隐私与安全性中可以看到 “已组织使用‘iproxy’,…”, 点击仍然允许

  2. 再次允许编译,仍然会弹出安全告警如下图。此时就有了 “打开”选项,点击“打开”,再次编译该文件不搞告警
    在这里插入图片描述

  3. 网上指令模式去除也测试过,貌似不行,也有可能命令输入有误

小结

  1. 由于部分资源无法访问,以及不确定的访问,比较痛苦。消耗大量的时间查阅和测试网上各种方式。
  2. Flutter 编译过程中主要是文件安全性问题
  3. 低版本的Flutter 安全性问题编译过程中没有暴露出来,需要通过 Flutter run -v, Flutter build ipa -v 启用逐步执行日志模式暴露问题。
Logo

开源鸿蒙跨平台开发社区汇聚开发者与厂商,共建“一次开发,多端部署”的开源生态,致力于降低跨端开发门槛,推动万物智联创新。

更多推荐