本来并不需要这篇文章记录的,因为Cocoapods 插件调试环境配置已经写了,不过在实际操作的过程中,还是遇到了些问题,在这里记录一下:
开发环境
rubyMine
本机使用rvm安装了ruby2.6版本(rvm是个命令行工具,用于多版本ruby的管理和切换 rvm.io,中文安装 rvm-guide
)
准备源码
这里,我以调试一个现有的cocoapods插件为例,cocoapods-binary:这是一款可以将某些指定的pod转换为二进制的插件
将源码下载下来
建立一个文件夹
这里,
.CocoaPodsPlugins
├── Gemfile #bundle的依赖文件
├── cocoapods-binary #插件的源码
├── demo #这个就是一个随便用xcode建立的iOS的使用podfile的demo工程
其中Gemfile的内容是:
source 'https://rubygems.org'
gem 'cocoapods-binary' , :path => "./cocoapods-binary"
group :debug do
gem 'ruby-debug-ide'
gem 'debase'
end
这个Gemfile文件的语法和我们熟知的Podfile文件的语法比较相似
安装依赖
因为我们是调试某个gem库,为了不影响我们已经安装的,安装依赖的时候,最好是安装到当前文件夹下的执行目录中去
ruby的依赖包管理工具 bundle,如果配置了config文件的化,是可以在配置文件中声明安装的目录的
在当前目录 建立./bundle/config文件
建好后,如下:
config文件内容是:
BUNDLE_PATH: "vendor/bundle"
执行 bundle install,将会把Gemfile文件中所申明的依赖都安装到vendor/bundle目录下
RubyMine设置
在Rubymine中打开CocoaPodsPlugins文件夹,设置Edit Configurations
选择 Gem Command
Gem name: 输入cocoapods-binary(插件的gem名字,这里输入时候,rubymine会弹出可选项,这里的可选项是rubymine可搜到的gem包)
Excutable name: 输入 pod(这个可以固定,因为这是宿主程序,这个也是输入,就出现可选项,如果没出现pod,那么应该是你的Ruby SDK没有选好)
Arguments: pod命令执行需要的参数,以cocoapods-binary为例 执行命令为pod install,所以这里填 install
Working directory: 选择测试pod的工程目录,也就是demo文件存在的目录(这个目录要是deom工程的podfile文件所在的目录,因为pod install会使用到,找不到,pod install就会出错的)。
Ruby SDK 选择Use Other SDK and gem,一般情况下选择默认即可,如果有rvm管理多版本的ruby,则需要选择cocoapods所存在的ruby版本。
这里,要注意,rvm管理ruby,通常这里有好几个选项,像我电脑,有两个2.6版本,我也不知道为什么.如果这里选错了,上面的Excutable name,即使强行写了pod,后面调试也会提示找不到Excutable.
选择Bundler Tab,勾选Run the script in context of the bundle(bundle exec)
依次点击 Apply,OK完成设置
调试
点击小爬虫,就可以打断点调试了