1.在Gitblit上創(chuàng)建一個(gè)自己的遠(yuǎn)程私有索引庫(kù)惋鹅,用來存放私有框架的podspec文件
image.png
- 創(chuàng)建本地的私有索引庫(kù)文件夾,并與遠(yuǎn)程私有索引庫(kù)進(jìn)行關(guān)聯(lián)
2.1添加本地私有索引庫(kù)并與遠(yuǎn)程私有庫(kù)
$ pod repo add IOSMavenSpec http://wy@dnsdk.vimedia.cn:8080/r/IOSMavenSpec.git
image.png
2.2 再次查看本地已存在的索引庫(kù)
pod repo
3 在Gitblit創(chuàng)建一個(gè)用來存放項(xiàng)目基礎(chǔ)組件的倉(cāng)庫(kù)IOSMaven
參見第一步
4 快速創(chuàng)建模板工程(模板來自github)
4.1 快速創(chuàng)建模板測(cè)試工程 在/Users/eddy/Desktop/IOSMaven路徑下
$ cd /Users/eddy/
$ pod lib create IOSMaven
4.2 本地驗(yàn)證podspec
pod lib lint --allow-warnings --use-libraries --verbose
驗(yàn)證不過的話蜜徽;可以添加--verbose查看詳細(xì)錯(cuò)誤信息
4.3 提交本地代碼
$ git status
$ git add .
$ git commit -m 'first commit'
$ git remote add origin '[http://wy@dnsdk.vimedia.cn:8080/r/IOSMaven.git](http://wy@dnsdk.vimedia.cn:8080/r/IOSMavenSpec.git')
(將本地庫(kù)與遠(yuǎn)程代碼倉(cāng)庫(kù)進(jìn)行關(guān)聯(lián))
$ git push origin master (提交到遠(yuǎn)程倉(cāng)庫(kù))
$ git tag '0.1.0' (要與IOSMaven.podspec文件中的tag值保持一致)
$ git push --tags(將tag提交到遠(yuǎn)程)
4.4 驗(yàn)證遠(yuǎn)程是否正確
pod spec lint --allow-warnings(驗(yàn)證遠(yuǎn)程是否正確)
5 將podspec文件提交到本地的私有索引庫(kù)
$ pod repo push IOSMavenSpec IOSMaven.podspec
5 組件化
5.1腋寨、抽離一個(gè)基礎(chǔ)組件Tools
spec.default_subspecs = 'Tools' #默認(rèn)組件
spec.subspec 'Tools' do |ss|
ss.ios.deployment_target = '9.0'
ss.vendored_frameworks = 'IOSMaven/Tools/*.framework'
end
5.2莹桅、模塊組件
spec.subspec 'Ads' do |ss|
ss.subspec 'Headline' do |hl| #頭條廣告
hl.ios.deployment_target = '9.0'
hl.vendored_frameworks = "IOSMaven/Ads/Headline/*.framework"
hl.resource = "IOSMaven/Ads/Headline/*.bundle"
hl.dependency 'Bytedance-UnionAD', '~>2.4.6.7'
hl.dependency 'IOSMaven/Tools'
end
end
加載xib資源需要制作bundle 組件化framework加載xib
6 引用遠(yuǎn)程庫(kù)
source 'http://wy@dnsdk.vimedia.cn:8080/r/IOSMavenSpec.git' #遠(yuǎn)程私有庫(kù)地址
source 'https://github.com/CocoaPods/Specs.git' #公有庫(kù)地址
platform :ios, ‘9.0’
use_frameworks!
target ‘CocoaPodDemo’ do
pod 'IOSMaven/Ads/Headline'
pod 'IOSMaven/TJ/Headline'
pod 'IOSMaven/Notice'
pod 'IOSMaven/Activity'
pod 'IOSMaven/Social/weixin'
pod 'IOSMaven/AppleLogin'
end