如何製作自己的CocoaPod庫


製作流程圖:

1.將代碼託管在github上

1.1本地代碼

如圖:



在github上創建 並上傳


切換到本地項目cd xxx路徑後 用git命令行 (記不住命令行 git help) 步驟如下:

$ git init
$ git add /Users/kevin/Desktop/xxx //直接拖拉項目文件夾
$ git commit -m 'frsit commit' //推到本地倉庫
$ git remote add origin https://github.com/xxx/xxx.git //本地倉庫關聯github
$ git push -u origin master //推到遠程github

給項目branches打上指定的tag

# 打tag
git tag -m "New Tag" '1.0'
# 把tag推到遠程倉庫
git push --tags

2.構建Pod管理

拉取github代碼到pods管理本地目錄中(本地文件夾:~/.cocoapods/repos

# pod repo add [私有項目名(repo庫)] [github地址]
$ pod repo add  KKSWiftHUD  https://github.com/xxx/xxx.git

執行後可以cmd+shift +G 輸入~/.cocoapods/repos 查看文件的存在
ok ,接下來開始創建pod的一個關鍵文件(類似項目中Podfile文件)

還是回到項目文件中來(查看ls

一 、創建podspec文件

# 創建podspec文件
$ pod spec create KKSwiftHUD

這時項目中會生成一個KKSwiftHUD.podspec文件 用XCode 打開
把這個粘貼覆蓋過去 ( 系統生成很多,這些參數夠用了)


Pod::Spec.new do |s|

s.name         = "KKSwiftHUD"
s.version      = "1.0"
s.summary      = "Notification HUD for ios."
s.homepage     = "https://github.com/one-tea/KKSwiftHUD.git"
s.license          = { :type => "MIT", :file => "LICENSE" }
s.author       = { "Zhang KK" => "[email protected]" }
s.platform     = :ios, "8.0"
s.source       = { :git => "https://github.com/one-tea/KKSwiftHUD.git", :tag => "1.0" }
s.source_files = "KKSwiftHUDLib/*"
s.framework    = "UIKit"
s.requires_arc = true

# s.frameworks = "SomeFramework", "AnotherFramework"

end

根據自己的信息 ,進行編輯xxx.podspec文件

s.name         = "xxx" //pod名字
s.version      = "1.0"//版本號 
s.summary      = "Notification HUD for ios."//簡介
s.homepage     = "https://github.com/xxx.git"// 託管地址
s.license      = "MIT"
s.author       = { "Zhang KK" => "[email protected]" }// 個人信息
s.platform     = :ios, "8.0"
s.source       = { :git => "https://github.com/one-tea/KKSwiftHUD.git", :tag => "1.0" }// github上地址和tag
s.source_files = "KKSwiftHUDLib/*"  //相對於``KKSwiftHUD.podspec``的路徑地址,/**:表示在``KKSwiftHUDLib``下所有文件 ,如果是OC語言也可以用正則語法``KKSwiftHUDLib/**/*.{h,m} `` 
s.framework    = "UIKit" //依賴庫
s.requires_arc = true
s.resources = "KKSwiftHUD/*.png" 圖片資源

參數的註釋:

 name: 導入pod後的目錄名 
 version: 當前版本號
 deployment_target: 配置的target 
 prefix_header_file: 預編譯頭文件路徑,將該文件的內容插入到Pod的pch文件內
 source: 來源的具體路徑,是http鏈接還是本地路徑 requires_arc: 是否需要arc
 source_files: 指定該目錄下包含哪些文件 其他可選參數還包括: dependency: 指定依賴,如果依賴的庫不存在或者依賴庫的版本不符合要求將會報錯
 libraries: 指定導入的庫,比如sqlite3
 frameworks: 指定導入的framework 
 weak_frameworks: 弱鏈接,比如說一個項目同時兼容iOS6和iOS7,但某一個framework只在iOS7上有,這時候如果用強鏈接,那麼在iOS7上運行就會crash,使用weak_frameworks可以避免這種情況。

通配符說明:

a{bb,bc}def.{h,m}表示四個文件abbdef.h abbdef.m abcdef.h abcdef.m
*.{h,m,mm}表示所有的.h .m .mm文件Class/**/*.{h,m}表示Class目錄下的所有.h .m文件

二、測試下podspec配置文件是否有錯誤

$ pod lib lint  // 驗證是否有合格
$ pod spec lint  // 這個也可以驗證

注:如果出現WARN 可以加入--allow-warnings忽略
需要花些時間,最後沒有error提示則成功

三、 提交podspec到私有庫

# pod repo push [repo倉名] [podspec文件名]

$ pod repo push  xxx  xxx.podspec

完成之後這個私有庫就添加到我們的私有Spec Repo中,可以進入到~/.cocoapods/repos目錄下查看

接下來推送到遠端CocoaPod倉, 這樣別人就可通過 pod search xxx來搜到並使用

四、創建一個trunk賬號(用於上傳到公共庫Cocoapods)

$ sudo gem install cocoapods // 先更新下Cocoapods版本
$ pod trunk register 郵箱 '暱稱' --verbose // 填寫賬號信息,註冊完要去郵箱點一個驗證郵件(郵箱最好和git的郵箱保持一致)
$ pod trunk me // 驗證完成後可以查看賬號信息

填寫賬號信息,註冊完要去郵箱點一個驗證郵件(郵箱最好和git的郵箱保持一致)
運行結果,成功

五 最後一步 trunk提交就可以了

# 提交podspec文件到trunkpod trunk push NNATree.podspec
  pod trunk push --allow-warnings

需要一會時間

成功了!
pod search xxx 可能需要等一會才能搜到 或者運行 pod setup試試

最後:

  1. 刪除一個私有庫
    $ pod repo remove xxx
    這樣就從本地刪除了當然我們還可以通過下面的代碼添加回來
    $ pod repo add NNASpec http:// github.com/xxx.git
  2. CocoPod管理命令



    遠程庫管理


Pod Search Money

Pod Search MM

Pod Search Happy

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章