使用Gemfile

RubyGems + Bundler

對于很多人來說,CocoaPods是第一個介紹編程項目中依賴管理的工具。很多CocoaPods的想法來源于相似的項目(比如說RubyGems, Bundler, npm and Gradle)。
理解Ruby依賴管理很有用因為它允許你指定CocoaPods的版本或者其他gems,保證你團隊中所有的開發(fā)者們有確定相同的版本。本指南是為那些希望確保團隊依賴關(guān)系的一致性或使用CocoaPods未發(fā)布版本的人準備的。

RubyGems

RubyGems是主持ruby庫的服務(wù)。它集中管理你在哪里尋找?guī)旌桶惭bruby庫和應(yīng)用。你將看到gem install xxx。這些被裝進了版本的一個中心數(shù)據(jù)庫中。如果你想象一下CocoaPods安裝所有的庫和frameworks到系統(tǒng)文件夾并且他們在運行時被互相鏈接,然后你就對RubyGems如何保持所有g(shù)ems有個大致的認識了。
這樣做的缺點是沒有辦法保證一個需要特定版本的庫的工程可以使用它,它總是使用最新版本。因此作為一個開發(fā)者,你要小心安裝一個新版的庫因為它會被用于每一個庫和應(yīng)用。這個問題bundler解決了。

Bundler

Bundler為你的應(yīng)用程序創(chuàng)建了一致的應(yīng)用程序環(huán)境,通過允許你特定的庫的版本。我們把這個想法大規(guī)模的用在CocoaPods。你定義一個Gemfile來說明你想要包含那些庫,可以指定特定的一個版本或者范圍。你運行bundle install,它將生成一個描述你所有庫的確定版本的Gemfile.lock,然后任何其他人用這個項目運行bundle install獲得的是確定的相同的版本。

什么是Gemfile?

如果你有閱讀此篇Podfile指南,會感覺非常相似。一個Gemfile是一個定義了你ruby依賴的ruby文件。這里是一個來自一個Cocoa項目現(xiàn)成的例子

source 'https://rubygems.org'

gem 'cocoapods'
gem 'cocoapods-keys'

gem 'fui', '~> 0.3.0'
gem 'xcpretty'
gem 'second_curtain', '~> 0.2.3'
gem 'fastlane'

所有的Gemfiles都必須包含一個它們的Gems的源,除非你使用或多或少相同的語法。這樣生成了一個鎖定了CocoaPods在版本0.36.3的Gemfile.lock。

通過Gemfile使用CocoaPods

通過一個Gemfile的配置,你可以在你Gemfile的約束下運行bundle install來安裝,或者bundle update來更新。但是從現(xiàn)在開始,你需要在任一通過bundler的終端命令前記得運行bundle exec??紤]到CocoaPods被上述中所包含,這意味著你每次都要寫pod XX YY,你每次都需要做bundle exec pod XX YY
在不使用bundle exec的情況下,它將繞過Gemfile的特定版本,并在RubyGems中使用該庫的最新版本。這可能會是完全相同的版本,但通常不是。如果你包含CocoaPods插件,那么它們也可能不會被運行。
這意味著你能確認項目的基礎(chǔ)工具能像你私有庫一樣被版本控制。

使用master CocoaPods

通常在各正式版中你或許對使用Gemfile在未發(fā)布的CocoaPods版本上更感興趣。當我們確定他不會影響項目后,由于項目的大小我們嘗試緩慢發(fā)布。像CocoaPods你能容易的使用Master,或者fork你的ruby項目。這里是一個使用CocoaPods master的Gemfile的例子。

source 'https://rubygems.org'

gem 'cocoapods', :git => 'https://github.com/CocoaPods/CocoaPods.git'
gem 'cocoapods-core', :git => 'https://github.com/CocoaPods/Core.git'
gem 'xcodeproj', :git => 'https://github.com/CocoaPods/Xcodeproj.git'

gem 'cocoapods-keys', :git => 'https://github.com/orta/cocoapods-keys.git'

gem 'xcpretty'
gem 'shenzhen'
gem 'sbconstants'

運行bundle install將從Master獲取到各個版本。因此CocoaPods是多個的gems,你可能不得不像上述一樣包含其他依賴

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容