Cocoapods使用及建立發佈本身的Pod

原創 2017-05-09ios

關鍵點:git

  • Cocoapods安裝及基本用法
  • Cocoapods註冊Trunk
  • 部署一個開源的pod
  • 建立本身的私有的pod

   因爲要適應某些業務的快速變化,現目前須要進行組件化開發,其實這是一個很好的改變,關於如何進行組件化開發、如何將基礎組件業務組件進行剝離開來、如何使用Mediator模式進行業務間相互通訊相互調用等,在後續進行深刻分析及實踐以後再來討論,這裏就先從最原始 工具 提及。(順便說一下:既然須要有一個比較大的改變,也有這個機會來實踐,那就索性從Objective-C過分到Swift來進行開發吧!)。
   Cocoapods相信你使用第三方框架是常用到的,這是一個很好用的iOS管理依賴工具,它既可讓你很方便的使用第三方庫,也容許你將本身項目中的組件交由它進行管理。下面就來講一說如何使用cocoapods管理工具:github

Cocoapods工具的安裝

   Cocoapods安裝方式有兩種能夠直接經過官網下載.app進行安裝,不過我比較喜歡命令行安裝(須要依賴ruby環境,Mac都搭建好了ruby環境,這個咱們不須要去關心):shell

$ sudo gem install cocoapods

可能你在上述安裝過程當中會失敗,那多是由於網絡的緣由,如今咱們來替換一下Ruby鏡像:json

// 刪除原有的鏡像源  
$ gem sources --remove https://rubygems.org/  

// 添加國內最新的鏡像源(由於以前淘寶的那個好像不更新了)
$ gem source -a https://gems.ruby-china.org/  

// 接着執行
$ gem sources -l

// 若是出現
> *** CURRENT SOURCES ***
> 
> https://gems.ruby-china.org/

// 說明成功了,如今再來執行安裝便可
$ sudo gem install cocoapods

Cocoapods工具的基本的用法

   Cocoapods提供了不少功能,可是咱們日常使用的無外乎根據項目須要建立本身的Podfile、安裝Pod、更新Podswift

// 建立一個本身的Podfile,首先你必須進入到你項目所在的文件夾下面,而後執行
$ pod init

// 經過vi查看並編輯你的Podfile(根據你的須要添加第三方庫)
$ vi Podfile

// 保存Podfile以後,執行安裝
$ pod install

// 有時候你可能會須要使用到
$ pod update

tips:何時使用pod install 何時使用pod update呢,我相信大多數人比較疑惑ruby

  • pod install: 當你在工程中須要安裝新的pods時。即便你已經有了一個Podfile而且以前已經執行了pod install;或者說你須要從你的工程中添加/移除一個pods
  • pod update: 僅僅當你想要更新一個新版本的pods

至此你已經掌握了Cocoapods最簡單的使用方法了,更多關於Cocoapods的使用能夠至官網Guides 或者經過pod --help 來查看使用方法。 接下來就來說講如何建立發佈本身的Spec,首先你須要註冊一個帳號:服務器

Cocoapods註冊Trunk

   在你想建立一個本身私有庫或者發佈一個共有的pods以前,你須要有一個Cocoapods Trunk:網絡

$ pod trunk register [Your-Email] '[Your-Name]' --description='[Your-Desc]'

> [Your-Email]: 任意郵件,可是我比較推薦你使用github上的Email
> [Your-Name]: 推薦使用github上使用的Name
> [Your-Desc]: 一個簡單的描述,每每這個時候咱們使用的是本身電腦的一個描述

// 好比我本身註冊了一個
$ pod trunk register wangcccong@foxmail.com 'ApterKing' --description='wangcong Mac Pro 13'

// 註冊完成後,你能夠經過[pod trunk me]查看信息
$ pod trunk me

部署一個開源的pod

   若是你是一個非git版本控制使用的開發者,那麼在你部署一個開源的library以前,我建議你看一看個人另外一篇Git基礎,這裏只須要用到比較簡單的Git使用。app

  • 在你的Github上建立一個repository

  • 將你的庫直接clone下來
