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


遠程索引庫

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

pod repo 查看本地已關聯倉庫源
pod repo add  本地索引庫名稱 遠程索引庫倉庫地址
pod repo update 索引庫名稱
pod repo remove 本地索引庫名稱

 執行命令 添加遠程索引庫`KTPodSpecs`克隆到本地

遠程庫 

新建框架工程KTUIKit

利用模板自動生成私有庫工程 

pod lib create 框架名稱
pod lib create KTUIKit

生成的工程依賴關系

KTUIKit的示例工程的podfile配置spec的路徑是相對於本地podfile的路徑

編寫PodSpec 

依賴第三方庫

framewirks:依賴系統的動態庫 比如 UIKit
vendored_framework:依賴非系統的動態庫 比如TencentOpenAPI.framework
libraries:依賴系統靜態庫 比如libstdc++.a
vendored_libraries:依賴非系統的靜態庫 比如新浪微博的libWeiboSDK.a
dependency:依賴pod庫

上傳框架到遠程倉庫 

 新建遠程倉庫

進入本地KTUIKit目錄執行Git命令 與遠程KTUIKit建立關聯

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很慢

遠程master分支添加tag 執行命令

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

 
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM