使用 VSCode debug CocoaPods 和插件源码
gem install ruby-debug-ide
gem install debase
- Create a
Gemfile
in project root and add the following content to it
gem 'cocoapods', path: 'path/to/cocoapods/'
gem 'cocoapods-binary', path: 'path/to/cocoapods-binary/'
gem 'ruby-debug-ide'
gem 'debase'
- run
bundle install
- Create
.vscode/launch.json
in project root
{
"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"]
}
}
- Add some breakpoint within VSCode
- Press F5 or hit menu
Debug - Start Debugging
Don't waste your time! Use bundler now!
- Clone CocoaPods
git clone https://github.com/CocoaPods/CocoaPods.git
- Checkout cloned repo to match the version you have installed on your laptop
git checkout `pod --version`
- Create
.vscode/launch.json
in CocoaPods' root folder
{
"configurations": [{
"name": "Debug CocoaPods Plugin",
"showDebuggerOutput": true,
"type": "Ruby",
"request": "launch",
"cwd": "path/to/podfile/dir", // where the `pod` command execute (the folder should contain a `Podfile`)
"program": "${workspaceRoot}/bin/pod",
"args": ["install"] // `pod` command arguments
}]
}
- Comment
bin/pod:L27 (# require 'bundler/setup')
- Add some breakpoint within VSCode
- Press F5 or hit menu
Debug - Start Debugging
- Create a new folder, all actions below are under this folder
- Clone & checkout CocoaPods source code
- Clone or create a CocoaPods plugin
- Copy
.vscode
to this folder - Make some changes in
.vscode/launch.json
cwd
: where thepod
command execute (the folder should contain aPodfile
)pluginPath
: path to the pluginargs
:pod
command arguments
- Change
cocoapods/bin/pod:L27
- From
require 'bundler/setup
torequire_relative '../../.vscode/plugin_patch'
, just like this
- From
- Add some breakpoint within VSCode
- Press F5 or hit menu
Debug - Start Debugging
The CocoaPods version in this repository is
1.8.0.beta.1
, incase some version incompatible issue with CocoaPods-Core or other gems, you should install this version's CocoaPods in your Mac too
- Clone this repository
- Open it with VSCode
- Add a breakpoint somewhere you like to explore
- eg.
cocoapods/lib/cocoapods/command/install.rb:L46
- eg.
cocoapods-binary/lib/cocoapods-binary/Main.rb:L101
- eg.
- Press F5 or hit menu
Debug - Start Debugging
- All set 🌸
If you have any question, don't hesitate to fire a issue 😉
Appreciate a 🌟 if you like it.