管理 iOS 項目的 Ruby 依賴
來自專欄 Prelude
在多人協作的環境里管理依賴一致性是一件很蛋疼的事情。
就拿使用 CocoaPods 的團隊來說,在某個時間點,你想把它升級到某個版本,
最挫的辦法是通知所有人(包括 CI)都升級到特定的版本,保持版本的一致,但這不能解決 dev,master 分支的問題,要升就得全升級,不然不同版本間會互相影響;
比較好一點的方式是在工程 setup 的腳本裡面檢測依賴的版本,並幫使用者自動升級到該版本,比如像這樣,就不用關心 master,dev 分支依賴一致性的問題了,用哪個分支的代碼依賴的就是哪個版本,缺點是需要編寫腳本,麻煩;
最好的方式就是使用 bundler 來管理依賴了,只需要創建一個 Gemfile,每次 setup 的時候執行bundle install
,所有開發者的 ruby 依賴就都是一致了的。
如何使用
如果你的工程從未集成過 bundler,那麼需要使用 bundle init
創建出 Gemfile,
> bundle initWriting new Gemfile to /xxx/Gemfile
然後修改 Gemfile,具體可以加什麼內容可以看這裡
source "https://rubygems.org"gem CocoaPods, 1.5
這樣就 ok 了,每次 setup 工程的時候,執行 bundle install
就可以保證大家的依賴都是一致的。升級版本只需要修改一下版本號,一切就是這樣簡單
寫到這裡,我還想分享一下我 setup 工程的方式,那就是使用 Makefile
。這是我在 KickStarter 開源的工程里學到的。一層簡單的封裝不光把初始化一個工程的一連串操作都包在了一起,還把這個過程地入口變得足夠簡單,一句 make
足矣。
推薦閱讀:
※從 0 到 1 搭建移動 App 功能自動化測試平台 (4):自動化測試代碼?工程化?
※ruby語言前景如何?
※追求客戶端和伺服器編程語言的一致有多大的意義?
※為什麼在國內 Python 比 Ruby 更流行?
※想快速了解 Rails 3,有什麼值得推薦的好書?