gem install ruby-debug-ide
gem install debase
- 在根目录创建
Gemfile
gem 'cocoapods', path: 'path/to/cocoapods/'
gem 'cocoapods-binary', path: 'path/to/cocoapods-binary/'
gem 'ruby-debug-ide'
gem 'debase'
- 运行
bundle install
- 创建
.vscode/launch.json
{
"configurations": [{
"name": "Debug CocoaPods Plugin with Bundler",
"showDebuggerOutput": true,
"type": "Ruby",
"request": "launch",
"useBundler": true,
"cwd": "${workspaceRoot}/Testing",
"program": "${workspaceRoot}/cocoapods/bin/pod",
"args": ["install"]
}
}
- 在 VSCode 中对源码下断点
- 按 F5 或点击菜单
Debug - Start Debugging
骚年,不要浪费时间了,快去使用 bundler 吧!
- Clone CocoaPods
git clone https://github.com/CocoaPods/CocoaPods.git
- 把 clone 的仓库切换到和本地 pod 版本相同的 tag 上
git checkout `pod --version`
- 在根目录创建
.vscode/launch.json
并填入以下内容(注意,有几个字段需要按实际填写
{
"configurations": [{
"name": "Debug CocoaPods Plugin",
"showDebuggerOutput": true,
"type": "Ruby",
"request": "launch",
"cwd": "path/to/podfile/dir", // pod 命令执行的路径
"program": "${workspaceRoot}/bin/pod",
"args": ["install"] // `pod` 命令的参数
}]
}
- 注释
bin/pod:L27 (# require 'bundler/setup')
- 在 VSCode 中对源码下断点
- 按 F5 或点击菜单
Debug - Start Debugging
- 创建一个新的文件夹,下面所有的操作都在这个文件夹中
- Clone & checkout CocoaPods 的源码
- Clone 或者创建一个 CocoaPods 插件
- 把本仓库中的
.vscode
目录拷贝到创建的文件夹中 - 对
.vscode/launch.json
进行一些修改cwd
:pod
命令执行的路径pluginPath
: plugin 的路径args
:pod
命令的参数
- 修改
cocoapods/bin/pod:L27
- 把
require 'bundler/setup
换成require_relative '../../.vscode/plugin_patch'
, 参考这里
- 把
- 在 VSCode 中对源码下断点
- 按 F5 或点击菜单
Debug - Start Debugging
本仓库中 CocoaPods 源码的版本为
1.8.0.beta.1
,因为 CocoaPods 依赖的 gem 如 CocoaPods-Core 使用的还是系统内的版本,所以为了防止兼容性问题,本地安装版本也需要安装这个版本的 pod
- Clone 这个仓库
- 在 VSCode 中下断点
- eg.
cocoapods/lib/cocoapods/command/install.rb:L46
- eg.
cocoapods-binary/lib/cocoapods-binary/Main.rb:L101
- eg.
- 按 F5 或点击菜单
Debug - Start Debugging
- Have fun 🌸
如果有任何问题,欢迎提交 issue 😉
喜欢就点个 🌟 吧