android pod 组件化_iOS - 组件化开发一 私有库pod制作

前言:

最近和朋友聊天聊到组件化开发,网上非常多优秀的文章有介绍也有很多的demo,组件化的几种实现方案的选择这里不做讨论,这里介绍一个组件化的基本技能:制作私有库===>给新手或有需要的人一点参考(不对或者错误的地方 欢迎大佬指出)

1.知识准备:

1.cocopod使用经验(iOS开发一般都有涉及)

2.git常用命令使用(svn用多了也得学学git,git命令不熟悉的建议下载SourceTree客户端)

3.github开源库相关经验(mac要配置好ssh的key等)

2.制作私有库10个步骤:

1.GitHub创建一个私有库(先pod search xxx 查一下你想取名字是不是被占用 关键!)

2.克隆到本地 然后Xcode创建一个项目 放到克隆的目录下(相关代码自己加进去)

3.创建一个 PodFile 和  ****.podspec 文件 主要的东西在这个podspec里面(可以自行百度 注意此时文件里面有个版本信息:1.0.0 与下面的要对应)【podspec教程】【podspec分支】

4.校验项目是否可以正常编译(只要关注error就可以了,根据错误提示修改,不难)

pod lib lint --allow-warnings

吭:依赖导入#import 不行 要换成 #import

5.提交代码到GitHub(我是用SourceTree来提交 不要把Test和依赖的第三方Pod文件提交上去)

6.打个tag两步指令: (可以上github看一下是否提交成功了)

git tag -m "code commit" "1.0.0"

git push --tags

7.上传私有库(这一步会校验github tag 1.0.0上面代码 要确保tag1.0.0这份代码上传完整)

pod spec lint --allow-warnings

吭:第4步本地的校验成功 但是github tag却校验不成功说文件不存在,要去github对应tag版本上检查一下tag的代码是否完成提交(下面有图)

8.发布私私有库

pod trunk push  ****.podspec --allow-warnings

9.清理本地缓存

rm ~/Library/Caches/CocoaPods/search_index.json

10.校验是否私有库发布成功

pod search ****

3.更新升级私有库(基本跟上面是一摸一样的 但是还是要写一遍 版本与Tag版本对应)

1.项目里面修改/添加代码(废话)

2.修改****.podspec里面的版本信息 与内容简介(之前1.0.0 现在改成1.0.1)

3.校验项目是否可以正常编译(只要关注error就可以了,根据错误提示修改,不难)

pod lib lint --allow-warnings

4.提交代码到GitHub(我是用SourceTree来提交 不要把Test和依赖的第三方Pod文件提交上去)

5.打个tag两步指令:

git tag -m "code commit" "1.0.1"

git push --tags

6.上传私有库:(这一步会校验github tag 1.0.1上面代码 要确保tag1.0.1这份代码上传完整)

pod spec lint --allow-warnings

7.发布私私有库

pod trunk push  ****.podspec --allow-warnings

8.清理本地缓存

rm ~/Library/Caches/CocoaPods/search_index.json

9.校验是否私有库发布成功(此时你会看到会有 1.0.0 与 1.0.1版本)

pod search ****

备注:以上的命令都是要在根目录下执行,终端先cd到项目根目录执行 eg:

cd  /Users/linpeng/Documents/Git/ModuleApp/XXXX

4.图文演示

demo地址:https://github.com/Jacky-LinPeng/LPCommonModule

1.GitHub创建一个私有库

2.克隆到本地 然后Xcode创建一个项目 放到克隆的目录下(相关代码自己加进去)

3.创建一个 PodFile 和  ****.podspec 文件 主要的东西在这个podspec里面(可以自行百度 注意此时文件里面有个版本信息:1.0.0 与下面的要对应)

注意箭头的版本信息与目录结构配置 关键!

4.校验项目是否可以正常编译(只要关注error就可以了,根据错误提示修改,不难)

pod lib lint --allow-warnings

5.提交代码到GitHub(我是用SourceTree来提交 不要把Test和依赖的第三方Pod文件提交上去)

6.打个tag两步指令: (可以上github看一下是否提交成功了)

git tag -m "code commit" "1.0.0"

git push --tags

7.上传私有库(这一步会校验github tag 1.0.0上面代码 要确保tag1.0.0这份代码上传完整)

pod spec lint --allow-warnings

8.发布私私有库

pod trunk push  ****.podspec --allow-warnings

9.清理本地缓存

rm ~/Library/Caches/CocoaPods/search_index.json

10.校验是否私有库发布成功

pod search ****

使用:

其他项目引用这个pod就可以使用这个pod里面的东西了,Test项目不需要引入AF,SD, Masonry等pod,因为LPCommonModule里面的podspec里面有引入这些依赖了

图文讲解也可以配合这两篇文章

https://blog.csdn.net/Tonyshng/article/details/69525556

https://www.jianshu.com/p/d7d1942dd3f1

========================更新 ==============

1.如何实现目录分层?

参考文章:https://segmentfault.com/a/1190000012269307

Pod::Spec.new do |s|

s.name = "LPCommonModule" #私有库的名称

s.version = "1.1.1" #版本号

s.summary = "App基础,第三方pod等依赖" #概述

s.description = < "MIT", :file => "LICENSE" } #许可证

s.author = { "linpeng" => "540933120@qq.com" } #作者名以及邮箱

s.platform = :ios, "8.0"

s.source = { :git => "https://github.com/Jacky-LinPeng/LPCommonModule.git", :tag => s.version.to_s } #这个是git上 releases的代码,以后每次版本升级,都会传到这里

s.source_files = "LPCommonModule/LPCommonModule/LPCommonModule.h" #路径 前面的表示私有库名,后面表示私有库中的内容

#s.public_header_files = 'LPCommonModule/LPCommonModule/LPCommonModule.h'

s.subspec 'CommomView' do |ss|

ss.ios.deployment_target = '8.0'

ss.source_files = 'LPCommonModule/LPCommonModule/View/**/*.{h,m}'

end

s.subspec 'CommomManager' do |ss|

ss.ios.deployment_target = '8.0'

ss.source_files = 'LPCommonModule/LPCommonModule/Manager/*.{h,m}'

end

s.subspec 'CommomCategory' do |ss|

ss.ios.deployment_target = '8.0'

ss.source_files = 'LPCommonModule/LPCommonModule/Category/*.{h,m}'

end

s.exclude_files = "Classes/Exclude"

s.requires_arc = true

s.dependency 'ReactiveCocoa','2.5'

s.dependency 'AFNetworking'

s.dependency 'YYModel'

s.dependency 'SDWebImage', '~> 5.0.0-beta3'

s.dependency 'Masonry', '~> 1.1.0'

s.dependency 'SVProgressHUD'

end

效果

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值