1刑桑、組件化的第一步就是創(chuàng)建私有庫(kù)蝇刀,是iOS項(xiàng)目組件化開(kāi)發(fā)的基本操作。接下來(lái)就來(lái)說(shuō)一說(shuō)iOS中私有庫(kù)的創(chuàng)建方法直焙。為了方便稱(chēng)呼防止后邊理解錯(cuò)誤景东,我把私有庫(kù)稱(chēng)作組件
2、首先我們創(chuàng)建一個(gè)空文件夾奔誓,名為BSComponent,然后在終端中打開(kāi)這個(gè)文件夾之后創(chuàng)建的其他組件也將存放在這個(gè)文件夾便于管理終端進(jìn)入BSComponent目錄
3斤吐、執(zhí)行命令?pod lib create HomePage?創(chuàng)建名為HomePage的組件 這里默認(rèn)已經(jīng)安裝好了cocoapods
執(zhí)行創(chuàng)建倉(cāng)庫(kù)命令 這個(gè)HomePage將來(lái)就是首頁(yè)組件
輸入命令行后還會(huì)有一系列的選項(xiàng),
pod lib create HomePage
What platform do you want to use?? [ iOS / macOS ]
?> ios
What language do you want to use?? [ Swift / ObjC ]
?> objc
Would you like to include a demo application with your library? [ Yes / No ]
?> yes
Which testing frameworks will you use? [ Specta / Kiwi / None ]
?> none
Would you like to do view based testing? [ Yes / No ]
?> yes
What is your class prefix?
?> bs
4
厨喂、創(chuàng)建完成后打開(kāi)Gitee?創(chuàng)建一個(gè)私有倉(cāng)庫(kù)?HomePage
5和措、將HomePage上傳到遠(yuǎn)程倉(cāng)庫(kù),依次執(zhí)行下列命令 先拉取再提交,以免報(bào)錯(cuò)蜕煌,但是如果你創(chuàng)建的是空倉(cāng)庫(kù)拉取的時(shí)候會(huì)報(bào)錯(cuò)派阱,如果pull的時(shí)候報(bào)錯(cuò),直接push就可以了斜纪。
git remote add origin?https://xxxxx/HomePage.git
git pull origin master --allow-unrelated-histories
git push -u origin master //如果首次失敗可以強(qiáng)制執(zhí)行?git push -f origin master
6贫母、重點(diǎn)來(lái)了。提交完畢后必須給HomePage組件一個(gè)tag值盒刚。因?yàn)榻M件庫(kù)中的podspec文件中有對(duì)應(yīng)的tag這兩個(gè)必須一致腺劣。
git add .??//添加文件到緩沖區(qū)
git commit -m "描述"?//從緩沖區(qū)提交代碼到倉(cāng)庫(kù)
git tag -a '1.0.1'?-m '描述'
git push --tags
7、這時(shí)候可以用sourseTree添加改組件庫(kù)伪冰,方便后期管理維護(hù)誓酒。直接到BSComponent文件夾添加即可樟蠕,這樣我們遠(yuǎn)程倉(cāng)庫(kù)已經(jīng)創(chuàng)建完畢并與本地關(guān)聯(lián)成功
8贮聂、創(chuàng)建組件索引庫(kù)靠柑,再次打開(kāi)Gitee?,創(chuàng)建索引庫(kù)?BSComponent
pod repo add BSComponent https://xxxxxx/BSComponent.git
把添加遠(yuǎn)程所引庫(kù)到本地吓懈,這個(gè)所引庫(kù)理論上和cocoapods庫(kù)是同級(jí)的歼冰。所以所在目錄是
cd ~/.cocoapods/repos
pod repo
執(zhí)行pod repo?看下所引庫(kù)是否添加成功
luu@deMacBook-Pro Example % pod repo
BSComponent
- Type: git (master)
- URL:?https://xxxx/BSComponent.git
- Path: /Users/luu/.cocoapods/repos/BSComponent
cocoapods
- Type: git (unknown)
- URL:?https://github.com/CocoaPods/Specs.git
- Path: /Users/luu/.cocoapods/repos/cocoapods
trunk
- Type: CDN
- URL:?https://cdn.cocoapods.org/
- Path: /Users/luu/.cocoapods/repos/trunk
9、把組件綁定到組件索引庫(kù)上耻警,回到HomePage庫(kù)文件目錄下
這一步多容易掉坑里隔嫡,上邊說(shuō)的tag必須配置正確,
1甘穿、保證修改完HomePage組件提交后 再打新tag?每次修改組件都要在組件的.podspec文件中修改tag腮恩,之后打得tag也要一致。
2温兼、.podspec目錄中有資源所引秸滴,一般情況創(chuàng)建出來(lái)的所引都是錯(cuò)的,必須要改募判,所對(duì)應(yīng)的所引就是gitea所對(duì)的git地址荡含,也就是HomePage的git地址、HTTPS的就可以 下面就是個(gè).podspec文件届垫,這里要執(zhí)行成功s.homepage和s.source必須是對(duì)的释液。
Pod::Spec.new do |s|
?s.name?= 'HomePage'
?s.version?= '1.0.0'
?s.summary?= 'A short description of HomePage.'
?s.description?= <<-DESC
?s.homepage?= 'https://xxxx/HomePage'
?# s.screenshots?= 'www.example.com/screenshots_1', 'www.example.com/screenshots_2'
?s.license?= { :type => 'MIT', :file => 'LICENSE' }
?s.author?= { '550482560@qq.com' => 'yuanyuan53@leju.com' }
?s.source?= { :git => 'https://xxxx/HomePage.git', :tag => s.version.to_s }
?# s.social_media_url = 'https://twitter.com/'
?s.ios.deployment_target = '9.0'
?s.source_files = 'HomePage/Classes/**/*'
?# s.resource_bundles = {
?#?'BSRouter' => ['HomePage/Assets/*.png']
?# }
?# s.public_header_files = 'Pod/Classes/**/*.h'
?# s.frameworks = 'UIKit', 'MapKit'
?# s.dependency 'HomePage'
end
3、執(zhí)行pod repo push<私有索引庫(kù)名稱(chēng)><私有庫(kù)podspec名稱(chēng)>?
pod repo push BSComponent HomePage.podspec?--verbose --use-libraries --allow-warnings
--verbose --use-libraries --allow-warnings?是忽略警告
下邊這段命令是檢測(cè)當(dāng)前Homepage是否正常装处。如果上邊的那段失敗可以檢測(cè)下原因误债,一般報(bào)錯(cuò)都是不太準(zhǔn)確。
pod lib lint --verbose --use-libraries --allow-warnings
10符衔、大功告成找前,去項(xiàng)目Podfile中添加source?'https://xxxxx/BSComponent.git'
source 'https://xxxxx/BSComponent.git'
pod 'HomePage','~> 6.6.8'
執(zhí)行pod install試試吧。