$ git clone git@github.com:ApterKing/AKExtension.git
// 完成以後進入到所在目錄
$ cd ../AKExtension
  • 建立.podspec
$ pod spec create [NAME]
> [NAME]: podspec 名稱,通常與你在git上建立的repository相同
// 如:
$ pod spec create AKExtension
  • 下面來將你的代碼或者資源添加到項目中
// 我通常會先建立一個文件夾,用於放置個人{.h/.m/.swift  Assets}等
$ mkdir Sources
// 將你所需的文件拷貝至文件夾,以下就是這個pod的

  • 接下來你須要將你的資源或者文件添加到git並提交
// 添加全部文件
$ git add .   
// 提交
$ git commit -m "Initial AKExtension"
// push到你的遠程倉庫
$ git push
// 接下來就是須要使用到的一個Tag,這個在你的.podspec中須要配置
$ git tag -m "Initial Tag" 0.0.1
// 將tag添加至你的遠程倉庫
$ git push --tags

  • 修改.podspec

   下面就是個人.podspec,固然你也能夠根據以前生成的提示本身修改或者在github上搜索一個別人寫好的.podspec就行修改

  • 經過手動方式檢驗一下你的.podspec是否正確
// 進入到.podspec所在目錄
$ pod spec lint
// 若是出現錯誤,須要修改到提示無誤後方可執行下一步
  • 提交公有library
$ pod trunk push [NAME].podspec
  • 如今就來看看是否成功
// 先更新一下repo
$ pod repo update
// 查找一下你提交的pod
$ pod search 'AKExtension'

tips: 若是你在pod search沒法找到你的pod,能夠參照如下步驟:

  • 執行 pod repo update 後從新pod search

或者:

  • pod setup 而後刪除 rm ~/Library/Caches/CocoaPods/search_index.json 再從新pod search

部署一個私有的pod

   在上面一節你已經瞭解瞭如何部署一個共有的pod了,可是每每大多數時候你是不能部署一個共有的pod。好比你公司本身開發的基礎組件代碼、業務組件代碼等,這個時候你就須要一個private pod了,下面就來簡單說一說如何建立一個private pod。咱們仍是依託於git,畢竟這個代碼之後須要與別人共同開發與維護,固然你也能夠在本身的服務器上搭建,只要可以保證你所在的Team可以有訪問權限就能夠了。

  • 重複上一章節的建立github repository,此時你只須要注意選擇private,由於在github上private須要付費,這裏我就選用開源中國的git

  • 建立一個私有Repo
$ pod repo add REPO_NAME SOURCE_URL
> REPO_NAME: repo 名稱
> SOURCE_URL: 指向的地址
//如
$ pod repo add AKSwifty git@git.oschina.net:wangcccong/AKSwifty.git
  • 檢查是否操做成功
$ cd ~/.cocoapods/repos/AKSwifty
$ pod repo lint .

  • 建立並修改.podspec

   相信你在上一章節已經瞭解瞭如何經過命令來建立.podspec了,這裏咱們再次建立一個,可是咱們須要讓它更有意義,請添加上你私有repo的名稱,咱們首先在git.oschina.net 上建立一個私有倉庫,好比咱們須要一個儀表盤(DashboardView)

建立好以後,按照上一章節的步驟,你須要將你的倉庫clone到本地,添加須要的文件及資源等,設置tag,建立.podspec,修改.podspec

  • 添加你的Podspec到私有repo
$ pod repo push AKSwifty AKSwifty+AKDashboardView.podspec
  • 私有倉庫的使用你應該懂的,須要在Podfile添加source源
source 'https://git.oschina.net/wangcccong/AKSwifty.git'  
platform :ios, "9.0"  
target "XXX" do  
    pod 'AKSwifty+AKDashboardView','~>0.0.1'  
end

關於cocoapod的介紹就到這裏吧...

相關文章
相關標籤/搜索