Chromium 开发指南2024 Mac篇-编译前的准备工作(一)

1.引言

Chromium 是一款开源的网页浏览器项目,作为 Google Chrome 浏览器的基础,其卓越的性能和广泛的应用使其成为众多开发者研究和学习的对象。对于希望深入了解浏览器内核,或是计划在 Chromium 基础上开发自定义浏览器的开发者来说,掌握 Chromium 的编译和开发流程是至关重要的一步。

本指南旨在为 Mac 用户提供一个详细的 Chromium 编译教程。通过本指南,您将学会如何在 macOS 环境下准备开发工具、配置依赖项,并顺利获取和编译 Chromium 源代码。无论您是初次接触 Chromium 开发的新手,还是有一定经验的开发者,本指南都将帮助您顺利踏上 Chromium 开发之旅。

2.环境硬件要求

📢因为本系列文章编译的Chromium 版本为 124 ,所以需要macOS 14 或更高系统版本

因为本系列文章编译的Chromium 版本为 124 ,所以需要macOS 14 或更高系统版本

  • 操作系统:macOS 13.5(Ventura) 或更高
  • 处理器:Intel/Apple M1 或更高
  • 内存:建议 8GB 或更高
  • 磁盘空间:至少 160GB 的可用空间
  • Xcode:Xcode 15.0.x 或更高

3.为什么编译不同版本chromium需的mac系统版本和xcode版本不一样

这是因为Chromium项目依赖于macOS和Xcode提供的一些特定功能、库和工具链,而这些功能、库和工具链会随着系统和开发工具的更新而变化。具体原因包括:

操作系统和Xcode的兼容性:不同版本的Xcode只能在特定版本的macOS上运行。如果Chromium项目使用了新版本的Xcode中的特性或工具,那么就需要相应的macOS版本来支持。

系统库和API的变化:macOS的更新可能引入新的系统库和API,或者对现有的库和API进行修改。Chromium项目可能依赖这些库和API,因此需要特定版本的macOS来确保兼容性和功能性。

工具链的变化:Xcode的更新可能会带来编译器、链接器和其他开发工具的更新。这些更新可能包含新的特性、优化和bug修复,Chromium项目可能需要这些更新来改善性能或解决问题。

安全性和稳定性:新版本的macOS和Xcode通常包含重要的安全更新和稳定性改进。为了确保开发环境的安全和稳定,Chromium项目可能会要求使用这些更新后的版本。

开发者要求:有时开发者可能会利用新版本的Xcode特有的开发工具或调试工具,这也要求使用相应版本的macOS。

所以由于以上原因,Chromium项目会对不同版本的编译环境提出特定要求,以确保代码能够正确编译和运行。

4.如何确认编译Chromium所需依赖和系统版本

上一节,我们了解为什么编译不同版本chromium需的mac系统版本和xcode版本不一样的原因,本节我们来了解下如何选择和确认编译Chromium所需依赖和系统版本

4.1 查询官方指南

👌在任何情况下,首先应该参考官方指南,这是最准确的答案

在任何情况下,首先应该参考官方指南,这是最准确的答案

访问官方指南:https://chromium.googlesource.com/chromium/src/+/main/docs/mac_build_instructions.md

通过阅读官方文档我么可知,打开对应版本Chromium项目中的build/config/mac/mac_sdk.gni这个文件查看mac_sdk_official_version这一项。

可知需要的MacOS Base sdk 14.0

然后访问Apple 官方文档:Xcode - Support - Apple Developer ,查询对应Xcode和MacOS版本。

得到我们需要安装 macOS Ventura 13.5和Xcode 15.0.x

4.2 查询CEF 文档

📌虽然官方文档很准确但是,您可以看出来... 很复杂,我个人更推荐CEF 文档,写的很清晰。

虽然官方文档很准确但是,您可以看出来... 很复杂,我个人更推荐CEF 文档,写的很清晰。

什么是CEF ? Chromium嵌入式框架(Chromium Embedded Framework)是一个开源的软件框架,用于在另一个应用程序中嵌入Chromium网络浏览器。是基于Chromium 二次开发的项目。

我们可以访问CEF wiki 得到编译帮助文档

chromiumembedded / cef / wiki / BranchesAndBuilding --- Bitbucket

通过查询文档我们可以快速的得到我们需要的MacOS 和Xcode版本

5.结语

通过本指南,您已经掌握了在 macOS 环境下编译 Chromium 所需的硬件要求和系统依赖,并了解了为什么不同版本的 Chromium 需要特定的 macOS 和 Xcode 版本。我们详细介绍了如何通过官方指南和 CEF 文档来确认编译 Chromium 所需的依赖项和系统版本,希望这些内容能帮助您顺利开始 Chromium 的编译与开发。

在接下来的文章《Chromium开发指南2024 Mac篇(二)-Xcode安装》中,我们将详细讲解如何在 macOS 上正确安装和配置 Xcode,这也是编译 Chromium 的关键步骤之一。通过这一系列指南,您将逐步掌握在 macOS 环境下开发和编译 Chromium 的全部流程。敬请期待!

这段时间一直在忙,没有及时更新,后台接到很多小伙伴的私信。有需要Android的,有需要MAC的,有需要指纹的一些逻辑的,还有需要CEF的。这些我都会一一完成,也感谢大家的鼓励和支持。有什么需求也可以在后台私信我,可能回复比较慢但我会尽力回复大家的。本身我也有个我的节奏。轻易不会断更,请大家放心食用。

相关推荐
獨枭16 小时前
Linux 下安装和使用 Jupyter Notebook
linux·chrome·jupyter
森叶19 小时前
利用 Chrome devTools Source Override 实现JS逆向破解案例
前端·javascript·chrome devtools
日升1 天前
Chrome 134 版本开发者工具(DevTools)更新内容
前端·chrome·浏览器
我要升天!2 天前
Linux中《环境变量》详细介绍
linux·运维·chrome
muzidigbig5 天前
Chrome(Google) 浏览器安装Vue2、Vue3 Devtools插件方法
chrome·vue.js devtools·google vue插件方法
pitt19975 天前
Chrome 开发环境快速屏蔽 CORS 跨域限制!
chrome·跨域·cors·解决跨越技巧
skywalk81635 天前
自动化浏览器的测试框架playwright 支持多种浏览器Chromium、Firefox 和 WebKit
前端·chrome·自动化·测试·playwright
亿牛云爬虫专家6 天前
Headless Chrome 优化:减少内存占用与提速技巧
前端·chrome·内存·爬虫代理·代理ip·headless·大规模数据采集
小白学大数据7 天前
Python + Chrome 爬虫:如何抓取 AJAX 动态加载数据?
开发语言·chrome·爬虫·python
头发尚存的猿小二8 天前
Linux--环境变量
前端·javascript·chrome