FlutterEngine源码编译之2025年版教程

我的设备:

  • macmini m4
  • macOS 15.3.2

1. macOS 端搭建源码编译环境

  1. 按照官方教程安装 depot_tools

depot_tools 是 Chromium 源码依赖管理工具集,内含 gclient 等工具;用于帮助 Chromium、Flutter Engine等项目同步代码和管理编译所需的依赖

  1. brew 安装 ant 和 ninja

    brew install ant
    brew install ninja

2. 下载 Flutter Engine 源码和安装所需依赖

  1. 下载 Flutter Engine 源码
bash 复制代码
git clone git@github.com:flutter/flutter.git
  1. 进入源码根目录,然后复制 engine/scripts 任意一个 xx.gclient 文件到 根目录中,并修改名称为 .gclient。我用的是standard.gclient
  1. 在源码根目录执行gclient sync同步代码和安装所需的依赖

3. 编译 Flutter Engine

  1. 生成构建工程:进入源码根目录,然后运行 gn 命令生成指定平台的构建工程,构建工程存放在 engine/src/out 目录下
scss 复制代码
#构建iOS设备使用的引擎
#真机debug版本
./engine/src/flutter/tools/gn  --ios --unoptimized --no-prebuilt-dart-sdk 

# 其他版本
#真机release版本
./engine/src/flutter/tools/gn  --ios -unoptimized --runtime-mode=release
#模拟器版本
./engine/src/flutter/tools/gn  --ios -simulator --unoptimized
#主机端(Mac)构建  --  热重载
./engine/src/flutter/tools/gn  --unoptimized --no-prebuilt-dart-sdk 
  1. m系列芯片的 macOS, 需要安装 Rosetta2,保证一些尚未适配m系列芯片的工具链可以经常运行:softwareupdate --install-rosetta --agree-to-license

在 m4 设备上,没安装 Rosetta2 前遇到的编译问题:OSError: [Errno 86] Bad CPU type in executable:

  1. 调用 ninjia 编译指定的构建工程,如:ninja -C ./engine/src/out/ios_debug_unopt
相关推荐
软件技术NINI15 小时前
泉州html+css 4页
前端·javascript·css·html
再吃一根胡萝卜15 小时前
OpenScreen:免费开源的录屏神器,做出专业级演示视频
前端
Cloud_Shy61815 小时前
Python 数据分析基础入门:《Excel Python:飞速搞定数据分析与处理》学习笔记系列(第十一章 Python 包跟踪器 下篇)
前端·后端·python·数据分析·excel
kyriewen15 小时前
我用AI把公司10万行代码屎山重构了,CTO看了代码后说:你提前转正
前端·javascript·ai编程
ttwuai15 小时前
XYGo Admin 菜单与路由:Vue3 动态路由 + GoFrame 权限菜单的完整实现方案
前端·vue·后台框架
程序员码歌15 小时前
OpenSpec 到 Superpowers:AI 编码从说清到做对
android·前端·人工智能
爱编程的小新☆15 小时前
LangGraph4j工作流框架
前端·数据库·ai·langchain·langgraph4j
@PHARAOH16 小时前
HOW - 构建一个轻量前后端一体服务
前端·微服务·服务端
无限进步_16 小时前
【C++】C++11的类功能增强与STL变化
java·前端·数据结构·c++·后端·算法