简介

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

组件化目的

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

具体实现步骤 :

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


2 创建项目如下图:

iOS开发 组件化中间件 ios组件化开发教程_运维

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

如何添加公钥: ...

4 终端进入你的项目文件

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

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

iOS开发 组件化中间件 ios组件化开发教程_封装_02


5 打开终端,将远程私有库关联到本地

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

示例:

iOS开发 组件化中间件 ios组件化开发教程_封装_03

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

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

示例:

iOS开发 组件化中间件 ios组件化开发教程_xcode_04

7 修改组件的.podSpec文件 可用编辑器打开

示例:

iOS开发 组件化中间件 ios组件化开发教程_运维_05

内容解释

// 设置名称
  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 = {} 组件工程图片资源

iOS开发 组件化中间件 ios组件化开发教程_封装_06

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

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的会遇到错误提示

iOS开发 组件化中间件 ios组件化开发教程_iOS开发 组件化中间件_07

解决方案:

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

10 将验证通过的.podSpec文件加入到本地私有索引库,并上传到远程私有索引库

示例:

iOS开发 组件化中间件 ios组件化开发教程_iOS开发 组件化中间件_08