1. 在公司服务器上创建一个 :xxxSpec 的仓库,用于存放模块化推送的tag版本
# 对应地址:http://255.109.111.000/xxxSpec.git
- 我这里创建的名字为:IsoftStoneSpecs,目前存放的是BasicModule的内容
![]()
2. 将刚刚新建的xxxSpec 的仓库,配置一下:
# 查看有多少repo
$ pod repo
# 添加repo
$ pod repo add 名字 仓库路径
# 删除repo
$ pod repo remove isoft-stone-specs
- 没有添加xxxSpec的时候,如下:
![]()
- 添加xxxSpec的时候,如下:
![]()
- 删除xxxSpec的时候,如下:
![]()
3. 创建模块(组建)库
# 例如:BasicModule
# 对应地址:https://***/NWCBCX_IsoftstoneModules/basicmoduleios.git
$ pod lib create 名字
- cd 到一个文件夹,我是在桌面上:cd desktop ,然后:pod lib create BasicModule, 执行完之后,创建了截图中左边的工程
![]()
4. 刚刚创建的BasicModule提交到仓库
- 将截图中这3个隐藏文件删除掉
![]()
- 在公司的仓库上建立一个BasicModule的代码仓,然后checkout到本地,将刚刚通过pod lib create创建的BasicModule放入到代码仓中
![]()
- 在Example中写代码,调试完成之后将核心代码copy到—Pods下的BasicModule--Classes文件夹下,放完后,如下:
![]()
- 修改.podspecs文件,主要是.version 和 .source,.source对应 模块源码仓地址。新建的项目,首次打开的时候,如下:
- s.version 版本号 改为 0.0.1
- s.summary 这个模块的具体描述,如:基础模块-自定义导航条、常量以及对于网络请求的二次封装等
- s.homepage = 'https://github.com/linghuj/BasicModule' 改为 私仓的仓库地址 http://***/isoftstonemodules/BasicModule
- s.source = { :git => 'https://github.com/linghuj/BasicModule.git', :tag => s.version.to_s } 改为:git => 'http://***/isoftstonemodules/BasicModule.git'
- 修改完之后,如下,记得保存:
![]()
- 将代码更新到 模块存储 代码仓,注意要打tag与version一致
# 提交代码
$ git add .
$ git commit -m "添加基础模块代码"
$ git push --set-upstream origin develop
# 打tag
$ git tag 0.0.1
$ git tag -a '0.0.1' -m '描述' // 添加tag
$ git push --tags

5. 校验xxxSpec文件
$ pod lib lint --allow-warnings
$ pod spec lint --sources="cocoapods库地址,私有库远程地址" --use-libraries --allow-warnings
# 这个就是上面的具体版
$ pod spec lint --sources="https://maggitlab.isoftstone.com/NWCBCX_IsoftstoneSpecs/globalchallenge.git,https://mirrors.tuna.tsinghua.edu.cn/git/CocoaPods/Specs.git" --use-libraries --allow-warnings
- 暂时没用到三方库,执行pod lib lint --allow-warnings 成功如下:
![]()
- 用到的三方库的检验如下:
![]()
6. 将xxxSpec文件推送到远端
$ pod repo push isoft-stone-specs BasicModule.podspec
- 推送成功如下:
![]()
7. 推送成功之后,可以搜索当前库
$ pod search BasicModule<库名>
$ pod repo update
- 如果pod search,没有搜到,可以尝试更新:pod repo update ;成功如下:
![]()












