一)、组件化的目的:
1、解耦各模块和业务,便于开发维护
2、构建可复用模块,便于复用
3、由于开发人员很多时,合作开发代码很容易冲突等,沟通成本很高,让各模块做成组件,每个人只负责某一模块,让开发更有效率
4、提高工程编译速度,当工程很大时,编译是一个十分耗时的过程,各模块做成组件,前期做功能时,只需关注编译自己的模块工程,减少总的编译时间
5、便于模块化测试,可以单独测试各组件模块
二)、组件化的类型:公有和私有podspec
1、使用Cocoapods创建公有podspec
2、使用Cocoapods创建私有podspec
三)、公有podspec制作步骤: 当然你电脑安装了cocoaPods了,
1、注册trunk
查看自己是否注册过trunk
$pod trunk me
注册trunk
$ pod trunk register 邮箱 ‘你的名称’ —description=‘电脑机型描述’
如:$ pod trunk register zhangsan@163.com ‘zhangsan’ —description=‘MacBook Pro’
注册后,cocoapods官方会向你邮箱发送确认邮件,点击确认即可.
确认后,可以再使用$pod trunk me 查看个人信息
2、创建项目工程,并上传到github上,获得项目代码地址
https://github.com/xxx/xxx.git
3、创建.podspec
1、cd 到你的项目下
2、创建.podspec podName为你自己的组件名称
$ pod spec create podName 或者 pod spec create podName podName库远程地址
4、编辑.podspec文件
可以使用文本编辑器编辑上面生成的podName.podspec文件,根据需要填写内容,一般按照下面的格式填就够了:尤其注意s.version版本号就是你代码的tag版本号
Pod::Spec.new do |s|
s.name = "SpecComponent"
s.version = "0.1.0"
s.summary = "SpecComponent is a kind of learning tools"
s.description = <<-DESC
是一个学习podspec的项目 借助这个项目你可以快速构建一个pod库 有了这个学习项目 就无忧了
DESC
s.homepage = "https://github.com/zhangsan/SpecComponent"
s.license = { :type => "MIT", :file => "FILE_LICENSE" }
s.author = { "zhangsan" => "zhangsan@qq.com" }
s.platform = :ios, "8.0"
s.source = { :git => "https://github.com/zhangsan/SpecComponent.git", :tag => "#{s.version}" }
s.source_files = "SpecComponent/**/*.{h,m}"
# s.exclude_files = "Classes/Exclude"
# s.public_header_files = "Classes/**/*.h"
# s.resource = "icon.png"
# s.resources = "Resources/*.png"
# s.requires_arc = true
# s.xcconfig = { "HEADER_SEARCH_PATHS" => "$(SDKROOT)/usr/include/libxml2" }
# s.dependency "JSONKit", "~> 1.4"
end
5、本地验证.podspec文件是否可用($ cd podspec文件所在目录)
一般一下几种验证方式:
验证本地的:
$ pod lib lint (验证)
$ pod lib lint —verbose (验证-并显示详细信息)
$ pod lib lint —allow-warning (验证—忽略警告)
本地和远程都验证:
$ pod spec lint podName.podspec —verbose (这个从本地和远程验证你的pod能否通过验证,上面三个都是从本地验证你的pod能否通过验证)
6、将.podspec和代码提交到git上,并打版本号tag
$ git tag -a 0.0.1 -m “V0.0.1”
$ git push —tags
7、再次本地远程验证.podspec是否可用
$ pod spec lint podName.podspec —verbose (这个从本地和远程验证你的pod能否通过验证,上面三个都是从本地验证你的pod能否通过验证)
8、发布公有podspec库
提交到远端(有警告选最后一个)
$ pod trunk push podName.podspec
$ pod trunk push podName.podspec —verbose
$ pod trunk push podName.podspec —allow-warnings
9、验证仓库(注意search不到,并不一定是没成功,使用podfile中看看能否拉下来代码)
$ pod search podName (搜索你的podName库)
10、在你新开的项目工程中使用podfile,拉取你组件库代码
Pod ‘podName’
至此,公有podspec库制作就完毕了
下一篇接着写podspec私有库制作。