美文网首页基于swift的项目组件化
“闪店菜单”组件化系列(一)

“闪店菜单”组件化系列(一)

作者: IGShare | 来源:发表于2018-12-06 17:54 被阅读0次

    标签:「组件化」「Swift」
    作者: vitoPang
    审校: IGShare团队

    使用Trunk上传Cocopods
    Demo参考

    初衷

    • 完成团队KPI 🙃
    • 自己的笔记整理,为后面自己的组件化铺路(这篇会作为之后我的" 我的swift项目组件化之路"的开篇)
    • 分享给想要自制组件的iOS开发初学者,不必在基础工具使用上浪费时间,可以把主要精力放在自己的组件架构上

    概述

    至于什么是Cocopods这里就不介绍了,请坐传送门自行去了解,我门要介绍的是,怎么把你想要提供给广大iOS coder的服务(比如你封装的一些实用组件)放到Cocopods上面去,好让他们方便的集成到自己的项目中去

    用流程图表示如下:(图片来自CocoaPod官方blog

    流程图

    主要来说有以下4个步骤:

    • 把你的项目上传到github
    • 注册trunk
    • 配置PodSpec
    • 推送pod spec文件

    一、上传项目代码

    1、push项目源代码,cd到本地源代码的根目录,执行:

    git add -A

    git commit -m "Initial commit"

    git push origin master

    2、给你的源码打上tag,这是必要的,cocopods需要做的你的tag:

    git tag '1.0.0'

    git push --tags

    二、注册trunk

    trunk需要pod在0.33及以上版本,如果你不满足要求,打开Terminal使用ruby的gem命令更新pod:

    sudo gem install cocoapods

    更新结束后,我们开始注册trunk:

    pod trunk register pangxiangios@163.com '123456' --verbose

    邮箱以及用户名请对号入座。用户名我使用的是Github上的用户名。--verbose参数是为了便于输出注册过程中的调试信息。执行上面的语句后,你的邮箱将会受到一封带有验证链接的邮件,如果没有请去垃圾箱找找,有可能被屏蔽了。点击邮件的链接就完成了trunk注册流程。使用下面的命令可以向trunk服务器查询自己的注册信息:

    pod trunk me

    三、配置PodSpec

    这一步与更换trunk方式前的操作完全一样。什么是podspec描述文件呢?简单地讲就是让CocoaPods搜索引擎知道你的代码的作者、版本号、源代码地址、依赖库等信息的文件。任何支持CocoaPods的开源代码都必须有podspec文件。CocoaPods在github中用一个repo来管理所有支持CocoaPods的开源代码:https://github.com/CocoaPods/Specs

    那如何编写podspec文件呢?官方提供了一个模板并附有非常详细的注释说明。

    建议直接拿一些成熟的开源库的podspec改就行,生成的模板里有很多冗余的属性。你也可以参考我门 Demo 中的 VTToastToolKit.podspec 文件

    这里要注意一点,有时你写的podspec文件在后面push的时候会提示The source_files pattern did not match any file.错误,但是能用pod lib lint命令做本地校验时又是OK的。为什么呢?上述错误的意思是pod在网络上根据你指定的路径找不到相关文件。这时候你要核对网上git仓库的路径与source_files(其他_files字段同理)要对应。*_files字段指的是网络git上的路径

    四、 通过trunk推送pod spec文件

    现在我们开始通过trunk上传你的podspec文件。先cd到podspec文件所在目录,执行:

    pod trunk push VTToastToolKit.podspec

    文件名自行对号入座。上面的代码做了三件事:(可以对着文章开头的流程图看)

    1. 验证你的podspec文件是否合法。在trunk方式之前我们一般用“pod lib lint”命令进行验证。

    2. 上传podspec文件到trunk服务器(其实最终也会自动添加到https://github.com/CocoaPods/Specs中)

    3. 将你上传的podspec文件转成json格式文件

    执行上面的push操作,就相当于你把你的源代码提交给CocoaPods团队审核了。

    注意:更新本地pod依赖

    在trunk push后,先用"pod search"查找一下你的代码,有结果的话就没事;没有的话执行"pod setup"进行本地依赖库更新,再search。


    podspec文件更新方法

    有时你可能会遇到这种情况:执行pod trunk push操作后发现podspec文件的某个地方写错了,想更新一下。对于这种情况,我们可能会先尝试着在把podspec文件push一次。但是如果你的代码版本号没变(podspec里的version自然也没变)就会提示push失败,即使你更改了podspec的其他地方,pod也会认为这两个文件是同一个。 我目前为止找不到trunk的相关update接口,所以只能顺水推舟,更新源代码版本号(如:1.1.1->1.1.2),重新push version tag,然后再执行pod trunk push操作。

    相关文章

      网友评论

        本文标题:“闪店菜单”组件化系列(一)

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