美文网首页
Flutter引擎源码的下载与编译

Flutter引擎源码的下载与编译

作者: iOSer_jia | 来源:发表于2020-07-02 18:01 被阅读0次

    工具准备

    1.下载Ghromium提供的部署工具depot_tools

    git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git
    

    2.安装brew

    brew install ant
    

    下载引擎代码

    1.新建目录(路径不能有中文)

    mkdir engine
    

    2.创建gclient文件(通过gclient下载源码)

    touch .gclient
    

    3.配置文件

    solutions = [
        {
            "managed": False,
            "name": "src/flutter",
            "url": "git@github.com:flutter/engine.git@6bc433c6b6b5b98dcf4cc11aff31cdee90849f32",
            "custom_deps": {},
            "deps_file": "DEPS",
            "safesync_url": "",
        },
    ]
    

    需要注意的是,url的后面凭借的Flutter引擎commitID需要你当前所要使用的Flutter版本保持一致
    可以通过cat $FLUTTER/internal/engine.version命令查看当前Flutter对应的Flutter引擎commitID

    4.执行gclient sync(这个操作将会fetch Flutter 所有的依赖。这里有10G文件,需要点时间,请保持网络!该操作需要科学上网)

    gclient sync
    

    构建

    我们要先用GN生成一个Ninja构成文件的元构建系统,最后再用Ninja编译

    cd engine/src/flutter/tools
    
    #构建iOS设备使用的引擎
    #真机debug版本
    ./gn --ios --unoptimized
    #真机release版本(日常开发使用,如果我们要自定义引擎)
    ./gn --ios --unoptimized --runtime-mode=release
    #模拟器版本
    ./gn --ios --simulator --unoptimized
    #主机端(Mac)构建
    ./gn --unoptimized
    

    构建完成后会有4个Xcode工程,存放在out/目录下

    编译

    这个过程相当耗时且消耗电脑性能,记得给你的电脑散热!!!

    ninja -C host_debug_unopt && ninja -C ios_debug_sim_unopt && ninja -C ios_debug_unopt && ninja -C ios_release_unopt
    

    配置

    iOS中配置项目代码
    在Flutter项目的iOS工程中,找到Generated.xcconfig,在里面添加两个环境变量

    FLUTTER_ENGINE=存放引擎代码的路径/engine/src
    #使用的引擎对应版本(这里是iOS-debug模式下-模拟器的版本)
    LOCAL_ENGINE=ios_debug_sim_unopt
    

    此时改Flutter项目的iOS工程使用的就是我们下载编译的Flutter引擎了。

    本人不懂安卓,安卓的配置就不做介绍了。

    相关文章

      网友评论

          本文标题:Flutter引擎源码的下载与编译

          本文链接:https://www.haomeiwen.com/subject/ksorqktx.html