iOS 组件化开发

iOS 组件化开发,第1张

一、概述

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 /xxKitcd  Examplepod 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.检查组件

更新本地CocoaPods仓库(这里也一定要注意,这一步也不可缺少)
pod repo update --verbose搜索刚才制作的组件
pod search xxKit

四、项目使用 

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

借鉴文章: 

iOS组件化开发流程_梦锁清秋的博客-CSDN博客_ios组件化开发
 iOS 组件化开发 完整流程 - 简书
 mac常用命令(cocoapods) - 简书

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/990679.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-21
下一篇 2022-05-21

发表评论

登录后才能评论

评论列表(0条)

保存