熱更新,熱修復,RN,組件化開發簡直是各個開發群的熱門話題。作為一個開發小菜鳥,真是忙不過來,搞這個,還是搞那個?一臉懵逼。上個月蘋果爸爸的一封警告郵件,讓iOS開發界炸了鍋,禁止動態下發代碼,真是讓人猝不及防。項目做久了,一直迭代,代碼越來越亂,迫切需要對代碼重構,由此想到了最近大熱的組件化開發,要做組件化開發,首要管理好組件,所以Cocoapods是iOS最佳管理工具,所以最近更深入的了解學了Cocoapods工具。
前言
今天這篇文章記錄自己使用CocoaPods工具創建公司自己的私有庫,其實網上有很多教程,這里只是記錄自己的使用過程,下面將盡量詳細記錄步驟,希望對大家有用,覺得有用的小伙伴請高抬貴手點個贊哦!
創建公司自己的私有庫
步驟一 創建一個組件git倉庫
我們公司有自己的git服務器,當然也可以使用GitHub這些公共的服務器,這里就不在多說。我在我們公司的git服務器創建了一個名叫XLZGComponent的倉庫。創建好了之后,復制git倉庫地址,第一步就算完成了。
步驟二 添加私有庫到CocoaPods的repo
這一步就是將我們剛剛創建的組件庫地址和CocoaPods關聯起來,我們在pod install的時候,就會從我們私有倉庫下載。下面是添加的命令:
pod repo add REPO_NAME SOURCE_URL
REPO_NAME:就是自定義的私有庫的名字
SOURCE_URL:就是我們在git上創建的私有庫的git地址
我這里就是:
pod repo add XLZGComponent http://*******/XLZGComponent.git
添加完成后,可以查看CocoaPods的repo多出來一個XLZGComponent,查看repo的方法如下:
ls ~/.cocoapods/repos
查看的結果就是:
XLZGComponent master
XLZGComponent這個就是我們新添加的我們自己有的,master就是原有的公共repo。
步驟三 為將要組件化的項目制作*.podspec文件
這里作為測試,我簡單的創建了一個testA的項目,項目的目錄如下:
項目名:testA
項目下面有一個文件夾:testA,里面隨便創建了一個類,這個類
就是我們即將作為組件加入私有庫的兩個文件。
接下來在git服務器上為該項目創建一個git倉庫,我的是倉庫地址是:
http://*******/testA.git
ps:testA和組件名字一致
接著就是要制作組件的podspec文件了,在項目的更目錄下創建一個testA.podspec文件,接著編輯podspec文件,文件內容如下:
Pod::Spec.new do |spec|
#項目名稱
spec.name = 'testA'
#版本號
spec.version = '0.1.0'
#開源協議,記得創建一個LICENSE文件,內容可以百度
spec.license = {:type =>"MIT",:file => "LICENSE"}
#對開源項目的描述
spec.summary = 'testA is a good component'
#開源項目的首頁
spec.homepage = 'https://github.com/chunguiLiu/BGNetwork'
#作者信息
spec.author = {'simple_Dev' => '12479697@qq.com'}
#項目的源和版本號
spec.source = { :git => 'https://******/testA.git', :tag => '0.1.0' }
#源文件,這個就是供第三方使用的源文件
spec.source_files = "testA/testA/*"
#適用于ios7及以上版本
spec.platform = :ios, '8.0'
#使用的是ARC
spec.requires_arc = true
#依賴AFNetworking,如果有什么第三方依賴這樣添加
#spec.dependency 'AFNetworking'
end
編輯好了就可以保存。關于podspec文件可以百度,還有一些配置信息我這里不需要就沒有列出來。這里需要注意的是,也要在該目錄下創建一個LICENSE文件,文件的內容請自行百度,這里不添加這個文件,后面push的時候會報警告,而導致push失敗。
步驟四 發版,驗證podspec文件,push podspec文件
創建好了podspec文件,假設我們的組件也開發好了,編譯ok,接著就是把項目提交push到git服務器上去,然后發個版,也就是打個tag。我的步驟如下:
//添加所有新加的文件
$ git add .
//提交新添加的文件到本地git
$ git commit -m 'add file'
//將本地更新push到遠程git服務器
$ git push origin master
//給本地倉庫打個tag
$ git tag -m 'add tag' '0.1.0'
//將tag推送到遠程服務器
$ git push --tags
接著就是驗證我們剛才的podspec文件,驗證指令是:
$ pod lib lint
如果沒有錯誤和警告我們就可以推送到服務器了,推送使用的命令如下:
$ pod repo push REPO_NAME SPEC_NAME.podspec
它也會先驗證,然后再推送。我這里推送testA命令是:
$ pod repo push XLZGComponent testA.podspec
如果沒有錯誤,但是有警告,我們就將警告解決,也可以加--allow-warnings來提交
$ pod repo push XLZGComponent testA.podspec --allow-warnings
4.最后就可以在pod search 搜索testA了,到這里我們私有庫也就成功。
$ pod search testA
pod 'testA', '~> 0.1.0'
- Homepage: http://*******/testA
- Source: http:**********/testA.git
- Versions: 0.1.1, 0.1.0 [XLZGComponent repo]
使用私有庫
使用方式就是在Podfile中,添加我們自己私有源地址,然后pod我們的組件名字就可以了,例如:
#官方Cocoapods的源
source 'https://github.com/CocoaPods/Specs.git'
#本地私有源
source 'https://github.com/liuchungui/first.git'
platform :ios, '8.0'
target ‘test‘ do
pod 'AFNetworking'
pod 'testA'
end
最后pod install就可以啦。
寫在最后
最后提醒大家,記得添加.gitignore文件,過濾提交的git的內容,不然把一些不必要的文件都提交到服務器上。認真想起來其實建立私有庫很簡單,就是那么幾步。創建一些文件,配置一下就可以了。后面一篇,我會介紹一下使用一些腳本,來簡化過程,減少一些編輯,設置過程,有些必要過程還是必須的。如果覺得此文中有哪些不明白的地方,可以留言,或者發私信,共同探討。如果覺得文中有不對的地方也請大家慷慨指出,以便我改正。最后謝謝大家的閱讀,喜歡的話就請點個贊吧,謝謝。
分享是一件快樂的事情!