irpas技术客

iOS 组件化开发_wumu_Love_ios 组件化开发

网络投稿 919

一、概述

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) - 简书


1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,会注明原创字样,如未注明都非原创,如有侵权请联系删除!;3.作者投稿可能会经我们编辑修改或补充;4.本站不提供任何储存功能只提供收集或者投稿人的网盘链接。

标签: #iOS #组件化开发 #iOS组件化开发