遠程索引庫
將遠程索引庫添關聯到本地
pod repo 查看本地已關聯倉庫源 pod repo add 本地索引庫名稱 遠程索引庫倉庫地址 pod repo update 索引庫名稱 pod repo remove 本地索引庫名稱
執行命令 添加遠程索引庫`KTPodSpecs`克隆到本地c++
遠程庫
新建框架工程KTUIKit
利用模板自動生成私有庫工程 git
pod lib create 框架名稱
pod lib create KTUIKit
生成的工程依賴關係github
KTUIKit的示例工程的podfile配置spec的路徑是相對於本地podfile的路徑框架
編寫PodSpec
依賴第三方庫post
framewirks:依賴系統的動態庫 好比 UIKit
vendored_framework:依賴非系統的動態庫 好比TencentOpenAPI.framework
libraries:依賴系統靜態庫 好比libstdc++.a
vendored_libraries:依賴非系統的靜態庫 好比新浪微博的libWeiboSDK.a
dependency:依賴pod庫
上傳框架到遠程倉庫
新建遠程倉庫測試
進入本地KTUIKit目錄執行Git命令 與遠程KTUIKit創建關聯spa
git remote add origin https://github.com/coderketao/KTUIKit.git
git branch --set-upstream-to=origin/master master 本地分支遠程分支創建track
創建關聯後,本地KTUIKit push到遠程倉庫 注意:push過程記得必定將Pods和Podfile.lock文件忽略,不然致使pod install和pod repo push很慢code
遠程master分支添加tag 執行命令blog
git tag '0.1.0' 添加 git push --tags git tag -d 0.1.0 刪除 git push origin :0.1.0
私有庫發佈
將podspec文件到遠程索引庫 執行命令 驗證`KTUIKit.podspec`是否合法索引
pod lib lint KTUIKit.podspec --allow-warnings --use-libraries 驗證本地
執行命令 發佈podspec到遠程索引倉庫
pod repo push KTPodSpecs KTUIKit.podspec --allow-warnings --use-libraries
在構建組件時,若是該組件引用了其它庫
s.dependendy 'SDWebImage' s.dependendy 'AFNetWorking'
在驗證、推送遠程索引庫加上pod的source
pod lib lint KTUIKit.podspec --sources='http://47.93.191.194:9002/hongketao/QXComponentSpecs.git,https://github.com/CocoaPods/Specs.git' --allow-warnings --use-libraries pod repo push KTPodSpecs KTUIKit.podspec --sources='http://47.93.191.194:9002/hongketao/QXComponentSpecs.git,https://github.com/CocoaPods/Specs.git' --allow-warnings --use-libraries
私有庫使用
新建項目,應用私有庫
podspec的寫法
~> 1.2.0 要求版本 [1.2.0, 2.0.0)
<= 1.2.0 版本小於等於1.2.0 超事後1.2.0後再也不更新
指定三方庫本地路徑的寫法(用於提交前進行測試)
pod 'AFNetworking', :path => '~/Desktop/AFNetworking'
指定git的寫法
pod 'AFNetworking', :git => 'https://github.com/AFNetworking/AFNetworking.git'
pod 'AFNetworking', :git => 'https://github.com/AFNetworking/AFNetworking.git', :branch => 'dev'
pod 'AFNetworking', :git => 'https://github.com/AFNetworking/AFNetworking.git', :tag => '3.1.1'
pod 'AFNetworking', :git => 'https://github.com/AFNetworking/AFNetworking.git', :commit => '0f506b1c45'
指定podspec的寫法
pod 'AFNetworking', :podspec => '~/Desktop/AFNetworking/AFNetworking.podspec'
指定subspecs的寫法(這也是subspec的另外一個用法
pod 'MyThirdparty', '~> 0.0.1', :subspecs => ['Sparta', 'GotyeSDK', 'TalkingData', 'Tingyun', 'BaiduPanorama']