iOS 开发学习成长之路程序员

懒人做iOS系列之代码模块化到pod(基础篇)

2018-04-12  本文已影响36人  James大叔

做人要想懒,还是得多动脑子的,始终坚信只有懒才能推动社会发展。

本人写代码质量自我觉得不怎么好,通过代码的模块化能有效锻炼代码能力,主要还是抽象思维。说白了,主要还是多个项目共用一块类似的代码copy and paste 烦了。。。。。。

好不多说了,进入正题。

今天,我要把我的网络请求库单独拿出来,俗称解耦。自己封装的AF3.0,说来话长,以前不知道封装的时候用AF2.0,拿着AF2.0的api到处用,后来发现想升级3.0相当困难,后来在我和我一个同事的共同努力下终于升级了AF3.0,才有了现在这个版本的自己封装的网络请求库。

一.拥有自己的github

什么?你说你没有?github.com 自己研究下注册吧。github不会的还是自行研究一下(1.注册2.传公钥.3建立仓库)。这个有不会的,私聊我小黑屋单独教。

第一步,创建自己的库

上面图说下LICENSE文件,我这选的是MIT license,由于CocoaPods要求必须有license,否则验证不过的。

二.同步库到本地

同步方式:

1.source tree :新建->从URL克隆

2.命令行,cd到一个目录 然后执行(换成刚刚创建的,下面这个是我的)

git clone git@github.com:Crazysiri/UBNetworking.git

三.要共享(模块化的代码)

在本地同步的git目录,我这里是 ~/UBNetworking

新建UBNetworking目录,并拖入相关文件。如下图:

第二部,拖入文件(以上代码只依赖AF3.0)

四.建一个demo,主要方便教其它小伙伴,或者维护代码的人快速使用。

三.创建demo,并导入库,并且跑通它

五.敲黑板啦!下面重点,开始创建pod依赖库需要的文件

cd到项目的git目录,我这里是 ~/UBNetworking

然后命令行:

pod spec create UBNetworking

创建出 UBNetworking.podspec

编辑.podspec:

s.name        = "UBNetworking" 

s.version      = "1.0.0"

s.summary      = "网络请求库 封装AF3.0"

s.description  = <<-DESC

网络请求库 封装AF3.0

DESC

s.homepage    = "https://github.com:Crazysiri/UBNetworking.git"

s.license      = "MIT"

s.author            = { "James" => "****@xx.com" }

s.platform    = :ios, "7.0"

s.source      = { :git => "https://github.com:Crazysiri/UBNetworking.git", :tag => "#{s.version}" }

s.source_files = "UBNetworking/Catergory/*.{h,m}","UBNetworking/download/*.{h,m}","UBNetworking/*.{h,m}"

s.dependency "AFNetworking", "~> 3.2.0"

end

以上就是我这设置的。

s.name:pod search 搜索的关键词

s.version:版本

s.dependency:依赖库

六.提交到Git

将配置好的.podspec和demo等文件提交到git,并打上tag

git add -A && git commit -m "version 1.0.0"

git tag '1.0.0'    //和上面.podspec一致

git push --tags

git push origin master

七.验证刚才的.podspec

pod spec lint UBNetworking.podspec --verbose --use-libraries --allow-warnings

验证可能会出错误,仔细看看出错的原因,多数都是因为配置文件马虎大意。我这没出什么错误。

八.发布到pod

pod trunk register *****@xx.com "James"

然后收邮件,验证一下就好了。会提示你回来执行上传代码

pod trunk push UBNetworking.podspec  --use-libraries --allow-warnings

然后等一会没什么问题就会提示成功了。

九.提交新代码或者更改项目或者更改 .podspec

修改s.version,那么推代码的时候,要执行

git tag 's.version对应的字符串'

git push --tags 

pod trunk push UBNetworking.podspec  --use-libraries --allow-warnings

十.如果有神么问题可以随时联系我!

十一.欢迎使用我的网络库,或提出更好的意见:

https://github.com/Crazysiri/UBNetworking.git 

pod 'UBNetworking'

然后 pod update即可

上一篇 下一篇

猜你喜欢

热点阅读