美文网首页
组件化开发

组件化开发

作者: 小白甜 | 来源:发表于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就能搜索出自己的组件了

    相关文章

      网友评论

          本文标题:组件化开发

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