製作流程圖:
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
試試
最後:
- 刪除一個私有庫
$ pod repo remove xxx
這樣就從本地刪除了當然我們還可以通過下面的代碼添加回來
$ pod repo add NNASpec http:// github.com/xxx.git
-
CocoPod管理命令
遠程庫管理