美文网首页
制作cocoapods 私有库

制作cocoapods 私有库

作者: 诺宇 | 来源:发表于2018-09-14 19:08 被阅读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
    

    参考讲解

    相关文章

      网友评论

          本文标题:制作cocoapods 私有库

          本文链接:https://www.haomeiwen.com/subject/mouogftx.html