如何制作自己的Pod庫(kù)

  • GitHub新建自己的git repository


    NewRepository
    NewRepository
  • 將項(xiàng)目clone到本地
    git clone git@github.com:ZHANGMRXIN/ZXCategory.git

    CloneReposiorty
    CloneReposiorty

  • 初始化好項(xiàng)目,將Pod庫(kù)文件建立好目錄


    PodFileDirectory
    PodFileDirectory
  • 給倉(cāng)庫(kù)創(chuàng)建個(gè)podspec文件
    pod spec create ZXCategory git@github.com:ZHANGMRXIN/ZXCategory.git

    CreatePodSpec
    CreatePodSpec

  • 編寫ZXCategory.podspec文件

項(xiàng)目中不做子目錄分層顯示

Pod::Spec.new do |s|
  s.name             = "ZXCategory"
  s.version          = "0.0.6"
  s.summary          = "Custom Category used on iOS."
  s.description      = <<-DESC
                       Custom Category used on iOS, which implement by Objective-C.
                       DESC
  s.homepage         = "https://github.com/ZHANGMRXIN/ZXCategory"
  s.license          = 'MIT'
  s.author           = { "xinzhang" => "zx270611346@gmail.com" }
  s.platform         = :ios, '7.0'
  s.source           = { :git => "https://github.com/ZHANGMRXIN/ZXCategory.git", :tag => s.version }
  s.source_files     = 'ZXCategory/**/*'
  s.requires_arc     = true
end

項(xiàng)目中做子目錄分層顯示

Pod::Spec.new do |s|
  s.name             = "ZXCategory"
  s.version          = "0.0.6"
  s.summary          = "Custom Category used on iOS."
  s.description      = <<-DESC
                       Custom Category used on iOS, which implement by Objective-C.
                       DESC
  s.homepage         = "https://github.com/ZHANGMRXIN/ZXCategory"
  s.license          = 'MIT'
  s.author           = { "xinzhang" => "zx270611346@gmail.com" }
  s.platform         = :ios, '7.0'
  s.source           = { :git => "https://github.com/ZHANGMRXIN/ZXCategory.git", :tag => s.version }
  s.requires_arc     = true

# UIView 和 EasyLog 在工程中以子目錄顯示
  s.subspec 'UIView' do |ss|
    ss.source_files = 'ZXCategory/UIView/*.{h,m}'
  end

  s.subspec 'EasyLog' do |ss|
    ss.source_files = 'ZXCategory/EasyLog/*.{h,m}'
  end

end

*** s.source_files = ' '*** 的多種寫法

ss.source_files = 'ZXCategory/UIView/*.{h,m}'

表示ZXCategory/UIView/目錄下的所有 .h.m 文件

s.source_files = 'ZXCategory/**/ .'
/后面的 . 應(yīng)是 星號(hào),MarkDowm語(yǔ)法沖突在此不能正常顯示

表示ZXCategory/ 目錄下所有文件,包括子目錄下所有文件。 **/.表示遞歸

當(dāng)有多個(gè)文件時(shí),應(yīng)用,隔開(kāi)

 s.source_files = 'MMDrawerController/MMDrawerController.{h,m}', 'MMDrawerController/UIViewController+MMDrawerController*'

  • 把當(dāng)前版本上傳到GitHub,并打上tag(版本號(hào)) 即tag => s.version 并確保tag push到GitHub
    git push origin --tags

    PushTags
    PushTags

  • 檢查ZXCategory.podspec文件是否編寫爭(zhēng)取
    pod lib lint

    CheckPodSpec
    CheckPodSpec

  • 將ZXCategory.podspec文件上傳給CocoaPods
    pod Trunk 注冊(cè)
    pod trunk register zx270611346@gmail.com 'ZXCategory'

    檢查成功與否
    登錄郵箱,點(diǎn)擊確認(rèn)
    終端輸入 pod trunk me

    PodTrunk
    PodTrunk

  • 上傳ZXCategory.podspec 到 CocoaPods/repo
    pod trunk push ZXCategory.podspec

    PodspecPushSuccess
    PodspecPushSuccess

shit! 報(bào)錯(cuò),貌似上傳的版本不能小于之前的版本,CocoaPods 為了使用的人著想,要求向下作兼容。

DuplicateError
DuplicateError

  • 檢測(cè)是否上傳成功
    pod search ZXCategory

    PushSearchCheck
    PushSearchCheck

  • Done
    執(zhí)行 pod install or pod install --no-repo-update命令

    UsePod
    UsePod

  • 另附獲取提交到GitHub上的圖片資源的兩種鏈接

https://raw.githubusercontent.com/ZHANGMRXIN/ZXCategory/master/Resources/NewProject.png
https://github.com/ZHANGMRXIN/ZXCategory/raw/master/Resources/NewProject.png

參考:
CocoaPods
DWCategory
MMDrawerController

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容