组件化,podspec简谈

序言

最近做了一些组件化方面的工作,一步一个坑的走了过来,这篇文章就是写一下感受吧

为啥要组件化

• 随着项目的不断迭代,各个模块会越来越复杂,各个模块相互依赖,而且每个模块可能会有共同的业务逻辑,导致整个项目维护起来比较麻烦。

• 可以采用组件化,把每个业务逻辑和模块分离,单独管理,这样比较方便维护,各个开发人员只需要关心好自己的模块就好了。

组件化好处

• 分工更加明确,提高开发效率

• 复用性更好,能迅速的组成更多的App

组件化思想

• 就好比封装控件,复杂的控件一般都会封装,组件化只不过是把每个模块单独抽出来,作为一个小工程,然后在组件一个一个完整的项目。

如何组件化

•  接下来就不多说,先来一个damo

首先新建一个项目,名字叫PodSpecTest.

接着需要到github上面新建一个repository,名字叫PodSpecTest

组件化,podspec简谈_第1张图片

新建Repository后就需要将项目和这个Repository建立连接,打开终端cd到之前新建的项目下面,接下来输入下面命令:

git  remote  add  origin  https://github.com/MacJi2015/PodSpecTest.git

建立连接之后我们还需要添加cocoaPods开源许可文件,用下面这个命令:

echo MIT>FILE_LICENSE

接下来到了重点啦,我们需要新建podspec文件 ,用下面这个命令:

pod spec create PodSpecTest

接下来就是用命令来修改文件:

Pod::Spec.new do |s|

s.name        = "PodSpecTest"  # name项目名称

s.version      = "0.0.1"    # version版本号,可以随意填

s.summary      = "I'm GuoJia.My E-mail is [email protected]." # summary 描述

s.description  = <<-DESC

I'm GuoJia.My E-mail is [email protected]

DESC

s.homepage    = "http://github.com/MacJi2015/PodSpecTest"  # homepage主页,可以任意地址

s.license      = { :type => "MIT", :file => "FILE_LICENSE" }   # license 必须是MIT

s.author            = { "guojia" => "[email protected]" }  # author作者信息

s.platform    = :ios, "7.0"  # platform平台限制

s.source      = { :git => "http://github.com/MacJi2015/PodSpecTest.git", :tag => "#{s.version}" }   #  source 代码资源

#source_files代码文件,不能放xib什么的,只能放h,m,mm,c结尾的文件

s.source_files  ="PodSpecTest/PodSpecTest/**/*.{h,m,mm,c}"

#resource_bundles资源库文件,xib,png,图片什么的

s.resource_bundles = {

'PodSpecTest' => ['PodSpecTest/PodSpecTest/**/*.{storyboard,xcassets,xib,png}']

}

现在这里就不详讲podspec文件的编写啦,改天我用一个篇目专门讲这个podspec的编写

podspec文件编写成功之后,我们可以先用下面的命令来验证文件编写是否正确

pod spec lint PodSpecTest.podspec --allow-warnings

但第一次使用的时候需要先把代码上传github,然后再使用上面的命令。出现下面的就成功啦

组件化,podspec简谈_第2张图片

这样就完成了一大部分的事情,接下来就是上传spec文件到cocoapod上,上传代码之前需要先注册trunk账号,用下面的命令

pod  trunk  register  xxx@xx  'Your name'  --description='macbook air'

验证一下,是否注册成功可以用下面的代码:

pod trunk me

如果出现下面的情况,说明你已经注册成功啦:

组件化,podspec简谈_第3张图片

注册成功之后就上传spec啦:

pod trunk push PodSpecTest.podspec --allow-warnings

接下来就可以用 pod search PodSpecTest来查询一下啦。

如果没有查询成功可以先用rm ~/Library/Caches/CocoaPods/search_index.json,删除一下缓存,然后再重新搜索就可以。

但是我悲剧啦,PodSpecTest这个名字好多人用过啦,但是你们可以用其他名字。

到此就结束啦,希望可以帮到你们

你可能感兴趣的:(组件化,podspec简谈)