ios-组件化(模块化)开发

- 实现组件化开发有哪几种方式?
  • 通过静态库。
  • 通过xcode创建多个子项目,最后合并成一个项目。
  • 创建一个私有库,通过cocoaPods插件管理。

上面几种方式都可以完成组件化开发,但是前面2种一般基于本地开发,不利于团队合作,和版本更新。所以我选择了最后一种方式,实现远程组件开发。(最后一种也可以实现本地组件)。

- 前期准备
  • cocoaPods安装,和基本使用。
  • 远程代码仓库注册,环境搭建。

github:私仓收费,公仓免费(国外)。
码云:免费(国内)。
码市:免费(国内)。
本屌作为一个拥有强烈的爱国主义情怀的小小码农,当然毫不犹豫选择了码云。(主要是不要钱)。

第一次使用git记得设置名字和邮箱呀。(非常重要)

git config --global user.name "John Doe"
git config --global user.email johndoe@example.com
一:创建远程私有库索引文件,用来存放私有库的详细描述信息.podspec文件。
来源在文章最下面参考中有
二:创建远程私有库源码仓库,用来存放私有库源码。
来源在文章最下面参考中有
三:创建带.pod文件的工程
pod lib create MyProjectBase

之后会有一些选项,使用语言,文件前缀,是否使用测试什么的,自己看着填下吧。(不重要)。

创建完成后,会自动打开一个目录如下的项目:
xcode目录
  • 把下图中的文件替换成你自己编写的组件代码文件。


    来源在文章最下面参考中有
  • 然后进入Example文件夹(注意,要先cd到Example文件夹呀,不要搞错路径了)
执行:pod update --no-repo-update

成功之后,就能在pods子工程下看见你添加的文件了。

四:编辑配置信息文件
854d4eb8-c7cf-4e4a-92a7-246f8818c2f9.png

854d4eb8-c7cf-4e4a-92a7-246f8818c2f9.png

s.homepage 有就写,没有写http://www.baidu.com也可以。
s.source 地址就是你最开始在码云创建的源码仓库地址。

  • 对本地库进行校验(验证上一步编辑的 MyProjectBase.podspec文件)
    pod spec lint --allow-warnings

出现MyProjectBase passed validation. 则说明验证通过。如果失败,仔细检查配置文件是否出错。

五:本地文件和远程仓库关联
  • 提交本地代码到远程仓库
git status
git add .
git commit -m '编辑spec文件'
git remote add origin [https://git.oschina.net/funky_hs/myprojectbase.git](https://git.oschina.net/funky_hs/myprojectbase.git) (将本地库与远程代码仓库进行关联)
git push origin master  (提交到远程仓库)
git tag '0.1.0' (要与MyProjectBase.podspec文件中的tag值保持一致)
git push --tags(将tag提交到远程)
pod spec lint --allow-warnings(验证远程是否正确,注意:Username与Password一定要填写正确)

MyProjectBase.podspec passed validation.
表明验证通过

  • 将podspec文件提交到本地的私有索引库
pod repo add MyProjectSpec  https://git.oschina.net/funky_hs/myprojectbase.git
pod repo
854d4eb8-c7cf-4e4a-92a7-246f8818c2f9.png
  • 提交
pod repo push MyProjectSpec MyProjectBase.podspec
成功
六:使用制作好的pod
  • 新建项目
cd到项目根目录下。
执行:pod init
  • 修改Podfile文件如下:


    成功
执行:pod install

感言:
以上就是搭建一个远程仓库的基本步骤,看起来有点多,第一次搭建确实有点麻烦。但搭好之后,使用起来那酸爽,自己慢慢体会吧。

参考:
http://www.cnblogs.com/hs-funky/p/6780203.html
http://www.jianshu.com/p/ce9941015123
http://www.jianshu.com/p/9e2c7a7c1211

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 最近在学习vue.js的时候发现,vue的组件化的思想对于编写代码是一个非常有用的事情。 首先为什么需要组件化? ...
    拂晓的云阅读 7,266评论 6 23
  • 前言 本篇主要讲解组件化架构思想,从零教你如何组件化一个项目。 如果喜欢我的文章,可以关注我微博:袁峥Seemyg...
    袁峥阅读 21,269评论 41 339
  • 首先,也许有人觉得,开发使用远程私有库很麻烦,还不如直接写好,拖到项目中直接使用来的方便。可我想说的是,在一个小的...
    悠闲自在的蜗牛阅读 2,234评论 0 10
  • 走出无尽沧桑 步入平淡如常 饮下陈年老酒 敬我三寸愁肠 名利转瞬即逝 不如梦回今朝 安然度过一生 守我一方渔场
    James琦景阅读 281评论 2 2
  • 一段闲暇的时光,一种经典的体验。足不出户,正好追剧!2017暑期档可谓好剧群出,小编从众多剧集里精选出五大“神剧”...
    春水微澜阅读 159评论 3 4