制作cocoapods 私有库
2018-09-14 本文已影响19人
诺宇
公司业务不断的发展,需要各个业务部门配合开发相关模块,公司不止有一个产品,当项目达到两个及以上的时候,就需要考虑代码的共用(理想情况下)。由于我们公司特殊情况(懒),原来做项目的时候没有考虑这么多,由于公司新项目与原来的项目有大量功能相似,当时我们就采用了创建新分支的形式创建了新项目,导致代码耦合性非常强,平常开发中遇到很多问题,比如:
- 有些代码可能这个项目需要,那个项目不需要
- 分支切换太过频繁
- 创建了大量分支
- 在这个分支上开发的时候,测试需要另一个项目的包,需要来回切换
。。。等等
此时git 版本管理起来会显得比较吃力,经过研究我们可以通过创建cocoapods 私有库来管理我模块的代码
创建私有 Spec Repo
- 首先我们需要在公司git服务上创建一个私有库来托管Spec Repo,执行命令
/*
xxx 私有spec repo 名称
xxxx 创建的git 仓库的地址
*/
pod repo add xxx xxxx
/*
查看所有spec repo 列表
*/
pod repo list
创建一个git 仓库管理项目代码
- 克隆项目到本地指定文件夹A
git clone xxxx
- 在文件夹A下创建工程,并进入工程项目下,创建cocopods配置文件
pod spec create xxx
xxx.podspec 文件各字段含义
name:框架名
version:当前版本(注意,是当前版本,假如你后续更新了新版本,需要修改此处)
summary:简要描述,在pod search ZCPKit的时候会显示该信息。
description:详细描述
homepage:页面链接
license:开源协议
author:作者
source:源码git地址
platform:支持最低ios版本
source_files:源文件(可以包含.h和.m)
public_header_files:头文件(.h文件)
resources:资源文件(配置的文件都会被放到mainBundle中)
resource_bundles:资源文件(配置的文件会放到你自己指定的bundle中)
frameworks:依赖的系统框架
vendored_frameworks:依赖的非系统框架
libraries:依赖的系统库
vendored_libraries:依赖的非系统的静态库
dependency:依赖的三方库
- 在podspec写好之后我们需要验证一下编写的内容是否有误。可以在命令行的三方库当前路径下使用下面的命令:
pod lib lint (从本地验证你的pod能否通过验证)
pod spec lint (从本地和远程验证你的pod能否通过验证)
pod lib lint --verbose (加--verbose可以显示详细的检测过程,出错时会显示详细的错误信息)
pod lib lint --allow-warnings (允许警告,用来解决由于代码中存在警告导致不能通过校验的问题)
pod lib lint --help (查看所有可选参数,可选参数可以加多个)
- 验证成功后,我们把代码提交到git仓库, 参考如下命令
git add .
git commit -m 'first add pod files'
git tag -a 0.0.1
git push --tags
git push master
- 我们将创建的podspec 提交到 spec Repository 执行 命令
pod repo push xxx xxx.podspec
- 使用说明podifle文件
建立后修改 Podfile 文件内容如下:
source 'https://github.com/CocoaPods/Specs.git' #官方仓库地址
source ‘http://njGitrepo/wushuanghong/wshSpecs.git’ #私有仓库地址
use_frameworks!
target 'TestPodDemo' do
pod ‘xxx’
end