虽然很早就接触到了ruby,但是以前的调试都是通过ruby的puts输出来调试ruby代码。puts输出的方式很难满足最近由于工作需要,因此希望能够通过断点的方式来调试ruby代码。虽然Google到一些RubyMine配置的文章,但是在配置过程中还是碰到一些问题,把这些坑记下来,希望能够方便遇到类似问题的后者。
一、环境信息
-
系统 ruby版本:
ruby --version ruby 2.6.3p62 (2019-04-16 revision 67580) [universal.x86_64-darwin19] -
Mac的系统版本
macOS Catalina 10.15.5 -
安装 rvm工具
1. curl -sSL https://get.rvm.io | bash -s stable 2. rvm 安装完毕信息如下: Ruby enVironment Manager 1.29.10 (latest) (c) 2009-2017 Michal Papis, Piotr Kuczynski, Wayne E. Seguin For additional documentation please visit https://rvm.io -
通过 rvm 安装ruby
rvm install "ruby-2.7.2" -
设置ruby 2.7.2 版本的ruby 为默认的ruby
rvm 2.7.2 -- current && default -
安装ruby的调试工具RubyMine-2020.3(30天试用期)
二、源码准备
-
准备源码
1. 创建文件目录: rubyDebug 2. clone CocoaPods 对应的源码仓库:git clone https://github.com/CocoaPods/CocoaPods.git 3. clone cocoapods-bin 对应的源码仓库:git clone https://github.com/tripleCC/cocoapods-bin.git -
配置Gem
新建Gemfile 文件,内容如下
source 'https://rubygems.org' gem 'cocoapods', path: './CocoaPods/' gem 'cocoapods-bin', path: './cocoapods-bin/' group :debug do gem 'ruby-debug-ide' gem 'debase' end -
执行
bundle install命令 -
执行完毕之后的目录结构如下:
三、RubyMine 配置
-
使用RubyMine 打开rubyDebug目录
-
在开始调试cocoapods插件之前建议看下rubyMine能否调试正常的ruby文件:
1. 新建一个ruby文件,在ruby文件内部定义简单的方法用以调试 2. 双击control键,输入对应名的命令:ruby xx.ry 3. 点击右上角的小虫子,开始调试简单的ruby 4. 如果能够正常调试如下下图所示表示可以正常调试ruby配置如下:
-
配置CocoaPods 插件的调试
-
点击右上角的Editor Configurations 添加配置,配置页面如下:
在 Run the script in context of the bundle(bundle exec) 打钩
-
配置工程对ruby 版本的依赖
-
验证配置的结果,配置成功则可以进行调试
-
-
参数解释
选择 Gem Command 1. Gem name: 输入cocoapods-bin(插件的gem名字) 2. Excutable name: 输入 pod(这个可以固定,因为这是宿主程序) 3. Arguments: pod命令执行需要的参数,以cocoapods-bin为例 执行命令为pod bin archive,则可以填写 bin archive 4. Working directory: 选择测试pod的工程目录,也就是podspec文件存在的目录。 5. Ruby SDK 建议选择 use project SDK,只有选择工程的SDK,才可以正常调试 cocoapods-bin 插件
四、其他
-
在首次点击调试的时候RubyMine 会根据对应选择的ruby 版本安装对应的debase及 ruby-debug-ide 。
-
关于ruby 版本的问题
强烈建议使用ruby 2.7.2 及以上版本。使用系统自带的2.6.3版本的ruby RubyMine 的Debug的调试通能会报如下的错误: Error running 'install' Failed to Install Gems. Following gems were not installed: /Applications/RubyMine.app/Contents/plugins/ruby/rb/gems/debase-2.3.2.gem: Error installing debase-2.3.2.gem: ERROR: Failed to build gem native extension. current directory: /Users/lhs7248/.gem/ruby/2.6.0/gems/debase-2.3.2/exto /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/bin/ruby -I /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0 -r ./siteconf20201209-44039-nco38b.rb extconf.rb checking for vm_core.h... no checking for vm_core.h... no ************************************************************************** No source for ruby-2.6.3-p62 (revision 67580) provided with debase-ruby_core_source gem. Falling back to ruby-2.6.0-p0. ************************************************************************** checking for vm_core.h... yes checking for iseq.h... no checking for iseq.h... yes checking for method.h... no Makefile creation failed ***********************************************... (show balloon)
·