如何为iOS编译pixiv分支WebRTC?提示find_depot_tools文件不存在
报错原因
你跳过了WebRTC编译体系必需的depot_tools工具链配置环节,且源码拉取方式不符合WebRTC的多仓库依赖要求,才会触发find_depot_tools file not found错误,和build_ios_libs.py脚本本身无关。
修复步骤
- 先部署depot_tools工具链
WebRTC的编译流程完全依赖Chromium体系的depot_tools工具集(包含gn、gclient、ninja等核心构建工具),这个组件不会随webrtc源码仓库一起下发,必须单独部署:- 拉取Chromium官方维护的depot_tools仓库到本地固定目录
- 将depot_tools的绝对路径加入当前shell的PATH环境变量,以zsh为例:
echo 'export PATH="$PATH:/your/local/path/depot_tools"' >> ~/.zshrc source ~/.zshrc - 执行
which gclient验证,命令返回对应路径即为配置生效。
- 用正确方式拉取完整源码
不要直接用gh repo clone pixiv/webrtc拉取单仓库,WebRTC是多仓库嵌套依赖结构,单仓库源码缺少DEPS文件声明的上百个第三方依赖,就算解决了depot_tools报错,后续也会连续出现头文件、依赖库缺失问题。正确拉取流程:- 新建空的工作目录,在目录根下创建
.gclient配置文件,内容指定目标分支:solutions = [ { "name": "src", "url": "https://github.com/pixiv/webrtc.git@你要编译的对应Release版本commit哈希", "deps_file": "DEPS", "managed": False, "custom_deps": {}, } ] target_os = ["ios"] - 在该目录下执行
gclient sync,等待全量依赖拉取完成,这个过程会自动同步所有匹配版本的依赖库、编译配置。
- 新建空的工作目录,在目录根下创建
- 执行编译
依赖拉取完成后进入src目录,再运行编译命令:python build_ios_libs.py --bitcode
注意事项
- 不要用sudo执行编译脚本,sudo会重置当前用户的PATH环境变量,依旧会触发depot_tools找不到的报错。
- 编译前先执行
sudo xcode-select -s /Applications/Xcode.app/Contents/Developer指定正确的Xcode路径,避免后续出现iOS SDK找不到的问题。 - 如果之前已经用gh clone拉过单仓库源码,直接删掉重新按gclient流程拉取即可,不要尝试手动补依赖,补全的依赖版本不匹配一样会编译失败。
内容的提问来源于stack exchange,提问作者Juan Gil
相关产品推荐
相关产品推荐

