热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

手把手教你实现组件化(一)

简介本篇文章主要是针对苹果端组件化的思想讲解,从零开始一步一步教你如何实现组件化,本章介绍如何创建远程索引库和本地索引库。组件化目的第一:让你轻松调用团队其他成员的组件,分离依赖性

简介

本篇文章主要是针对苹果端组件化的思想讲解,从零开始一步一步教你如何实现组件化,本章介绍如何创建远程索引库和本地索引库。

组件化目的

第一:让你轻松调用团队其他成员的组件,分离依赖性比较强的模块。
第二:降低维护成本,各人维护各人模块,互不影响。
比如你写了一个下拉菜单控件,你封装后,其他人如果想调用,一般采用的办法是把你封装的代码拿过来,导入到项目中,现在采用组件化就是封装后上传到第三方托管处(可加密可公开),用Cocopod直接在podfile中导入文件名称,更新,就可以使用该模块。

具体实现步骤 :

1 登录你的码云账号 或者Github账号

https://gitee.com/login

2 创建项目如下图:

《手把手教你实现组件化(一)》

3 复制远程索引库地址HTTPS或者SSH地址 使用SSH的方式 需要在仓库添加你的公钥,如何添加请参考以下博客:

如何添加公钥:
http://blog.csdn.net/huang351…

4 终端进入你的项目文件

1 cd 你的项目主目录绝对路径
2 pod lib create XX

注意 :
1 xx 你自己封装的组件模块名称
2 你的项目主目录是指和你项目同级的目录
示例:

《手把手教你实现组件化(一)》
5 打开终端,将远程私有库关联到本地

1 cd 你的项目绝对路径
2 pod repo add XXSpec 粘贴你刚才复制的https地址

示例:
《手把手教你实现组件化(一)》

注意 :
1 项目绝对路径 可以采用拖拽的方式直接添加到终端
2 上述命令执行完后可以进入 /用户/XX/.cocoapods/repos 可以发现多了一个LTSpec文件夹,这里就是我们用来存放组件的.podSpec文件的。

6 将自己封装的模块拷贝到创建的模板工程中

示例:
《手把手教你实现组件化(一)》

7 修改组件的.podSpec文件 可用编辑器打开
示例:
《手把手教你实现组件化(一)》

内容解释

// 设置名称
s.name = "Test"
// 设置版本号
s.version = "0.0.1"
// 设置摘要
s.summary = "A short description of HttpManager."
// 设置详情
s.description = "Good"
// 设置仓库主页
s.homepage = ""
// 设置许可证
s.license = "MIT"
// 设置作者
s.author = { "iThinkerYZ" => "690423479@qq.com" }
// 设置仓库源,表示在哪可以找到组件工程
s.source = { :git => "", :tag => "#{s.version}" }
// 设置 源文件路径 => 不是整个工程的文件,而是自己封装的代码,以后别的工程引入,就会引入这里的代码。
s.source_files = "HttpManager/Classes/**/*.{h,m}"
// s.dependency = '' 组件工程依赖哪些第三方框架
// s.frameworks = 'UIKit', 'MapKit' 组件工程依赖哪些原生框架
// s.resource_bundles = {} 组件工程图片资源

《手把手教你实现组件化(一)》

注意:这里面的 仓库源一定有填写正确,否则后续会提交不成功!

8 终端命令

1 cd 你的封装模块文件夹
2 git add .
3 git tag '0.1.0'
4 git remote add origin *SSH地址*
5 git push -u origin master
6 git push --tag

9 对文件进行本地验证和远程验证

1 pod lib lint --private
2 pod repo push LTSpec Test.podspec
3 pod search Test

注意:
1 安装两个Xcode的会遇到错误提示

《手把手教你实现组件化(一)》

解决方案:

sudo xcode-select -switch /Applications/Xcode.app/Contents/Developer

10 将验证通过的.podSpec文件加入到本地私有索引库,并上传到远程私有索引库
示例:
《手把手教你实现组件化(一)》

参考链接 :

https://baijiahao.baidu.com/s…

https://mp.weixin.qq.com/s/wE…

欢迎吐槽: 804774355@qq.com


