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 如下图(建立连接)
==查看本地索引库
==
==建立连接
==
至此, Spec Repo
创建完成
2. 创建
pod
私有库
以OC为开发语言, 把常用分类
和工具类
的扩展做成一个私有库, 当然项目中要把独立模块做成私有库, 下一篇文章再详细介绍组件化的概念, 以及项目的拆分.
1. ➜ ~ cd /Users/zwz/Desktop/mistong/EWTPodspec 在EWTPodspec目录下做本地库,比如扩展, 基类, 网络等等私有库,
并在gitLab上建立相应的私有库, 通pod 命令把这些私有库push到EWTPodspec索引库内, 这样就可以pod到相应的私有库.
首先, 在到EWTPodspec目录下创建私有库模板 命令: pod lib create EWTBases (图: 模板库)
==模板库
==
2. 在模板项目目录Development Pods/EWTBases/EWTBases/Classes添加你的私有库, 此处我添加Category 和 Tool (图: 目录)
==目录
==
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
==
==图: 上传
==
5. 校验私有库是否正确: pod lib lint --allow-warnings (图: lib) 把私有库路径上传到索引库: pod repo push EWTPodspec EWTBases.podspec (图: 上传索引库), 同时在本地 /用户/zwz/.cocoapods 目录下有EWTBases私有库的版本 (图: 路径)
==图: lib
==
==图: 上传索引库
==
==图: 路径
==
6. pod search EWTBases (图: ewtbases)
如过search 不到, 先执行 rm ~/Library/Caches/CocoaPods/search_index.json 之后再 pod search EWTBases
==图: ewtbases
==
二. 使用远程私有库
新建项目EWTDemo
, 在EWTDemo目录下初始化pod:pod init
编写 Podfile文件, (图: podfile) 保存, 执行命令: pod install
==图: podfile
==
使用 EWTBases
三. 创建子库
项目中可以创建多个私有库, 但是当文件较少, 且职责相同的情况下都会放到相同的私有库中, 比如上面的创建的EWTBases
, 但是当我们使用的时候, 就需要把EWTBases
中所有的文件都下载下来, 其中有些我们用不到, 比如: 我们就想仅仅使用EWTBases中的 Tool
. 此时就要用到子库这个概念了...
如下图, 重新编写.podspec文件:
保存, 按照上面的步骤上传到索引库, 然后pod search 查看一下,如图会多出两个子库.. 在使用的时候直接在podfile 加入: pod EWTBases/Tool (0.1.3)就可以了