在iOS开发中,我们经常使用CocoaPods管理三方依赖,如果要查看CocoaPods运行过程的话,可以使用ruby调试环境调试CocoaPods源码。
一 搭建ruby调试环境
可以参考这篇文章搭建ruby调试环境,CocoaPods调试环境只需在此基础上做修改
VSCode搭建ruby开发调试环境
二 cocoaPods源码
下载CocoadPods源码,把源码clone到本地
https://github.com/CocoaPods/CocoaPods
准备iOS工程命名为iOSProject,新建一个目录,把CocoaPods源码和iOS工程放到这个目录下,并在这个目录下新建Gemfile文件。
Gemfile中引入Ruby库
source 'https://gems.ruby-china.com/'
gem 'ruby-debug-ide'
gem 'debase', '0.2.5.beta2'
gem 'cocoapods', path: './CocoaPods'
gem ‘cocoapods’, path: ‘./CocoaPods’ 这一行是源码的方式引入CocoaPods
三 配置VSCode调试
VSCode中点击左侧Debug菜单,然后点击create a launch.json file。
在弹出的选择框Select debugger中选择Ruby,然后选择Debug Local File。
在launch.json中写入内容。
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "Debug Local File",
"type": "Ruby",
"request": "launch",
"program": "${workspaceRoot}/CocoaPods/bin/pod",
"cwd": "${workspaceRoot}/iOSProject",
"args": ["install"]
}
]
}
program字段为pod可执行文件的目录,cwd为当前的工作目录,这里的iOSProject为工程名,根据实际需要替换,args为命令参数。
点击debug按钮运行程序,如果出现报错
WARNING: CocoaPods requires your terminal to be using UTF-8 encoding.
Consider adding the following to ~/.profile:
export LANG=en_US.UTF-8
需要在终端的配置文件中加上export LANG=en_US.UTF-8,重启终端,重启VSCode,重新debug运行程序。打开install.rb文件,在run方法中增加断点,断点可以正常断到。