上傳項目到Cocoapods

將自己的代碼提交到Cocoapods上面以便于自己或其他人使用Cocoapods安裝使用。

一,創(chuàng)建倉庫,上傳代碼到碼云(此處以碼云為例)
001

是否開源選擇公開、語言和.gitignore按需選擇、開源許可證必須要有、選擇MIT,創(chuàng)建倉庫、上傳代碼
002

二,給項目打tag

點擊標(biāo)簽
點擊上方標(biāo)簽

新建標(biāo)簽,標(biāo)簽名字即版本號例如1.0.0,之后會用到,要和之后用到的時候保持一致,也是以后更新時需要改動的
004

三,注冊CocoaPods賬號

打開終端用命令行注冊cocoapods賬號,有賬號的話跳過,注冊以后郵箱會收到一封確認郵件,進入郵件中的鏈接完成注冊(使用QQ郵箱注冊時雖然提示我去郵件里驗證,但是郵箱一直沒有收到郵件,于是換成了163郵箱)

003.png
終端信息

Last login: Fri Jul 10 11:53:02 on ttys000
//注冊  郵箱、昵稱
twinkleo@TwinkleodeMacBook-Pro ~ % pod trunk register XXXX@163.com  'YourName'
[!] Please verify the session by clicking the link in the verification email that has been sent to XXXX@163.com

//查看自己的注冊信息 
twinkleo@TwinkleodeMacBook-Pro ~ % pod trunk me 

//如果多人維護pod 可以添加其他維護者
twinkleo@TwinkleodeMacBook-Pro ~ % pod trunk add-owner name XXXXX@163.com
  - Name:     Twinkleo_LZ
  - Email:    twinkleo_lz@163.com
  - Since:    July 7th, 02:55
  - Pods:     None
  - Sessions:   
    - July 10th, 00:08 - November 15th, 00:09. IP:111.222.188.222

四、創(chuàng)建 .podspec文件

Podsepc文件:在所有支持Cocoapods導(dǎo)入的庫的開源目錄(如Github)下,我們都能看到一個.podspec文件。當(dāng)然我們不管是做公有庫或者是私有庫都是必須配置這個文件的。這個文件是告訴Cocoapods你這個庫的一些基本信息,包括你的版本號、獲取的地址、那些文件是希望被包含進來的等一些信息。
這個文件是在你新建或者需要新提交一個版本的時候回進行改動的文件。
.podspec要放在clone到本地的git倉庫的根目錄下面,并提交到倉庫的

終端創(chuàng)建
//cd到文件
twinkleo@TwinkleodeMacBook-Pro ~ % cd /Users/twinkleo/Desktop/XGProgressHUD 

//命令行創(chuàng)建  這個名稱就是之后cocoapods搜索使用的名稱,
//例如AFNetworking、FMDB等
twinkleo@TwinkleodeMacBook-Pro XGProgressHUD % pod spec create XGProgressHUD   

//提示創(chuàng)建完成
Specification created at XGProgressHUD.podspec

此時在你的文件夾下面就已經(jīng)生成了podspec
文件夾下的目錄

五、編輯 .podspec文件

可以用文本編輯工具打開編輯,也可以用終端打開編輯。 推薦終端編輯,用文本編輯工具有可能造成雙引號變成中文導(dǎo)致在之后的驗證中失敗的問題。
終端打開vim XGProgressHUD.podspec

twinkleo@TwinkleodeMacBook-Pro XGProgressHUD % vim XGProgressHUD.podspec

  #  Not including the public_header_files will make all headers public.
  #

  spec.source_files  = "Classes", "Classes/**/*.{h,m}"
  spec.exclude_files = "Classes/Exclude"

  # spec.public_header_files = "Classes/**/*.h"


  # ――― Resources ―――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――― #
  #
  #  A list of resources included with the Pod. These are copied into the
  #  target bundle with a build phase script. Anything else will be cleaned.
  #  You can preserve files from being cleaned, please don't preserve
  #  non-essential files like tests, examples and documentation.
  #

  # spec.resource  = "icon.png"
  # spec.resources = "Resources/*.png"

  # spec.preserve_paths = "FilesToSave", "MoreFilesToSave"


  # ――― Project Linking ―――――――――――――――――――――――――――――――――――――――――――――――――――――――――― #
  #
  #  Link your library with frameworks, or libraries. Libraries do not include
  #  the lib prefix of their name.
  #

  # spec.framework  = "SomeFramework"
  # spec.frameworks = "SomeFramework", "AnotherFramework"

  # spec.library   = "iconv"
  # spec.libraries = "iconv", "xml2"


  # ――― Project Settings ――――――――――――――――――――――――――――――――――――――――――――――――――――――――― #
  #
  #  If your library depends on compiler flags you can set them in the xcconfig hash
  #  where they will only apply to your library. If you depend on other Podspecs
  #  you can include multiple dependencies to ensure it works.

  # spec.requires_arc = true

  # spec.xcconfig = { "HEADER_SEARCH_PATHS" => "$(SDKROOT)/usr/include/libxml2" }
  # spec.dependency "JSONKit", "~> 1.4"

end

發(fā)現(xiàn)里面有很多,我們使用的其實并不多,只需要簡單的一些介紹之類的就行,其余的全部可以刪掉,建議全部刪除重新寫,.podspec在cocoapods中最終會以json格式展示,這里貼一個MJRefresh的.podspec.json

截屏2020-07-10 下午2.48.11.png

發(fā)現(xiàn)里面有框架的名稱、版本、簡介、框架主頁、開源許可證、作者信息、最低支持版本、資源文件等
建議直接復(fù)制下面這一部分,然后更改信息

Pod::Spec.new do |s|
  s.name         = "XGProgressHUD" # 項目名稱
  s.version      = "1.0.0"        # 版本號 與 你倉庫的 標(biāo)簽號 對應(yīng)
  s.license      = "MIT"   # 開源證書
  s.summary      = "基于MBProgressHUD的封裝" # 項目簡介

  s.homepage     = "https://gitee.com/Twinkleo/XGProgressHUD" # 你的主頁
  s.source       = { :git => "https://gitee.com/Twinkleo/XGProgressHUD.git", :tag => "#{s.version}" }#你的倉庫地址,不能用SSH地址
  s.source_files  = 'XGProgressHUD/XGProgressHUD.{h,m}'
  s.requires_arc = true # 是否啟用ARC
  s.platform     = :ios, "10.0" #平臺及支持的最低版本
  s.frameworks   = "UIKit", "Foundation", "CoreGraphics" #支持的框架
  
  # User
  s.author             = { "Twinkleo" => "1050832257@qq.com" } # 作者信息

end

六、驗證podspec

//終端驗證
pod lib lint
//或者
pod lib lint --allow-warnings

正確的話會顯示

XGProgressHUD passed validation. 

七、提交發(fā)布

pod trunk push XGProgressHUD.podspec

成功后顯示

--------------------------------------------------------------------------------
 ??  Congrats

 ??  XGProgressHUD (1.0.0) successfully published
 ??  March 7th, 01:39
 ??  https://cocoapods.org/pods/XGProgressHUD
 ??  Tell your friends!

八、更新cocoapods、查詢、使用

常規(guī)操作

九、更新維護你的代碼

代碼更新維護后,就需要重寫發(fā)布,流程是:
1,重新打標(biāo)簽、
2,更新XGProgressHUD.podspec中的版本號、
3,pod trunk push XGProgressHUD.podspec 推送到pods倉庫

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

友情鏈接更多精彩內(nèi)容