一懈糯、創(chuàng)建私有庫(kù)模板
1、創(chuàng)建LeoPrivatePodTest庫(kù)
pod lib create LeoPrivatePodTest
2、執(zhí)行完上面命令后劈彪,會(huì)讓你選擇私有庫(kù)配置
//選擇平臺(tái)
What platform do you want to use?? [ iOS / macOS ]
> iOS
//選擇編程語(yǔ)言
What language do you want to use?? [ Swift / ObjC ]
> ObjC
//是否創(chuàng)建測(cè)試Demo
Would you like to include a demo application with your library? [ Yes / No ]
> Yes
//測(cè)試框架
Which testing frameworks will you use? [ Specta / Kiwi / None ]
> None
//是否視圖測(cè)試
Would you like to do view based testing? [ Yes / No ]
> No
//測(cè)試Demo的類前綴
What is your class prefix?
> Leo
3、會(huì)得到如下的模板項(xiàng)目
會(huì)自動(dòng)在LeoPrivatePodTest目錄下添加git顶猜,后續(xù)我們只需把git與遠(yuǎn)端的倉(cāng)庫(kù)關(guān)聯(lián)沧奴。
4、創(chuàng)建文件并放到指定目錄:
可以把創(chuàng)建的類放到Classes文件夾下长窄,也可以放到其他目錄滔吠。只需要在LeoPrivatePodTest.podspec中標(biāo)記對(duì)應(yīng)的路徑即可:
Pod::Spec.new do |s|
s.name = 'LeoPrivatePodTest'
s.version = '0.1.0'
s.summary = 'A short description of LeoPrivatePodTest.'
s.description = <<-DESC
TODO: Add long description of the pod here.
DESC
s.homepage = 'https://gitee.com/ayangcool100/leo-private-pod-test'
s.license = { :type => 'MIT', :file => 'LICENSE' }
s.author = { 'leo' => 'ayangcool100' }
s.source = { :git => 'https://gitee.com/ayangcool100/leo-private-pod-test.git', :tag => s.version.to_s }
s.ios.deployment_target = '10.0'
s.requires_arc = true
s.static_framework = true
s.default_subspecs = 'Source'
s.subspec 'Source' do |sc|
sc.source_files = 'LeoPrivatePodTest/**/*{h,m}'
sc.pod_target_xcconfig = {
'VALID_ARCHS' => 'armv7 arm64',
'ENABLE_BITCODE' => 'NO',
# 'HEADER_SEARCH_PATHS' => '$(SRCROOT)/../../LeoPrivatePodTest/',
# 'LIBRARY_SEARCH_PATHS' => '$(SRCROOT)/../../LeoPrivatePodTest/',
'BUILD_LIBRARY_FOR_DISTRIBUTION' => true
# 'OTHER_LDFLAGS' => '$(inherited)'
}
sc.public_header_files = 'LeoPrivatePodTest/**/*.h'
end
# s.subspec 'Dog' do |sd|
# sd.source_files = 'LeoPrivatePodTest/Dog/**/*{h,m}'
# sd.pod_target_xcconfig = {
# 'VALID_ARCHS' => 'armv7 arm64',
# 'ENABLE_BITCODE' => 'NO',
## 'HEADER_SEARCH_PATHS' => '$(SRCROOT)/../../LeoPrivatePodTest/',
## 'LIBRARY_SEARCH_PATHS' => '$(SRCROOT)/../../LeoPrivatePodTest/',
# 'BUILD_LIBRARY_FOR_DISTRIBUTION' => true
# # 'OTHER_LDFLAGS' => '$(inherited)'
# }
# sd.public_header_files = 'LeoPrivatePodTest/Dog/**/*.h'
# end
# s.resource_bundles = {
# 'LeoPrivatePodTest' => ['LeoPrivatePodTest/Assets/*.png']
# }
# s.public_header_files = 'Pod/Classes/**/*.h'
# s.frameworks = 'UIKit', 'MapKit'
# s.dependency 'AFNetworking', '~> 2.3'
end
5、測(cè)試代碼
修改完LeoPrivatePodTest.podspec
后挠日,cd到Example文件夾下執(zhí)行pod install
疮绷。檢查是否設(shè)置正確。
代碼更新后先關(guān)閉workspace嚣潜,一定要執(zhí)行:pod install 來(lái)更新冬骚,更新完需要重新打開(kāi)workspace。
6懂算、提交修改并打tag上傳
cd到LeoPrivatePodTest(git所在目錄)執(zhí)行:
git add .
git commit -m "提交代碼"
git remote add origin https://gitee.com/ayangcool100/leo-private-pod-test.git
git push origin master
git tag 0.1.0
git push origin 0.1.0
必須要打tag只冻,因?yàn)槠渌送ㄟ^(guò) pod 'LeoPrivatePodTest' 導(dǎo)入時(shí),需要根據(jù)tag去查找计技。
tag建議在校驗(yàn)podspec之后再打喜德,因?yàn)槿绻鹥odspec校驗(yàn)不通過(guò),還需要修改podspec或代碼垮媒。
二住诸、檢驗(yàn)podspec
podspec制作后需要做檢驗(yàn),檢驗(yàn)通過(guò)后上傳到索引庫(kù)涣澡,以供其他人通過(guò)索引使用。
cd到LeoPrivatePodTest(LeoPrivatePodTest.podspec所在目錄)執(zhí)行:
pod lib lint LeoPrivatePodTest.podspec --allow-warnings
// 如果只是需要制作framework庫(kù)丧诺,可以用這個(gè)
pod lib lint LeoPrivatePodTest.podspec --allow-warnings --skip-import-validation --use-libraries
--allow-warnings 允許警告
--use-libraries 代碼中使用到了靜態(tài)庫(kù).a
--skip-import-validation 跳過(guò)頭文件驗(yàn)證
--verbose 顯示詳細(xì)信息
--sources 指定source入桂,多個(gè)索引庫(kù)中間用逗號(hào)分割。
如:
--sources=https://github.com/CocoaPods/Specs.git,https://gitee.com/ayangcool100/leo-podspec.git
下一步就是把校驗(yàn)通過(guò)的podspec上傳到索引庫(kù):
iOS開(kāi)發(fā) CocoaPods(二)創(chuàng)建索引并使用
三驳阎、pod開(kāi)發(fā)模式
1抗愁、由于創(chuàng)建的pod庫(kù)只是在本地測(cè)試,沒(méi)有上傳到git呵晚。此時(shí)是通過(guò):
pod 'LeoPrivatePodTest', :path => '../'
這種方式加載的蜘腌。
而且在Pods的target中,是在Development Pods
目錄下饵隙。
2撮珠、開(kāi)發(fā)模式加載其他三方庫(kù)
1、以加載 Masonry 為例金矛,先去Masonry倉(cāng)庫(kù)下載Masonry.podspec:https://github.com/SnapKit/Masonry/blob/master/Masonry.podspec
同時(shí)把Masonry源代碼下載下來(lái):https://github.com/SnapKit/Masonry
目錄結(jié)構(gòu)如下:
2芯急、把Masonry文件夾放到Demo里面(可以隨意放置勺届,podfile里面路徑寫(xiě)對(duì)就行)
3、podfile里加載Masonry:
此時(shí)Masonry就被加載進(jìn)去了娶耍,其他的三方庫(kù)加載類似免姿。
demo地址:https://gitee.com/ayangcool100/LeoDNS