美文网首页
组件化开发

组件化开发

作者: 小白甜 | 来源:发表于2018-11-29 11:08 被阅读0次

关于组件化放到cocopoad仓库的流程及步骤码云为例子

1、码云仓库创建一个仓库地址例:YYOUCarKnowledgeComponent,跟平时创建代码仓库一样,复制好仓库地址

2、打开终端到当前用户,将远程仓库关联到本地 cd-->.cocoapods-->repos查看镜像下的文件

执行命令:pod repo add YYOUCarKnowledgeComponent(创建的仓库的项目名) https://gitee.com/****/YYOUCarKnowledgeComponent.git(刚才复制的项目地址)

再次去查看一下cocopoad文件下的内容/Users/**/.cocoapods/repos

会发现多了一个YYOUCarKnowledgeComponent文件

3、新建本地私有代码仓库

(一)、cd到指定的目录,Users/***/YYOUCarComponentLibrary,这个YYOUCarComponentLibrary是自己创建的一个文件目录

创建自己想要封装的组件的名称 根据功能和需求来定

pod lib create YYOUCarKnowledgeComponent

执行该命令后会出现一系列设置 我的设置如下

What platformdoyou want to use?? [ iOS / macOS ]>iOS

开发语言设置,根据自己而定,这里为ObjC

What languagedoyou want to use?? [ Swift / ObjC ]>ObjC

//是否需要创建一个demo用来测试你的组件,这里选择Yes,是为了之后对写好的组件进行测试

Would you like to include a demo applicationwithyour library? [ Yes / No ]>Yes

//测试框架

Which testing frameworks will you use? [ Specta / Kiwi / None ]>None

//是否要做基础的视图测试

Would you like todoview based testing? [ Yes / No ]>No

//文件前缀

What is yourclassprefix?>YYOUCar

以上步骤创建完成之后,项目会自动打开 打开项目的层级结构如下图

打开项目的层级目录

在项目的finder里找到如图的目录结构,替换replaceMe,为自己需要封装的代码,路径地址如下

替换路径

去码云创建代码仓库YYOUCarKnowledgeComponentCode

创建好代码仓库后,回项目设置相关配置,所有配置的设置在.podspec 所需陪住严格按照下图

配置版本号 配置仓库首页地址以及仓库地址

前面步骤完成之后,将这个组件提交到码云

远程私有库代码仓库

一定要cd到工程目录下 然后把本地的代码提交到远程仓库

cd cd/Users/**/YYOUCarComponentLibrary/YYOUCarKnowledgeComponent

git remote add origin https://gitee.com/****/YYOUCarKnowledgeComponentCode.git

git push -u origin master#第一次可能会报错可尝试用 git push -u origin master -f 可能会覆盖远程的修改

git add .#记得后面一定要有 .(此步骤容易报错,导致后续路径不正确,注意解决)

git commit -m"创建我的组件"

git push -u origin master

git tag '1.0.0' #注意:这里的tag号必须和.podSpec文件的版本号一致

git push --tags

cd到工程目录下 对文件进行本地验证和远程验证

从本地验证你的pod能否通过验证

pod lib lint  --use-libraries --allow-warnings(命令行之间有空格的)

--verbose:有些非语法错误是不会给出错误原因的,这个时候可以使用--verbose来查看详细的验证过程来帮助定位错误。

--use-libraries:表示使用静态库或者是framework,这里主要是解决当我们依赖一些framework库后校验提示找不到库的时候用到。

--allow-warnings:表示允许警告

验证成功会出现如下图

本地验证pod成功

