使用Cocoapods創(chuàng)建私有podspec

整體說明一下創(chuàng)建私有podspec的步驟:

1,創(chuàng)建一個遠程的git庫用于存儲代碼,將新建的git庫clone到本地,添加需要導(dǎo)入pod庫中的代碼。

2,創(chuàng)建并設(shè)置一個私有的Spec Repo。

3,在本地git庫文件夾中創(chuàng)建pod所對應(yīng)的podspec文件。

4,本地測試配置好的podspec文件是否可用。

5,向私有的spec repo中提交podspec。

6,在項目中的Podfile中增加剛剛制作好的Pod并使用。

7,后續(xù)更新維護podspec。

一,創(chuàng)建私有的Spec Repo

什么是 Spec Repo ? 它是所有的 Pods 的一個索引,就是一個容器,所有公開的 Pods 都在這個里面,它實際是一個 Git 倉庫 remote 端在 GitHUb 上,但是當(dāng)你使用了 CocoaPods 后它會被 clone 到本地的 ~/.cocoapods/repos 目錄下。第一步先創(chuàng)建遠端的 GitHub,并clone到本地:

    git clone git@github.com:Cuidawang/CKYTool.git
image

創(chuàng)建之后在 Terminal 中執(zhí)行如下命令:

 # pod repo add [Private Repo Name] [GitHub HTTPS clone URL]
 $ pod repo add CKYTool git@github.com:Cuidawang/CKYTool.git

此時如果成功的話,進入 ~/.cocoapods/repos 目錄下就可以看見 CKYTool 這個目錄了。到這第一步就完成了。

PS: 如果有其他合作人員共同使用這個私有Spec Repo的話在他有對應(yīng)Git倉庫的權(quán)限的前提下執(zhí)行相同的命令添加這個Spec Repo即可。

二,添加需要的代碼文件到CKYTool目錄下

比如我選取了一個文件管理和一個分類的文件進行測試,將這兩個文件添加到 CKYTool 中,

image

三,創(chuàng)建項目的podspec文件

使用終端命令cd到CKYTool文件下執(zhí)行命令:

    pod spec create CKYTool

這時候本地會生成一個 CKYTool.podspec 文件,使用 sublime 打開 CKYTool.podspec 文件,刪除不必要的注釋,最后的文件形式如下:

Pod::Spec.new do |s|

  s.name         = "CKYTool"                            #名稱
  s.version      = "0.0.1"                              #版本號
  s.summary      = "CKYTool."    #簡短介紹
  
  s.description  = <<-DESC
    對這個pod文件進行描述,這的描述要比summary的長。
                   DESC

  s.homepage     = "https://github.com/Cuidawang/CKYTool"   #主頁
  s.license      = "MIT"                                    #開源協(xié)議

  s.author       = { "Cuikeyi" => "https://github.com/Cuidawang/CKYTool" }
  s.platform     = :ios, "8.0"
  s.source       = { :git => "https://github.com/Cuidawang/CKYTool.git", :tag => "#{s.version}" }
  s.header_dir   = "CKYTools"                           #Pod安裝之后的文件名
  s.requires_arc = true

  s.subspec 'XHCCategories' do |ss|
    ss.header_dir   = 'XHCCategories'

    ss.subspec 'NSDate' do |sss|
      sss.source_files = "XHCTools/XHCCategories/NSDate/**/*.{h,m}",
      sss.header_dir = 'NSDate'
    end

    ss.subspec 'NSString' do |sss|
      sss.source_files = "XHCTools/XHCCategories/NSString/**/*.{h,m}",
      sss.header_dir = 'NSString'
    end

    ss.subspec 'NSDate' do |sss|
      sss.source_files = "XHCTools/XHCCategories/NSDate/**/*.{h,m}",
      sss.header_dir = 'NSDate'
    end

    ss.subspec 'UIButton' do |sss|
      sss.source_files = "XHCTools/XHCCategories/UIButton/**/*.{h,m}",
      sss.header_dir = 'UIButton'
    end

    ss.subspec 'UIColor' do |sss|
      sss.source_files = "XHCTools/XHCCategories/UIColor/**/*.{h,m}",
      sss.header_dir = 'UIColor'
    end

    ss.subspec 'UIImage' do |sss|
      sss.source_files = "XHCTools/XHCCategories/UIImage/**/*.{h,m}",
      sss.header_dir = 'UIImage'
    end

    ss.subspec 'UIView' do |sss|
      sss.source_files = "XHCTools/XHCCategories/UIView/**/*.{h,m}",
      sss.header_dir = 'UIView'
    end

  end

  s.subspec 'XHCFileManager' do |ss| 
    ss.source_files = "XHCTools/XHCFileManager/**/*.{h,m}",
    ss.header_dir   = 'XHCFileManager'
  end

