iOS pod组件化

众所周知 当一个app项目足够大时 每个功能点细分出来 可以分成多个子app 例如美团 则是由 美团外卖 猫眼电影 ··· 等等组成  。为了更好的管理应用工程 iOS项目 一般采用的pod组件化解决方案 比较著名的有蘑菇街组件化之路

本文只讲解一下 pod组件化执行步骤

组件化大体思路

框架说明

继续集成:一个主工程(壳工程),包含所有的内容(整个项目),用于发包或打包测试。

基础组件: 不依赖其他任何组件,独立完成功能。主要有:与业务无法的功能(如string或data的加密,category的封装)对第三方库的封装(如AFNetworking,SDWebImage的封装)

业务公用组件:依赖基础组件或UIKit等系统组件,创建业务共同使用的功能(如分享,支付,网络访问)

中间组件:连接业务公用组件和业务组件,及业务组件之间的互相调用。(如Mediator的组件)

业务组件:单独的业务功能,不依赖其他业务组件。

组件化流程

1.在git库中创建自己的代码库和pod文件依赖库 记得添加LICENSE文件 我这里用了开源中国 码云 git库

2. 把代码库git clone到本地  这里借用了SourceTree工具

执行pod repo addJZBLib_iOShttps://git.oschina.net/jzbwlkj/JZBLib_podspecs.git

3 创建一个demo 用来演示组件的用法 创建完挪到chone到本地的代码库中

4 把自己写的组件git库的最外层 必须保证运行无误

5 创建pod所对应的podspec文件  终端cd到本地git代码库pod spec create JZBLib_iOS 创建完成后 用xcode查看(把文件拖到Xcode 即可)

6 把里边的内容都删了 复制一套模版即可  里边内容不明白啥意思的自行百度

s.name= 'JZBLib_iOS'

s.version          = '0.0.1'

s.summary          = 'ios

基础库

'

s.description      = <<-DESC

TODO: Add long description of the pod here.

DESC

s.homepage         = '

https://git.oschina.net/jzbwlkj/JZBLib_iOS'

# s.screenshots     = 'www.example.com/screenshots_1', 'www.example.com/screenshots_2'

s.license          = { :type => 'MIT', :file => 'LICENSE' }

s.author           = { 'xs' =>'[email protected]' }

s.source           = { :git => 'https://git.oschina.net/jzbwlkj/JZBLib_iOS.git', :tag => s.version.to_s }

# s.social_media_url = 'https://twitter.com/'

s.ios.deployment_target = '8.0'

s.source_files = 'JZBLib_iOS/*'

s.source_files = 'JZBLib_iOS/**/*'

s.dependency 'Mantle', '~> 2.1.0'

s.dependency 'YYCache', '~> 1.0.4'

s.dependency 'YYCategories', '~> 1.0.4'

s.dependency 'FLKAutoLayout', '~> 1.0.0'

s.dependency 'pop', '~> 1.0'

s.dependency 'SVProgressHUD', '~> 2.0.3'

s.dependency 'AFNetworking', '~> 3.1.0'

end

7  在git仓库中创建版本0.01版本 跟podspec文件对应 把代码上传到git代码库

8 cd到本地代码库pod lib lint --allow-warnings查看版本库检查是否存在

9 pod spec lint --use-libraries继续监测spec合法性

10 pod repo push JZBLib_podspecsJZBLib_iOS.podspec把space文件传到自己创建的space仓库

11 pod searchJZBLib_iOS

参考网址

1http://www.jianshu.com/p/d6a592d6fced

2http://codecloud.net/10058.html

3http://www.jianshu.com/p/0a4fbb94ef9f

你可能感兴趣的:(iOS pod组件化)