不足:
假如另外一個(gè)業(yè)務(wù)線, 僅僅需要依賴一些基礎(chǔ)配置, 但是, 如果把整個(gè)庫作為依賴, 不太適合,比如在下圖冻押,只需要Category驰贷,宿主工程卻把整個(gè)Classes下載了。
也就是組件分別安裝洛巢。
解決步驟:
1.編輯podspec括袒,使用subspec(子庫、子索引)稿茉,語法如下锹锰,如果有依賴,直接寫在里面:
把一個(gè)大的庫分成多個(gè)子庫(subspec)
s.subspec 'Network' do |n|
n.source_files = 'XMGFMBase/Classes/Network/**/*'
n.dependency 'AFNetworking'
end
2.修改spec的version漓库,上傳整個(gè)庫
cd
git status
git add .
git commit -m 'xin xi'
git push origin master
git tag
git tag '0.3.0'
git push --tags
pod lib lint
pod spec lint // 語法錯(cuò)誤恃慧,或配置錯(cuò)誤都會(huì)報(bào)錯(cuò)
pod repo
pod repo push XMGFMSpec XMGBase.podspec
--allow-warnings
3.宿主工程如何使用
宿主工程執(zhí)行pod install
-->遇到的坑
用subspec分了子庫,本地庫安裝后米苹,文件層次看起來不對(duì)勁:
** 小常識(shí):**
- Podfile文件中的 pod 'podspec文件名' 糕伐;
- .podspec的文件名,跟里面的s.name要一樣蘸嘶,否則會(huì)報(bào)錯(cuò):
The name of the given podspec \
lfproject_my07` doesn't match the expected one `lfproject_my` `即給定的s.name 跟podspec的文件名不一樣 良瞧。
** Development Pods 中文件來源:**
一級(jí):大庫陪汽,podspec文件名(虛擬文件夾,本地不存在的)褥蚯;
二級(jí):自定義分割的子庫挚冤,子庫的名字可以跟Classes下的實(shí)體文件夾名不一樣,可根據(jù)需要修改(虛擬文件夾赞庶,本地不存在的)训挡;
三級(jí):本地實(shí)體文件的引用(非虛擬文件);
** 測(cè)試工程Example中的本地庫如何安裝歧强,看起來才正常 **
1澜薄、在podspec文件中,打開大庫的s.source_file摊册,注釋小庫肤京,pod install安裝,這才是正常的茅特;
2忘分、安裝完,再注釋大庫的s.source_file白修,打開小庫subspec妒峦。