end

文件中的字段說明參考:http://guides.cocoapods.org/syntax/podspec.html

編輯完 podspec 文件后,需要驗證一下這個文件是否可用,如果有任何的 Warning 或者 Error 都是不可以的,它就不能被添加到 Spec Repo 中,不過 xcode 的 Warning 是可以存在的,驗證需要執(zhí)行一個命令

pod lib lint

當(dāng)如下圖時,表示驗證通過了

image

Tips:

1,去除Xcode的警告,可以通過命令屏蔽警告:

    pod lib lint --allow-warnings

2,如果出現(xiàn)Error但是提示信息不足,可以添加 --verbose 以獲取更多的錯誤信息

    pod lib lint --verbose

四,提交文件到github,打tag,上傳podspec

1,提交文件到github

git add .
git commit -m "first commit"
git pull origin master
git push origin master

2,提交tag

git tag -m "release 0.0.1"  0.0.1
git push --tags

3,上傳podspec

pod repo push CKYTool CKYTool.podspec  #前面是本地Repo名字 后面是podspec名字

至此,我們的這個組件庫就已經(jīng)制作添加完成了,使用 pod search CKYTool 就可以找到這個庫了。

Tips:

1,提交文件的順序不能改變,一定要先提交tag標(biāo)簽,之后再上傳podspec。否則會上傳podspec失敗。

2,對于 .podspec 文件,一定要放在文件的最外層,不然就報錯。

五,使用制作好的Pod

在完成這一系列步驟后,我們就可以在正式的項目中使用這個私有的Pod了只需要在Podfile文件中添加:

platform :ios, "8.0"

# source 是pod去哪下載地址,寫多個source會從上到下一次去加載
source 'https://github.com/Cuidawang/CKYTool.git'
source 'https://github.com/CocoaPods/Specs.git'

target "XXXX" do
    
    pod 'CKYTool'
    
end

然后執(zhí)行 pod update ,更新依賴庫,就可以看見自己的庫文件出現(xiàn)在 Pods 子目錄中,而不是 Development Pods 中。

Tips:

1,引用使用文件的時候,引用方式為 #import <NSString/NSString+URLEncoding.h>, 就可以找到文件的路徑了。

2,也可以在Target -> Build Settings -> User Header Search Paths 中點擊加號,添加 $(PODS_ROOT) ,后邊設(shè)置成recursive,此時可以通過 #import "NSString+URLEncoding.h" 引入頭文件。

六,關(guān)于Pod的升級

當(dāng)前的版本是0.0.1,如果我們增加了一些代碼文件,更新了一些代碼,此時要發(fā)布0.0.2版本,需要怎么做呢?

1,修改代碼文件,更新代碼完畢之后,并更新 CKYTool.podspec 文件,修改s.version = '0.0.2',都修改完成之后,通過 pod lib lint 驗證 podspec 文件是否有效,如果有效,進行下一步。

2,驗證通過之后,提交自己的代碼到git,然后打tag 0.0.2,(一定要打tag和s.verisonxiang相對應(yīng)),然后提交tag。

3,提交完tag之后,接著上傳podspec, pod repo push CKYTool CKYTool.podspec。此時 pod search CKYTool 就會發(fā)現(xiàn)0.0.2版本了。

七,刪除和添加 Spec Repo

1, 刪除一個私有的 Spec Repo:

pod repo remove CKYTool

2,添加

pod repo add CKYTool git@github.com:Cuidawang/CKYTool.git

如果我們要刪除私有Spec Repo下的某一個podspec怎么操作呢,此時無需借助Cocoapods,只需要cd到~/.cocoapods/repos/WTSpecs目錄下,刪掉庫目錄

八,參考資料

http://blog.wtlucky.com/blog/2015/02/26/create-private-podspec/

最后編輯于
?著作權(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)容