Ungoogled Chromium127 编译指南 MacOS篇(八)- 开始编译

news/2025/1/13 3:01:17/

1. 引言

完成了所有依赖包的安装后,我们终于来到了最关键的编译阶段。在开始编译之前,有一些重要的配置信息需要了解。本文将指导您完成整个编译过程。

2. 签名相关说明

虽然在我们的测试编译中不需要进行签名操作,但了解官方的签名要求仍然很有帮助:

2.1 签名环境变量

如果需要签名和公证,需要设置以下环境变量:

MACOS_CERTIFICATE_NAME       # Developer ID 证书全名
PROD_MACOS_NOTARIZATION_APPLE_ID  # Apple 开发者账号邮箱
PROD_MACOS_NOTARIZATION_TEAM_ID   # Apple 开发者团队 ID
PROD_MACOS_NOTARIZATION_PWD       # App 专用密码

2.2 签名代码部分

在正式发布版本中,build.sh 会包含类似以下的签名代码:

# Sign the binary
codesign --sign "$MACOS_CERTIFICATE_NAME" --force --timestamp \--identifier io.ungoogled-software.ungoogled-chromium \--options restrict,library,runtime,kill \--entitlements $_root_dir/entitlements/app-entitlements.plist \out/Default/Chromium.app# Verify the binary signature
codesign --verify --deep --verbose=4 out/Default/Chromium.app

3. 开始编译

3.1 准备工作

# 确保位于项目目录
cd ungoogled-chromium-macos# 确保 Xcode 已打开
# 这一步很重要,因为编译过程需要访问 Xcode 的开发者工具

3.2 运行编译脚本

# 执行编译脚本
./build.sh

3.3 编译过程说明

  1. 脚本会首先下载 Chromium 源码
  2. 应用 Ungoogled Chromium 的补丁
  3. 配置构建参数
  4. 开始实际的编译过程

4. 注意事项

4.1 编译时间

  • 编译时间较长,通常需要几个小时
  • 具体时间取决于您的硬件配置
  • 建议使用性能模式并连接电源适配器

4.2 可能的问题处理

如果编译失败,需要进行以下清理:

# 如果下载失败,删除下载缓存
rm -rf build/downloads_cache# 如果编译失败,删除源码目录
rm -rf build/src

4.3 系统资源

  • 确保有足够的磁盘空间(至少 40GB)
  • 保持系统有足够的可用内存
  • 避免在编译过程中运行其他重资源程序

5. 编译输出

编译成功后,将在 build/ 目录下生成 .dmg 文件,这就是我们编译好的 Ungoogled Chromium 浏览器安装包。

6. 后续步骤

下一篇文章中,我们将介绍如何验证编译结果,并对编译好的浏览器进行简单的功能测试。

7. 总结

编译过程虽然耗时,但只要正确配置了环境并遵循步骤,通常都能顺利完成。请耐心等待编译完成,避免中断编译过程。如果遇到问题,可以参考前面提到的清理步骤重新开始。


注意:本指南采用测试目的的编译方式,没有进行签名操作。如果您需要发布版本,请参考官方文档中的签名说明进行相应配置。


http://www.ppmy.cn/news/1562682.html

相关文章

Linux (CentOS) 安装 Docker 和 Docker Compose

🚀 作者主页: 有来技术 🔥 开源项目: youlai-mall ︱vue3-element-admin︱youlai-boot︱vue-uniapp-template 🌺 仓库主页: GitCode︱ Gitee ︱ Github 💖 欢迎点赞 👍 收藏 ⭐评论 …

【广西乡镇界】arcgis格式shp数据乡镇名称和编码2020年内容测评

【广西乡镇界】arcgis格式shp数据乡镇名称和编码2020年内容测评

MongoTemplate 性能优化指南

MongoTemplate 性能优化指南 1. 查询优化 1.1 合理使用索引 为经常查询的字段创建索引使用复合索引优化多字段查询避免使用无索引的排序操作 // 创建索引示例 mongoTemplate.indexOps(Collection.class).ensureIndex(new Index().on("field1", Sort.Direction.AS…

HTML语言的数据库编程

HTML语言的数据库编程概述 引言 在当前的信息时代,数据是决策和运营的核心。几乎所有的应用程序都涉及到数据的存储、检索和处理。虽然HTML(超文本标记语言)本身并不能直接用于数据库编程,但它在Web开发中占据了重要的地位。通过…

AI人工智能领域常见名词缩写

1.Numpy NumPy是“Numerical Python”的缩写。这里“Numerical” 指的是数值计算,而 “Python” 则是这种数值计算所基于的编程语言。 2.ndarray ndarray是 “N-dimensional array”,即 N 维数组。这里的 “nd” 是 “N-dimensional” 的缩写&#xf…

计算机网络八股文学习笔记

文章目录 计算机网络基础网络分层模型OSI七层模型TCP/IP四层模型 HTTP从输入URL到页面展示到底发生了什么?(非常重要)HTTP状态码HTTP Header中常见的字段有哪些?HTTP和HTTPS有什么区别?(重要)HTTP/1.0和HTTP/1.1有什么区别?HTTP/1.1和HTTP/2.0有什么区别?HTTP/2.0和HTTP/3…

Oracle Dataguard(主库为双节点集群)配置详解(3):配置主库

Oracle Dataguard(主库为双节点集群)配置详解(3):配置主库 目录 Oracle Dataguard(主库为双节点集群)配置详解(3):配置主库一、开启归档二、开启强制日志三、…

React 元素渲染

React 元素渲染 React 是一个用于构建用户界面的 JavaScript 库,它允许开发人员创建大型应用程序,这些应用程序可以随着时间的推移而高效地更新和渲染。React 的核心概念之一是元素渲染,它描述了如何将 JavaScript 对象转换为 DOM&#xff0…