推荐阅读
  • 本文详细解析了JavaScript中相称性推断的知识点,包括严厉相称和宽松相称的区别,以及范例转换的规则。针对不同类型的范例值,如差别范例值、统一类的原始范例值和统一类的复合范例值,都给出了具体的比较方法。对于宽松相称的情况,也解释了原始范例值和对象之间的比较规则。通过本文的学习,读者可以更好地理解JavaScript中相称性推断的概念和应用。 ... [详细]
  • STL迭代器的种类及其功能介绍
    本文介绍了标准模板库(STL)定义的五种迭代器的种类和功能。通过图表展示了这几种迭代器之间的关系,并详细描述了各个迭代器的功能和使用方法。其中,输入迭代器用于从容器中读取元素,输出迭代器用于向容器中写入元素,正向迭代器是输入迭代器和输出迭代器的组合。本文的目的是帮助读者更好地理解STL迭代器的使用方法和特点。 ... [详细]
  • 向QTextEdit拖放文件的方法及实现步骤
    本文介绍了在使用QTextEdit时如何实现拖放文件的功能,包括相关的方法和实现步骤。通过重写dragEnterEvent和dropEvent函数,并结合QMimeData和QUrl等类,可以轻松实现向QTextEdit拖放文件的功能。详细的代码实现和说明可以参考本文提供的示例代码。 ... [详细]
  • 开发笔记:加密&json&StringIO模块&BytesIO模块
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了加密&json&StringIO模块&BytesIO模块相关的知识,希望对你有一定的参考价值。一、加密加密 ... [详细]
  • 目录实现效果:实现环境实现方法一:基本思路主要代码JavaScript代码总结方法二主要代码总结方法三基本思路主要代码JavaScriptHTML总结实 ... [详细]
  • Metasploit攻击渗透实践
    本文介绍了Metasploit攻击渗透实践的内容和要求,包括主动攻击、针对浏览器和客户端的攻击,以及成功应用辅助模块的实践过程。其中涉及使用Hydra在不知道密码的情况下攻击metsploit2靶机获取密码,以及攻击浏览器中的tomcat服务的具体步骤。同时还讲解了爆破密码的方法和设置攻击目标主机的相关参数。 ... [详细]
  • 使用Ubuntu中的Python获取浏览器历史记录原文: ... [详细]
  • XML介绍与使用的概述及标签规则
    本文介绍了XML的基本概念和用途,包括XML的可扩展性和标签的自定义特性。同时还详细解释了XML标签的规则,包括标签的尖括号和合法标识符的组成,标签必须成对出现的原则以及特殊标签的使用方法。通过本文的阅读,读者可以对XML的基本知识有一个全面的了解。 ... [详细]
  • 不同优化算法的比较分析及实验验证
    本文介绍了神经网络优化中常用的优化方法,包括学习率调整和梯度估计修正,并通过实验验证了不同优化算法的效果。实验结果表明,Adam算法在综合考虑学习率调整和梯度估计修正方面表现较好。该研究对于优化神经网络的训练过程具有指导意义。 ... [详细]
  • 本文介绍了Oracle存储过程的基本语法和写法示例,同时还介绍了已命名的系统异常的产生原因。 ... [详细]
  • 微信官方授权及获取OpenId的方法,服务器通过SpringBoot实现
    主要步骤:前端获取到code(wx.login),传入服务器服务器通过参数AppID和AppSecret访问官方接口,获取到OpenId ... [详细]
  • 安装oracle软件1创建用户组、用户和目录bjdb节点下:[rootnode1]#groupadd-g200oinstall[rootnode1]#groupad ... [详细]
  • 微信商户扫码支付 java开发 [从零开发]
    这个教程可以用作了解扫码支付的整体运行过程,已经实现了前端扫码,记录订单,回调等一套完整的微信扫码支付。相关链接:微信支 ... [详细]
  • JVS快速开发框架2.1.4版本更新功能说明,请收下
    JVS快速开发框架2.1.4版本更新功能说明,请收下-经过开发同学这段时间马不停蹄的赶工期,JVS终于迎来了大家期待的2.1.4版本,以下是本次更新的所有内容,一起来看看吧~~~表 ... [详细]
  • Android native层服务例子Bp和Bn
    转入android阵地,被各种权限所阻挠,app写个jni各种没有权限,只能开个native服务,本来android的服务& ... [详细]
author-avatar
飞龙在天2602911735
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有