iOS組件化開發-發佈私有庫

遠程索引庫

將遠程索引庫添關聯到本地

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']

相關文章
相關標籤/搜索