iOS组件化之 一. 打造远程私有库(准备工作)

iOS组件化之 一. 打造远程私有库(准备工作)

前提

1. cocoapods相关操作
1. 查看第三方框架仓库源 : pod repo
2. 移除仓库源 : pod repo remove master
3. 添加仓库源 : pod repo add master http://git.oschina.net/akuandev/Specs.git
4. 初始化(下载服务器中所有第三方框架信息, 缓存到电脑本地) : pod setup
2.cocoapods 重要路径
1. 索引缓存路径 :  ~/Library/Caches/CocoaPods/
2. pod命令安装路径 : /usr/local/bin
3. pod 框架索引信息缓存路径: /Users/apple/.cocoapods/repos/master

一. 打造远程私有库

1. 私有Spec Repo创建
1.  利用公司部署的gitlab(git.mistong.com)做 git仓库, 或者github, coding等等
    新建私有仓库EWTPodspec, 同时添加.gitignore,  同时在其中添加.DS_Store, 每次上传忽略掉Mac自带的.DS_Store, 以避免引起冲突...
    
2. 把EWTPodspec当做索引库, 首先查看本地索引库 命令: pod repo 如图下图(查看本地索引库)
   有两个cocoapods 和 master 均是 pod 官方的索引库, 像AFN等开源库就是用的官方索引库,任何人都可以搜索到并下载.
   
   所以要建立自己的索引库. 
   建立连接 命令:  pod repo add EWTPodspec http://git.mistong.com/zhaoweizheng/EWTPodspec.git  如下图(建立连接)

==查看本地索引库==

iOS组件化之 一. 打造远程私有库(准备工作)_第1张图片
image

==建立连接==

iOS组件化之 一. 打造远程私有库(准备工作)_第2张图片
image

至此, Spec Repo 创建完成

2. 创建pod私有库

以OC为开发语言, 把常用分类工具类的扩展做成一个私有库, 当然项目中要把独立模块做成私有库, 下一篇文章再详细介绍组件化的概念, 以及项目的拆分.

1. ➜  ~ cd /Users/zwz/Desktop/mistong/EWTPodspec 在EWTPodspec目录下做本地库,比如扩展, 基类, 网络等等私有库, 
   并在gitLab上建立相应的私有库, 通pod 命令把这些私有库push到EWTPodspec索引库内, 这样就可以pod到相应的私有库.
    
  首先, 在到EWTPodspec目录下创建私有库模板 命令: pod lib create EWTBases  (图: 模板库)
  

==模板库==

iOS组件化之 一. 打造远程私有库(准备工作)_第3张图片
image
2. 在模板项目目录Development Pods/EWTBases/EWTBases/Classes添加你的私有库, 此处我添加Category 和 Tool (图: 目录)

==目录==

iOS组件化之 一. 打造远程私有库(准备工作)_第4张图片
image
3. 命令行切换到 Example 的目录下 cd /Users/zwz/Desktop/mistong/EWTPodspec/EWTBases/Example/ 
   执行 pod update 把私有库先添加到模板项目中. 并测试这些私有库没问题.

4. 在gitLab上创建私有库EWTBases, 配置.posdspec文件(图: posdspec),  并把模板上传到EWTBases,同时设置EWTBases的版本号, 与配置文件中的版本号一致(图: 上传)
如果是选择的Swift版本 需要在根目录下执行 : $ echo "3.0" > .swift-version  添加Swift的版本号

==图: posdspec==

iOS组件化之 一. 打造远程私有库(准备工作)_第5张图片
image

==图: 上传==

iOS组件化之 一. 打造远程私有库(准备工作)_第6张图片
image

iOS组件化之 一. 打造远程私有库(准备工作)_第7张图片
image
5. 校验私有库是否正确: pod lib lint --allow-warnings (图: lib) 把私有库路径上传到索引库:  pod repo push EWTPodspec EWTBases.podspec (图: 上传索引库), 同时在本地   /用户/zwz/.cocoapods 目录下有EWTBases私有库的版本 (图: 路径)

==图: lib==

iOS组件化之 一. 打造远程私有库(准备工作)_第8张图片
image

==图: 上传索引库==

iOS组件化之 一. 打造远程私有库(准备工作)_第9张图片
image

==图: 路径==

image
6. pod search EWTBases (图: ewtbases)
   如过search 不到, 先执行 rm ~/Library/Caches/CocoaPods/search_index.json 之后再 pod search EWTBases 

==图: ewtbases==

iOS组件化之 一. 打造远程私有库(准备工作)_第10张图片
image

二. 使用远程私有库

新建项目EWTDemo, 在EWTDemo目录下初始化pod:pod init

编写 Podfile文件, (图: podfile) 保存, 执行命令: pod install

==图: podfile==

iOS组件化之 一. 打造远程私有库(准备工作)_第11张图片
image

使用 EWTBases

iOS组件化之 一. 打造远程私有库(准备工作)_第12张图片
image

三. 创建子库

项目中可以创建多个私有库, 但是当文件较少, 且职责相同的情况下都会放到相同的私有库中, 比如上面的创建的EWTBases, 但是当我们使用的时候, 就需要把EWTBases中所有的文件都下载下来, 其中有些我们用不到, 比如: 我们就想仅仅使用EWTBases中的 Tool. 此时就要用到子库这个概念了...

如下图, 重新编写.podspec文件:

iOS组件化之 一. 打造远程私有库(准备工作)_第13张图片
image

保存, 按照上面的步骤上传到索引库, 然后pod search 查看一下,如图会多出两个子库.. 在使用的时候直接在podfile 加入: pod EWTBases/Tool (0.1.3)就可以了

iOS组件化之 一. 打造远程私有库(准备工作)_第14张图片
image

你可能感兴趣的:(iOS组件化之 一. 打造远程私有库(准备工作))