CocoaPods 的使用

制作公有的 pod:
前期準(zhǔn)備
首先要安裝 CocoaPods
如果已安裝 CocoaPods 并且 Xocde 版本是8或者更高版本,升級 CocoaPods。

創(chuàng)建本地的項目,將要開源的代碼寫在項目中,同步到 GitHub 上,同步的時候注意,在 GitHub 上創(chuàng)建項目的時候,項目名字以及介紹自己寫,其余的選擇默認(rèn)的最好。

同步完了要打 tag,可以直接在 GitHub 上打 tag

在本地項目文件夾中通過命令 pod spec create XXXXX 創(chuàng)建 podspec 文件,XXXXX最好就是你的項目名字。

修改 podspec 文件,大致如下:

#
#  Be sure to run `pod spec lint GFCommonView.podspec' to ensure this is a
#  valid spec and to remove all comments including this before submitting the spec.
#
#  To learn more about Podspec attributes see http://docs.cocoapods.org/specification.html
#  To see working Podspecs in the CocoaPods repo see https://github.com/CocoaPods/Specs/
#

Pod::Spec.new do |s|

  # ―――  Spec Metadata  ―――――――――――――――――――――――――――――――――――――――――――――――――――――――――― #
  #
  #  These will help people to find your library, and whilst it
  #  can feel like a chore to fill in it's definitely to your advantage. The
  #  summary should be tweet-length, and the description more in depth.
  #

  s.name         = "CYTestCocoaPods"
  s.version      = "0.0.1"
  s.summary      = "Test CocoaPods"


  s.description  = <<-DESC
                   Test CocoaPods
                   DESC

  s.homepage     = "https://github.com/chenyu1520/CYTestCocoaPods"

  s.license      = "MIT"
  s.author             = { "chenyu" => "chenyu1520@gmail.com" }

   s.platform     = :ios, "8.0"

   s.ios.deployment_target = "8.0"

  s.source       = { :git => "https://github.com/chenyu1520/CYTestCocoaPods.git", :tag => "#{s.version}" }

  s.framework  = "UIKit"
  s.requires_arc = true

    s.subspec 'MyTest' do |ssp|
      ssp.source_files = 'CYTestCocoaPods/MyTest/*.{h,m}'
    end


 end

s.version 要和 GitHub 上的一致。

關(guān)于 Swift 的設(shè)置用如下命令:
echo "3.0" > .swift-version
驗證 podspec 文件,采用忽略警告的方式:
pod spec lint CYTestCocoaPods.podspec --allow-warnings

注冊:
pod trunk register chenyu1520@gmail.com 'ChenYu' --description='CYTestCocoaPods'
需要到郵箱點鏈接驗證一下。

看提示或者查詢 trunk 后的信息:
pod trunk me
大致如下:
Name: ChenYu
Email: chenyu1520@gmail.com
Since: January 6th, 09:43
Pods: None
Sessions:
January 6th, 09:43 - May 14th, 09:46. IP: 221.217.221.173 Description: CYTestCocoaPods

最后執(zhí)行:
pod trunk push --allow-warnings

可以看到如下信息


提交成功.png

雖然在終端中可能搜索不到,但是可以在其他項目中直接使用了。


制作私有 pod,有兩種方式:

  1. 每一個私有的 pod 制作好了以后,都單獨的添加到/Users/xxx/.cocoapods/repos 中,Podfile 文件中需要聲明 .git 地址。
    這樣做會有一些弊端,一般 pod 庫都是放在一個工程中,在執(zhí)行 pod repo add CYPods https://git.coding.net/ecanfly/MyPrivatePod.git的時候,會把工程中的所有文件同步過來,在執(zhí)行pod repo push CYPods MyPrivatePod.podspec會報錯,說在/Users/xxx/.cocoapods/repos/CYPods目錄下有不能提交的代碼,還需要做刪除操作,把 MyPrivatePod.podspec 以外的所有文件都刪除。有幾個文件可以不刪除,如果沒有刪除,其他項目組成員在 pull 代碼的時候,就會把這些文件 pull 下來,增加存儲空間和 pull 的時間。
  2. 單獨創(chuàng)建一個倉庫,用來管理其他的 pod。單獨創(chuàng)建的這個倉庫不需要pod spec create XXXXX 創(chuàng)建 podspec 文件。
    • 需要執(zhí)行幾個命令,把他存入/Users/xxx/.cocoapods/repos中,命令如下:pod repo add CYPodSpec https://git.coding.net/ecanfly/CYPodSpec.git。注意https://git.coding.net/ecanfly/CYPodSpec.git是你遠端已經(jīng)存在倉庫。這里如果不成功,很有可能是不能正確的訪問 https://git.coding.net,這時候用 SourceTree 把代碼克隆一份到桌面,克隆的時候會讓你輸入 https://git.coding.net 的用戶名和密碼。再次執(zhí)行之前的命令就可以成功的在 .cocoapods/repos中創(chuàng)建文件夾,并關(guān)聯(lián)到遠端。
    • 現(xiàn)在做好一個私有的庫,并使用命令pod spec create XXXXX創(chuàng)建 podspec 文件,修改這個文件結(jié)束后,通過pod lib lint xxx.podspec --verbose --use-libraries --allow-warnings做本地驗證。沒有問題后打 tag 并 push 到遠端。需要注意 podspec 文件夾中的 s.version 需要在遠端有對應(yīng)的 tag。通過pod spec lint xxx.podspec --verbose --use-libraries --allow-warnings做遠程驗證。
    • 通過pod repo push CYPodSpec xxx .podspec --verbose --use-libraries --allow-warnings將私有庫放置在.cocoapods/repos/CYPodSpec文件夾下,這個命令自帶推送操作,會把 CYPodSpec 倉庫同步到遠端。
    • 如果更新了 pod 庫
      • 要修改 podspec 文件中的版本號
      • 本地驗證
      • 打 tag 并推送到遠端
      • 遠端驗證
      • 執(zhí)行 pod repo push CYPodSpec xxx .podspec --verbose --use-libraries --allow-warnings ,CYPodSpec 中對應(yīng)的私有庫文件夾中會多出一個版本號對應(yīng)的文件夾,里面存放了 xxx .podspec 文件。

(如果是庫中拖拽了其他的庫當(dāng)源碼,遇到問題的話,可以參考下面的文檔)[http://www.itdecent.cn/p/8566983dae1f]

參考:
私有庫制作的第一種方式參考這個

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