参考:Mac上本地编译Chrome浏览器踩坑笔记(2021.02最新) - 掘金
For Mac:
一、下载编译工具链:deptool
git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git
export PATH="$PATH:/Users/yumlu/code/depot_tools"
(不过为了后续操作方便,可以将其加入到你的 ~/.zshrc 里)
完成后,在命令行里测试下 fetch 命令是否可用:
which fetch
二、下载Chromium项目代码
git config --global http.postBuffer 524288000
git config --global core.precomposeUnicode true
下载源码:新建一个文件夹,进入后执行:
fetch --no-history chromium
也可以使用这种方式下载源码:
git clone --depth 1 -b 114.0.5735.134 https://chromium.googlesource.com/chromium/src.git src
gclient sync
(gclient runhooks)
cd /Users/yumlu/code/src/build/util/ && ./lastchange.py LASTCHANGE
gclient runhooks
http_download.py文件中加入如下两行:(否则会出现https链接的文件下载失败)
import ssl
ssl._create_default_https_context = ssl._create_unverified_context
如发现ssl报错
经常会遇到请求某个https或wss地址会校验ssl证书失败的情况。
报错类似:
ssl.SSLCertVerificationError:[SSL: CERTIFICATE_VERIFY_FAILED]
certificate verify failed: unable to get local issuer certificate(_ssl.c:1056)
与 wss://xxxxxx 的网络连接断开,请检查客户端与网络是否正常
在windows上和linux服务器上都没有问题,也就只有Mac会遇到。
在StackOverflow上找到了彻底解决这类问题的办法:
>cd /Applications #从根目录进入应用子目录
>cd Python\ 3.7/ #我的Python版本是3.7,大家根据情况弄
>sudo ./Install\ Certificates.Command #进入目录后,可以ls一下,看一下都有哪些,找那个对的
输入密码,就开始自动安装证书。
安装好后,去测了下,就发现没问题了。
后面想获取最新代码,执行 cd src && git rebase-update && gclient sync 即可
三、有关编译
cd src
使用gn 工具根据当前系统环境生成合适的ninjaFile,此后使用autoninja进行编译时就不用设置任何参数了,直接基于ninjaFile配置文件进行编译:
gn gen out/Default
现在会在out目录下生成编译Chrome所需的一系列参数和配置
编辑out/Default/args.gn文件添加如下内容:
# Set build arguments here. See `gn help buildargs`.
is_debug = false
enable_nacl = false
target_cpu = "x64"
proprietary_codecs = true
ffmpeg_branding = "Chrome"
#media_use_ffmpeg = false
然后开始编译(整个过程大概耗时7-10个小时):
autoninja -C out/Default chrome
编译完成后,你会看到在out目录下出现了
./out/Default/Chromium.app/Contents/MacOS/Chromium 这样一个可执行文件,直接命令行执行即可,就会打开你自己本地编译的Chromium了
清理:gn clean out/Default
一些编译失败的处理:
Mac_sdk.gni 修改当前os版本
BUILD.gn 文件中加上 cflags += [ "-Wno-deprecated-declarations" ]
启动编译好的chromium:
/Users/yumlu/code/src/out/Default/Chromium.app/Contents/MacOS/Chromium --enable-logging=stderr --v=1 >chromium.log 2>&1
/Users/yumlu/code/src/out/Default/Chromium.app/Contents/MacOS/Chromium --force-fieldtrials="WebRTC-SpsPpsIdrIsH264Keyframe/Enabled/" --enable-logging=stderr --v=1 >chromium.log 2>&1
哪里执行这个命令log就在哪里
拉取指定版本,如版本111.0.5563.110
git fetch origin tag 111.0.5563.110
git checkout -b branch_111.0.5563.110 tags/111.0.5563.110
gclient sync --with_branch_heads --with_tags
或者gclient sync -D --with_branch_heads --with_tags
查看xcode路径:xcode-select -p
设置xcode路径:sudo xcode-select -s /Users/yumlu/Downloads/Xcode.app
1. 安装Visual Studio(需要参考chromium版本要求的VS版本),安装完成后配置环境变量:
vs2022_install=C:\Program Files\Microsoft Visual Studio\2022\Community
WINDOWSSDKDIR=C:\Program Files (x86)\Windows Kits\10
2、下载depot_tools
3、下载指定版本chromium源码
git clone --depth 1 -b 114.0.5735.134 https://chromium.googlesource.com/chromium/src.git src
4、gclient sync
5、gn gen out\Default
6、编辑out/Default/args.gn文件添加如下内容:
# Set build arguments here. See `gn help buildargs`.
is_debug = false
is_clang = false
target_cpu = "x64"
enable_nacl = false
proprietary_codecs = true
#media_use_ffmpeg = false
ffmpeg_branding = "Chrome"
7、autoninja -C out\Default chrome
然后启动编译后的exe,log在C:\Users\luyum\AppData\Local\Chromium\User Data\chrome_debug.log