使用 CocoaPods 進行團隊協作
讓程序流暢穩健的運行是開發者們的理想,這個理想時而遙遠,時而近在咫尺。而往往那個觸手可及的時刻,卻正是夢碎的邊緣。
在團隊協作中,修改別人的代碼是一件像掃雷游戲一樣的事情,你永遠不知道你做的到底是 “優化” 還是 “觸雷”。
使用 Cocoapods 將不同的功能進行切割,獨立成模塊再整合進 App,成為了一個行之有效的方法,本文就來一起研究一下如何使用 CocoaPods 來進行組件模塊化。
創建自己的 Pod
以 RichTextView 為例,完成類庫的功能后的第一件事就是創建 RichTextView 的 podspec 描述文件
進入項目的根目錄
pod spec create RichTextView
這個描述文件其實是一段 Ruby 代碼,描述了和這個庫相關的內容,最重要的是描述了庫的授權協議,如何獲取庫的代碼,版本號,以及編譯方式
Pod::Spec.new do |s| s.name = "RichTextView" s.version = "0.3.1" s.summary = "RichTextView based On TextKit" s.description = <<-DESC RichTextView based On TextKit, With Mention, Hashtag Feature DESC s.homepage = "https://github.com/kevinzhow/RichTextView" s.screenshots = "https://raw.githubusercontent.com/onevcat/Kingfisher/master/images/logo.png" s.license = { :type => "MIT", :file => "LICENSE" } s.authors = { "kevinzhow" => "kevinchou.c@gmail.com" } s.social_media_url = "http://推ter.com/kevinzhow" s.ios.deployment_target = "8.0" # s.osx.deployment_target = "10.7" s.source = { :git => "https://github.com/kevinzhow/RichTextView.git", :tag => s.version } s.source_files = "RichTextView/Source/*.swift" s.requires_arc = true end
值得需要特別注意的是 s.version 正是 s.source 里想要從 git 取出來的 tag 版本。
s.version = "0.3.1"
s.source = { :git => "https://github.com/kevinzhow/RichTextView.git", :tag => s.version }
s.source_files 相對應的就是你的庫是在 git 的哪個文件夾里,的哪些文件
s.source_files = "RichTextView/Source/*.swift"
如果是 Swift 項目,需要注意給你的類和需要暴露的方法加上 public 字段
當以上都編輯妥當之后,需要先驗證一下這個文件有沒有錯誤
pod spec lint RichTextView.podspec
驗證無誤后,如果愿意開源的話,就可以推入 Pod 的倉庫。
公開發布 Pod
首先需要注冊一下你自己的身份,例如你想注冊的郵箱是 orta@cocoapods.org,名字是 Orta Therox,那么可以用下面的命令
pod trunk register orta@cocoapods.org 'Orta Therox'
注冊完成后,就可以把上面驗證通過的 Pod 發布上去
pod trunk push RichTextView.podspec
本地測試 Pod
團隊協作的項目通常并不需要暴露到外部,那么我們只需要跳過 pod trunk push 的步驟,并在 Podfile 聲明一下 path 地址即可
pod 'RichTextView', :path => '../CatchLib-iOS/RichTextView/'
Enjoy!
來自: http://tips.producter.io/shi-yong-cocoapods-jin-xing-tuan-dui-xie-zuo/