如果本地验证不成功,报错类似“ ERROR | [iOS] unknown: Encountered an unknown error (Unable to find a specification for `YYOUCarCommonComponent` depended upon by `YYOUCarKnowledgeComponent`”依赖的组件找不到之类的错误,在pod lib lint  --use-libraries --allow-warnings时加上引用的组件的远程仓库地址,cocopoad源的组件地址,如下:pod spec lint --sources='http://10.180.4.226/Candy/YYOUCarCommonComponent.git,https://github.com/CocoaPods/Specs.git' --use-libraries --allow-warnings--verbose 再次本地验证即可,远程验证也是如此

同样在工程目录下,验证远程的pod看能否通过

pod spec lint --use-libraries --allow-warnings(命令行之间有空格)

本地远程验证pod通过

将spec文件提交到本地的私有仓库 然后再push到远程仓库

在项目工程目录下

pod repo push YYOUCarCommonCategory(之前在码云仓库创建的pod私有库名称不是创建的代码仓库时的项目名称)CommonCategory.podspec --use-libraries --allow-warnings

push到远程仓库

再去看.cocoapods/repos/YYOUCarCommonCategory

里面会有对应的组件文件夹CommonCategory

查看远程私有库如图

码云上私有库

去终端查看自己的似有组件

pod search CommonCategory but 有可能会查不到哟,第一次刚安装成功后pod search 成功了,第二天就搜索不到了,我也不知道为啥,但是不影响正常使用,或许和私有代码仓库有关系,有大神可以指点一二 报错图如下

报错图

项目中的引用

cd到要使用的项目工程目录下 打开该工程的Podfile 

用第一次pod成功后的 pod 命令安装,

注意,要在Podfile中引入,该组件的组件源cocopoad仓库地址,不是引入组件的代码哦,是组件spec仓库的地址,因为我们一开始创建了两个仓库,一个是存放本地cocopoad仓库的私有仓库,一个是本地代码的私有仓库,如果引用错误,会导致安装失败,添加自己的私有源后,回来直接pod install 会报错,原来正常的第三方库,会报找不到,解决办法,把cocoapod的官方source,

cocopoad官方源地址:source 'https://github.com/CocoaPods/Specs.git'

同时加入到Podfile 即可

最后就是pod install 成功,可以正常使用啦

如果后续,再去pod search 搜索不到自己的组件 报错如下:

[!] Unable to find a pod with name, author, summary, or description matching `xxx`

解决方法就是Finder前往资源库去删除缓存中的search_index.json(****修改成你自己电脑路径)

/Users/*****/Library/Caches/CocoaPods删除search_index.json

然后再输入pod search时会重新创建这个search_index.json

此时pod search就能搜索出自己的组件了

相关文章

  • Android组件化和插件化开发

    Android组件化和插件化开发 什么是组件化和插件化? 组件化开发 就是将一个app分成多个模块,每个模块都是一...

  • 滚动栏的开发

    滚动栏的开发 1.组件化在开发之前2.组件化在开发之后 组件库开发流程将控件封装成pod库1.pod lib cr...

  • Android 组件化开发实践

    Android组件化开发实践(一):为什么要进行组件化开发?Android组件化开发实践(二):组件化架构设计An...

  • Android组件化和插件化开发

    Android组件化和插件化开发 什么是组件化和插件化? 组件化开发就是将一个app分成多个模块,每个模块都是一个...

  • Vue组件化开发

    ✍目录总览:(组件化概念、组件注册、数据存放、组件数据共享、组件插槽、使用步骤) 一、组件化概念 1. 组件化开发...

  • Gradle实战——组件化的gradle build优化

    组件化gradle build优化 关于组件化,大家可以看我之前的文章,Android组件化开发实战[https:...

  • Android组件化开发实践笔记

    一、什么是组件化和插件化?   组件化开发就是将一个app分成多个模块,每个模块都是一个组件(Module),开发...

  • 浅谈Android插件化

    如今,插件化与组件化的开发越来越广泛的被我们所使用,尤其是许多大公司。 什么事插件化,什么是组件化呢?组件化开发:...

  • Vue 组件化开发

    组件化开发思想 现实中的组件化思想体现(1)标准(2)分治(3)重用(4)组合 编程中的组件化思想体现 组件化规范...

  • iOS端组件化架构开发与管理

    iOS组件化参考: Casa大神的iOS应用架构谈 组件化方案 组件化架构漫谈 开发管理 得益于Git&Cocoa...

网友评论

      本文标题:组件化开发

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