不足:
假如另外一个业务线, 仅仅需要依赖一些基础配置, 但是, 如果把整个库作为依赖, 不太适合,比如在下图,只需要Category,宿主工程却把整个Classes下载了。
也就是组件分别安装。
解决步骤:
1.编辑podspec,使用subspec(子库、子索引),语法如下,如果有依赖,直接写在里面:
把一个大的库分成多个子库(subspec)
s.subspec 'Network' do |n|
n.source_files = 'XMGFMBase/Classes/Network/**/*'
n.dependency 'AFNetworking'
end
2.修改spec的version,上传整个库
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 // 语法错误,或配置错误都会报错
pod repo
pod repo push XMGFMSpec XMGBase.podspec
--allow-warnings
3.宿主工程如何使用
宿主工程执行pod install
-->遇到的坑
用subspec分了子库,本地库安装后,文件层次看起来不对劲:
** 小常识:**
- Podfile文件中的 pod 'podspec文件名' ;
- .podspec的文件名,跟里面的s.name要一样,否则会报错:
The name of the given podspec \
lfproject_my07` doesn't match the expected one `lfproject_my` `即给定的s.name 跟podspec的文件名不一样 。
** Development Pods 中文件来源:**
一级:大库,podspec文件名(虚拟文件夹,本地不存在的);
二级:自定义分割的子库,子库的名字可以跟Classes下的实体文件夹名不一样,可根据需要修改(虚拟文件夹,本地不存在的);
三级:本地实体文件的引用(非虚拟文件);
** 测试工程Example中的本地库如何安装,看起来才正常 **
1、在podspec文件中,打开大库的s.source_file,注释小库,pod install安装,这才是正常的;
2、安装完,再注释大库的s.source_file,打开小库subspec。