组件15:远程私有库优化设计——分子库

不足:

假如另外一个业务线, 仅仅需要依赖一些基础配置, 但是, 如果把整个库作为依赖, 不太适合,比如在下图,只需要Category,宿主工程却把整个Classes下载了。

也就是组件分别安装。

组件15:远程私有库优化设计——分子库_第1张图片
未使用subspec的缺陷.png

解决步骤:

1.编辑podspec,使用subspec(子库、子索引),语法如下,如果有依赖,直接写在里面:

 把一个大的库分成多个子库(subspec)
s.subspec 'Network' do |n|
    n.source_files = 'XMGFMBase/Classes/Network/**/*'
    n.dependency 'AFNetworking'
end
组件15:远程私有库优化设计——分子库_第2张图片
Snip20170709_81.png

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.宿主工程如何使用

组件15:远程私有库优化设计——分子库_第3张图片
宿主工程如何使用.png
组件15:远程私有库优化设计——分子库_第4张图片
Podfile多个子库的两种写法.png

宿主工程执行pod install

-->遇到的坑

用subspec分了子库,本地库安装后,文件层次看起来不对劲:

组件15:远程私有库优化设计——分子库_第5张图片
文件层次不对劲的本地库20170710_85.png

** 小常识:**

  • 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下的实体文件夹名不一样,可根据需要修改(虚拟文件夹,本地不存在的);
三级:本地实体文件的引用(非虚拟文件);

组件15:远程私有库优化设计——分子库_第6张图片
测试工程Example本地库的文件层次.png

** 测试工程Example中的本地库如何安装,看起来才正常 **

1、在podspec文件中,打开大库的s.source_file,注释小库,pod install安装,这才是正常的;
2、安装完,再注释大库的s.source_file,打开小库subspec。

Snip20170710_96.png

你可能感兴趣的:(组件15:远程私有库优化设计——分子库)