一惕艳、新建一個(gè)code庫(kù)锈至,并且發(fā)布到私有倉(cāng)庫(kù)
首先我們得明白兩個(gè)概念
1恤批、code repository
是代碼倉(cāng)庫(kù),我們把包代碼上傳到這個(gè)倉(cāng)庫(kù)裹赴。不同的庫(kù),對(duì)應(yīng)的不同的code repository
2诀浪、spec repository
是配置倉(cāng)庫(kù)棋返,所有的配置按照包名、版本號(hào)分門別類的存放在這個(gè)倉(cāng)庫(kù)雷猪。這個(gè)倉(cāng)庫(kù)只用來存放spec
文件睛竣,不存放代碼。
1求摇、我們先新建一個(gè)spec repository
倉(cāng)庫(kù) 射沟。先在gitlab(或者GitHub)新建一個(gè)倉(cāng)庫(kù)殊者。復(fù)制倉(cāng)庫(kù)的地址并且執(zhí)行下面的代碼
pod repo add SLSpecs https://git.shunliandongli.com/shunlian_ios/SLSpecs.git
查看是否添加成功
執(zhí)行pod repo list
。出現(xiàn)下面就是添加成功了
2验夯、創(chuàng)建本地code repository
倉(cāng)庫(kù)` ,我們以ShunLianLib
為倉(cāng)庫(kù)的名字猖吴,cd
到你熬創(chuàng)建的倉(cāng)庫(kù)的目錄
執(zhí)行代碼 pod lib create ShunLianLib
這樣本地的pod倉(cāng)庫(kù)就創(chuàng)建好了。
3挥转、修改ShunLianLib.podspec
文件(這是重點(diǎn))海蔽。
使用下面這些常用的就行了。還有一些需要的绑谣,自己去查資料
Pod::Spec.new do |s|
s.name = 'ShunLianLib' #庫(kù)名字
s.version = '0.1.0' #庫(kù)版本號(hào)
s.summary = 'A short description of ShunLianLib.' #摘要
s.description = <<-DESC
TODO: Add long description of the pod here.
DESC #描述
s.homepage = 'https://github.com/goodBoyAndGril/ShunLianLib' #倉(cāng)庫(kù)地址
# s.screenshots = 'www.example.com/screenshots_1', 'www.example.com/screenshots_2' #截屏地址
s.license = { :type => 'MIT', :file => 'LICENSE' } #開源協(xié)議
s.author = { 'goodBoyAndGril' => 'chenzhen@shunlianwangluo.com' } #作者
s.source = { :git => 'https://github.com/goodBoyAndGril/ShunLianLib.git', :tag => s.version.to_s } #庫(kù)的遠(yuǎn)程倉(cāng)庫(kù)地址
# s.social_media_url = 'https://twitter.com/<TWITTER_USERNAME>'
s.ios.deployment_target = '8.0' #支持的最低版本
s.source_files = 'ShunLianLib/Classes/**/*' #倉(cāng)庫(kù)的實(shí)際文件地址党窜,發(fā)布的就是這一塊的地址
# s.resource_bundles = {
# 'ShunLianLib' => ['ShunLianLib/Assets/*.png']
# } #資源文件路徑
# s.public_header_files = 'Pod/Classes/**/*.h'
# s.frameworks = 'UIKit', 'MapKit' #引用的系統(tǒng)庫(kù)
# s.dependency 'AFNetworking', '~> 2.3' #引用的第三方庫(kù)
# s.dependency 'xxxxxx', '~> 2.3' #引用的第三方庫(kù)
# s.dependency 'xxxxxx', '~> 2.3' #引用的第三方庫(kù)
4、驗(yàn)證ShunLianLib.podspec
文件的正確性
執(zhí)行 pod lib lint
或者 pod lib lint --allow-warnings
(忽略警告)
得到下面的就是驗(yàn)證通過
5借宵、在gitlab上新建code repository
幌衣,然后提交版本,生成標(biāo)簽并提交
//進(jìn)入你剛剛本地創(chuàng)建的代碼路徑
cd existing_folder
//初始化
git init
//添加遠(yuǎn)程代碼庫(kù)
git remote add origin https://git.shunliandongli.com/Private/ShunLianLib.git
//將全部文件加入到暫存區(qū)
git add .
//代碼提交到本地
git commit
//代碼推送到遠(yuǎn)程
git push -u origin master
6壤玫、代碼提交之后就之后豁护,就發(fā)布新版本
6.1、用sourceTree
提交一個(gè)版本垦细,再給這個(gè)版本添加一個(gè)標(biāo)簽
6.2择镇、填寫標(biāo)簽 就是版本號(hào)。勾選推送標(biāo)簽
6.3括改、這里就生成了一個(gè)標(biāo)簽
6.4腻豌、現(xiàn)在要修改.podspec
文件 (我們以SLFoundation
為例),修改SLFounddation.podspec
中的s.version = '對(duì)應(yīng)的標(biāo)簽'
嘱能。這個(gè)版本號(hào)就是我們剛剛的標(biāo)簽吝梅,然后保存
6.5、保存成功之后惹骂,執(zhí)行代碼苏携,cd
到 SLFoundation.podspec
所在的目錄,在控制臺(tái)執(zhí)行下面的代碼对粪,提交到SLSpecs代碼庫(kù)中
pod repo push SLSpecs SLFoundation.podspec pod repo push SLSpecs SLFoundation.podspec --allow-warnings //這個(gè)忽略警告
7右冻、出現(xiàn)了這個(gè)就說明成功了
-> SLFoundation (0.0.5) - NOTE | xcodebuild: note: Using new build system - NOTE | [iOS] xcodebuild: note: Planning build - NOTE | [iOS] xcodebuild: note: Constructing build description - NOTE | [iOS] xcodebuild: warning: Skipping code signing because the target does not have an Info.plist file and one is not being generated automatically. (in target 'App' from project 'App')
執(zhí)行下面代碼。搜索一下著拭,驗(yàn)證是否能搜索到
pod search SLFoundation
二纱扭、對(duì)已有庫(kù)進(jìn)行更新
執(zhí)行上面步驟6,更新代碼上傳標(biāo)簽儡遮,修改版本號(hào)乳蛾。
[!] Tips:
由于發(fā)展豆莢實(shí)現(xiàn)細(xì)節(jié),當(dāng)你添加新的/現(xiàn)有的文件Pod/Classes或Pod/Assets或更新podspec,你應(yīng)該運(yùn)行pod install或pod update肃叶。