iOS 组件化开发

一、概述

Trunk账号

1.认证CocoaPods API的服务
2.用来管理公共仓库中的自己的组件

索引文件(.podspec文件)

1.记录一个组件的名称/版本/资源储存路径/维护者信息等
2.每个组件都必须有一个索引文件

索引库(Spec Repo)

1.存放索引文件的仓库
2.储存在CocoaPods服务器上,我们下载或更新Pod的时候会把这个仓库拷贝一份到本地,本地存放路径:~/.cocoapods/repos
3.CocoaPods提供一个公共索引库,储存在本地的路径为:~/.cocoapods/repos/master
4.我们可以创建私有索引库,储存在本地的路径为:~/.cocoapods/repos/自定义索引库名 (本文也会带领大家去创建自己的索引库)

组件模板 (pod lib create [组件名])

1.CocoaPods提供用于快速创建组件的模板
2.里边可以制作我们的代码,可以做单元测试等,包含一个对应的索引文件
3.组件化就是以这个模板为基础,制作自己的组件


二、具体操作

索引库

1.创建私有索引库

  • 在Git 上创建一个私有的仓库 (xxSpecs)
  • 打开终端cd到桌面目录下:
    cd Desktop
  • 终端输入:
  • pod repo add xxSpecs[本地索引库名称]   " 所建仓库地址"
  • 之后输入远端Git仓库的账号和密码

2.检查是否安装成功

  • cd 到新建索引库
    cd ~/.cocoapods/repos/xxSpecs
  • 验证索引文件仓库
    pod repo lint .
    至此索引库就创建完成

3.注册trunk

  • 首先查看是否注册过,命令如下:
  • pod trunk me
  • 如果没有注册,使用如下命令进行注册:
  • pod trunk register '邮箱地址' '用户名'
  • 然后您的邮箱会受到一条信息,点击其中的链接进行验证,这样既完成注册了
  • 接着您就可以操作如下命令进行查看:
  • pod trunk me

4.下载并创建组件模板

  • Github创建一个远程组件仓库 (xxKit)
  • 打开终端cd到桌面目录下:
    cd Desktop
  • 下载组件模板并设置组件名(这里组件名一定要与 远程仓库名称一致)
  • pod lib create xxKit
  • 组件基本设置

// 使用哪种系统的模板
What platform do you want to use?? [ iOS / macOS ]
ios
// 使用哪种语言
What language do you want to use?? [ Swift / ObjC ]
objc
// 是否创建测试Demo
Would you like to include a demo application with your library? [ Yes / No ]
yes
// 使用哪种测试框架
Which testing frameworks will you use? [ Quick / None ]
None
// 是否需要测试视图
Would you like to do view based testing? [ Yes / No ]
yes
// 测试Demo的类前缀
What is your class prefix?
XX

输入完成电脑桌面将自动创建一个名为 xxKit 的Git组件仓库(仓库里面会包含一个名为:xxKit.podspec 的索引文件)

5. 在组件模版里编写自己的代码

在创建的组件模版下面,有个classes文件,删除replace文件,把自己写好的类,拷贝到这里面来:

 修改.specs文件

​​​​​​​

 

s.name 私有库的名字
s.version 私有库的版本:管理代码库的版本,这个是和git平台代码对应的tag版本是一一对应的
s.summary 私有库概要
s.description 描述
s.license 许可证
s.author 创建库的用户
s.source 代码在 gitLab上存储的地址,也就是远程仓库
s.ios.deployment_target 这个库最低可以安装的平台
s.source_files 存储代码文件的路径
s.resource_bundles 存储图片的路径
s.frameworks 代码中需要用到的 framework
s.dependency 依赖的第三方库

打开终端 

  • cd 到桌面xxKit 目录下

  • cd /xxKit
  • cd  Example
  • pod install

6. 把做好的组件推送到自己的组件仓库

  • cd 到桌面xxKit 目录下
    cd /xxKit
  • 添加代码到git缓存区
    git add .
  • 提交一个缓存区代码
    git commit -m "xxKit组件初始化"
  • 关联Github的远程组件仓库
  • git remote add origin "远程仓库地址" (注意:如果需要修改远程仓库的地址使用命令: git remote set-url origin "远程仓库地址")
  • 推送版本到master分支(-f强制推送,覆盖掉之前的所有文件)
    git push origin master -f (或者:git push origin master)
  • 添加版本标签(标签号必须与索引文件里的标签号一致)
    git tag 0.1.0
  • 标签推送到组件仓库
    git push --tags
  • 验证本地索引
    pod lib lint --allow-warnings(--allow-warnings 可以忽略警告)
  • 验证远程索引文件
    pod spec lint xxKit.podspec --verbose
获取tag列表
git tag
删除tag
git tag -d "tag名称"

提交删除tag
git push origin: "tag名称"

三、关联远程cocopods 

1. 制作好的组件关联CocoaPods服务器刚才创建的私有索引库

  • cd 桌面组件xxKit目录下
    cd /xxKit
  • 推送组件的索引文件到服务器,并告诉服务器存在哪个私有仓库中
  • pod repo push "本地索引库名称" xxKit.podspec --allow-warnings
  • 查看本地的CocoaPods仓库(可看到公共库和自己的私有库)
    pod repo

2.检查组件


四、项目使用 

1.新建一个项目工程,并添加Pod

2.配置Podfile文件

  • 文件中导入索引库可不指定组件路径,依照索引库中最新的tag更新组件

    source 'https://github.com/zhanghua19860221/xxSpecs.git'
    pod 'xxxKit'(可不指定分支)
    
  • 文件中不导入索引库 根据配置路径更新组件

    pod 'xxKit', :git => 'https://github.com/zhanghua19860221/xxKit.git', :branch => 'master_0803'(可指定分支)
    

五、cocopods常用命令

1.查看镜像:gem sources -l
2.查看pod版本:pod --version
3.查看repo:pod repo
4.安装pod:sudo gem install cocoapods
5.卸载pod:sudo gem uninstall cocoapods
6.重置代理:git config --global --unset http.proxy
7.git config --global --unset https.proxy
8.查看ruby:ruby --version
9.编辑host:sudo vim /etc/hosts
10.查看本地安装过的cocopods相关东西:gem list --local | grep cocoapods
11.删除cocoapods-core:sudo gem uninstall cocoapods-deintegrate
12.删除cocoapods-downloader:sudo gem uninstall cocoapods-downloader
13.删除cocoapods-plugins:sudo gem uninstall cocoapods-plugins
14.删除cocoapods-search:sudo gem uninstall cocoapods-search
15.删除cocoapods-trunk:sudo gem uninstall cocoapods-trunk
16.删除cocoapods-try:sudo gem uninstall cocoapods-try
17.只想单独更新某个第三方到本地Cocoapods库中最新版本,不更新其他本地第三方:pod update 第三方名字 --verbose --no-repo-update
例如:pod update AFNetworking --verbose --no-repo-update
18.只想给项目添加新的第三方,不更新本地已经存在的第三方:pod install --verbose --no-repo-update

借鉴文章: 

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

wumu_Love

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值