本來(lái)并不需要這篇文章記錄的,因?yàn)?a target="_blank">Cocoapods 插件調(diào)試環(huán)境配置已經(jīng)寫(xiě)了,不過(guò)在實(shí)際操作的過(guò)程中,還是遇到了些問(wèn)題,在這里記錄一下:
開(kāi)發(fā)環(huán)境
rubyMine
本機(jī)使用rvm安裝了ruby2.6版本(rvm是個(gè)命令行工具,用于多版本ruby的管理和切換 rvm.io,中文安裝 rvm-guide
)
準(zhǔn)備源碼
這里,我以調(diào)試一個(gè)現(xiàn)有的cocoapods插件為例,cocoapods-binary:這是一款可以將某些指定的pod轉(zhuǎn)換為二進(jìn)制的插件
將源碼下載下來(lái)
建立一個(gè)文件夾
這里,
.CocoaPodsPlugins
├── Gemfile #bundle的依賴文件
├── cocoapods-binary #插件的源碼
├── demo #這個(gè)就是一個(gè)隨便用xcode建立的iOS的使用podfile的demo工程
其中Gemfile的內(nèi)容是:
source 'https://rubygems.org'
gem 'cocoapods-binary' , :path => "./cocoapods-binary"
group :debug do
gem 'ruby-debug-ide'
gem 'debase'
end
這個(gè)Gemfile文件的語(yǔ)法和我們熟知的Podfile文件的語(yǔ)法比較相似
安裝依賴
因?yàn)槲覀兪钦{(diào)試某個(gè)gem庫(kù),為了不影響我們已經(jīng)安裝的,安裝依賴的時(shí)候,最好是安裝到當(dāng)前文件夾下的執(zhí)行目錄中去
ruby的依賴包管理工具 bundle,如果配置了config文件的化,是可以在配置文件中聲明安裝的目錄的
在當(dāng)前目錄 建立./bundle/config文件
建好后,如下:
config文件內(nèi)容是:
BUNDLE_PATH: "vendor/bundle"
執(zhí)行 bundle install,將會(huì)把Gemfile文件中所申明的依賴都安裝到vendor/bundle目錄下
RubyMine設(shè)置
在Rubymine中打開(kāi)CocoaPodsPlugins文件夾,設(shè)置Edit Configurations
選擇 Gem Command
Gem name: 輸入cocoapods-binary(插件的gem名字,這里輸入時(shí)候,rubymine會(huì)彈出可選項(xiàng),這里的可選項(xiàng)是rubymine可搜到的gem包)
Excutable name: 輸入 pod(這個(gè)可以固定泳叠,因?yàn)檫@是宿主程序,這個(gè)也是輸入,就出現(xiàn)可選項(xiàng),如果沒(méi)出現(xiàn)pod,那么應(yīng)該是你的Ruby SDK沒(méi)有選好)
Arguments: pod命令執(zhí)行需要的參數(shù),以cocoapods-binary為例 執(zhí)行命令為pod install,所以這里填 install
Working directory: 選擇測(cè)試pod的工程目錄茶宵,也就是demo文件存在的目錄(這個(gè)目錄要是deom工程的podfile文件所在的目錄,因?yàn)閜od install會(huì)使用到,找不到,pod install就會(huì)出錯(cuò)的)危纫。
Ruby SDK 選擇Use Other SDK and gem,一般情況下選擇默認(rèn)即可,如果有rvm管理多版本的ruby种蝶,則需要選擇cocoapods所存在的ruby版本契耿。
這里,要注意,rvm管理ruby,通常這里有好幾個(gè)選項(xiàng),像我電腦,有兩個(gè)2.6版本,我也不知道為什么.如果這里選錯(cuò)了,上面的Excutable name,即使強(qiáng)行寫(xiě)了pod,后面調(diào)試也會(huì)提示找不到Excutable.
選擇Bundler Tab,勾選Run the script in context of the bundle(bundle exec)
依次點(diǎn)擊 Apply,OK完成設(shè)置
調(diào)試
點(diǎn)擊小爬蟲(chóng),就可以打斷點(diǎn)調(diào)試了