如何从chromium-iOS仓库提取iOS专属代码 无需ninja在Xcode创建独立项目
解答
核心结论
完全脱离Chromium原生构建体系、直接提取iOS专属代码从零搭建独立Xcode项目可行性极低,但可以通过裁剪冗余文件、官方原生工具生成Xcode项目的方式,满足轻量化代码管理、直接在Xcode中开发调试的需求,不需要手动操作ninja工具。
具体操作方案
- 第一步:裁剪全量代码包的冗余体积
20GB的全量代码包中,超过70%的体积来自其他平台代码、历史编译缓存、多平台测试资源、第三方依赖的非iOS架构产物,删除以下非必要内容后,整体体积可压缩到5GB以内,完全满足Git仓库上传要求:- 所有路径下
*/android/*、*/linux/*、*/win/*、*/chromeos/*的其他平台专属代码 - 根目录下的
out/文件夹(你的历史编译产物全存在此处,删除不会影响源码本身) - 第三方依赖目录下的非iOS架构产物,比如
third_party/llvm-build下的非darwin架构文件、third_party/ffmpeg下的其他平台编译配置
- 所有路径下
- 第二步:生成可直接使用的原生Xcode项目
Chromium官方提供了直接生成Xcode项目的配置参数,生成的项目可以直接在Xcode中编译调试,不需要后续手动调用ninja:- 运行gn配置命令,添加Xcode项目生成参数:
gn gen out/ios_xcode --args='target_os="ios" target_cpu="arm64" enable_dsyms=true ios_enable_code_signing=false' --ide=xcode - 生成完成后直接打开
out/ios_xcode/all.xcodeproj即可,所有iOS相关的编译目标、依赖配置、编译参数都已经自动完成配置,所有开发、调试、编译操作都可以直接在Xcode中完成
- 运行gn配置命令,添加Xcode项目生成参数:
- 第三步:适配独立Git仓库管理
你可以基于裁剪后的源码目录初始化新的Git仓库,只提交iOS相关源码、构建配置文件,忽略剩余构建临时文件即可。如果需要后续同步官方Chromium的更新,可以保留原仓库的.git配置,通过sparse checkout仅拉取iOS相关路径的更新即可。
注意事项
- 不建议尝试完全剥离Chromium的原生构建体系从零搭建Xcode项目,Chromium的iOS代码依赖超过200个第三方组件、数千条定制化编译配置,手动配置Xcode项目的工作量极大,且后续无法同步官方更新
- 生成Xcode项目时建议只指定你需要的CPU架构(比如仅保留arm64),可以进一步减少生成的项目体积和编译耗时
内容的提问来源于stack exchange,提问作者Nishchal Visavadiya
相关产品推荐
相关产品推荐

