iOS解耦与模块化之路 -制作自己的Spec私有库
来源:互联网 发布:三国群英传ol 知乎 编辑:程序博客网 时间:2024/06/10 10:52
最近公司项目进入趋于稳定的状态,需要做项目解耦与模块化的工作,听说app还将要拆分为6个app,慌不择路。以这篇文章为起始,记录一下这次项目的模块化之路的重要环节。
首先看一下我们项目私有库目前制作与完成情况:
下面开始动手制作属于自己的私有库:
一、配置文件podspec
podspec文件相当于私有库的配置文档,下面先进行podspec的相关讲解
执行命令pod spec crate [项目名] ,可得到一个spec文件,打开后如下:
解释如下:
Pod::Spec.new do |s| s.name = 'LBCategory' #名称 s.version = '1.0.0' #版本号 s.summary = 'A libraries of LBCategory.' #简短介绍 s.description = <<-DESC #详细介绍 category file Private Podspec about LBCategory. DESC s.homepage = 'http://******/****/LBCategory.git' #主页,这里要填写访问到的GitLab上的地址 #s.license #开源协议 s.author = { '杨庆人' => ‘**@lianj.com' } #作者信息 s.source = { :git => 'http://******/****/LBCategory.git', :tag => s.version.to_s } #项目地址与tag,这里不支持ssh的地址,只支持HTTP和HTTPS s.ios.deployment_target = '8.0' #s.requires_arc #是否使用ARC,如果指定具体文件,则具体的文件使用ARC s.source_files = 'Source/Class/**/*' #代码源文件地址,**/*表示Classes目录及其子目录下所有文件,如果有多个目录下则用逗号分开 s.resource = 'Source/Resource/* #资源文件地址,最好打包成bunldle s.public_header_files = 'Source/Classes/**/*.h' #公开头文件地址 s.frameworks = 'UIKit','Foundation' #所需的framework,多个用逗号隔开 s.dependency 'AFNetworking', '~> 2.3' s.dependency 'LBLoadingView' #依赖关系,该项目所依赖的其他库(包括公开库和自己的私有库)end
// 注:私有库可以依赖CocoaPods上的第三方库,也可以依赖自己制作的其他Spec私有库
当需要构造多个子Spec时,可添加如下配置
s.subspec 'LBCategorySubspec' do |ss|ss.source_files = 'Source/Class/LBCategory_Object/**/*.{h,m}'ss.public_header_files = 'Source/Class/LBCategorySubspec/*.h'ss.dependency 'MJExtension'ss.dependency 'LBCoreKit/LBCategory'ss.ios.deployment_target = '8.0'ss.frameworks = 'UIKit','Foundation'ss.libraries = 'objc' #<objc/>...end
二、新建工程
pod lib create NAME
新建一个私有库模板工程,配置.podspec文件,新增class、resource目录,其中class中存放项目代码文件,resource中存放资源文件,最好打包成bundle,在工程的Podfile文件进行配置:
其中sources的意思是要引导自有库从这两个仓库里校验,如果本私有库使用了另外的私有库,则一定要加入私有库的source引导;而pod 'LBUIKit', :path => './' 指向项目该目录下的.podspec文件。
在工程demo中测试私有库,如测试通过,则可以进行下一步了。
三、GitLab创建工程
在gitLab中创建一个项目,拿到一个项目提交的路径,扫描添加本地已经存在的仓库,配置远程仓库,则可以提交推送到远程仓库,打上与项目版本一致的tag:
四、验证与推送
// 在项目目录下进行私有库校验pod lib lint --sources='git@xxx**xxx:iOSComponent/Spec.git,https://github.com/CocoaPods/Specs.git' --use-libraries --allow-warnings
- —sources:如项目中使用了私有库,则一定要要加上—sources私有仓库地址,这点在二中已经进行了说明,而一旦加入了私有库地址,也需要加上cocoapods公开库地址,因为私有库也依赖了公开库
- –use-libraries:如果引用的第三方私有或公有库用到静态库,需要用–use-libraries,配合以上进行校验
- –allow-warnings:项目验证一般都会有warning,只要没有error,则可以使用–allow-warnings命令,配合以上进行校验
私有库校验通过则可进行push操作了
// 推送Spec私有库pod repo push Spec --sources='git@xxx**xx:iOSComponent/Spec.git,https://github.com/CocoaPods/Specs.git' --use-libraries --allow-warnings
进行私有库push,push完成,就可以在你们的项目中使用自己做的私有库啦!
pod 'LBCategory'#pod 'LBCategory/LBCategory_UIKit' #或者使用部分私有库
注:
- 制作私有库时,pod lib lint验证操作是不需要提交远程仓库的,进行的是本地校验;只有在推送的时候,才会去远程仓库拉取对应的版本代码进行验证并推送
- 制作私有库时,可以依赖CocoaPods上的第三方库,也可以依赖自己制作的其他Spec私有库
- 每次更新私有库,需要重新打包上传,升级版本与远程仓库tag,需要重新进行检验和推送
- 更新完私有仓库,可使用pod update对本地仓库的进行更新,也主动到~.cocoapods/repos/Spec目录下进行git pull拉取,然后再进行pod update –no-repo-update -
end
阅读全文
0 0
- iOS解耦与模块化之路 -制作自己的Spec私有库
- 制作自己的CocoaPods Spec
- iOS解耦与模块化之路 -路由的构建使用
- iOS开发之Cocoapods的使用与私有pod的制作
- rpm 制作与spec 解析
- 配置自己的spec文件
- 模块化与解耦
- IOS之二维码的制作与扫描
- IOS之二维码的制作与扫描
- IOS之二维码的制作与扫描
- ios 制作自己的framework
- iOS之学习系统提供的框架(库)和自己制作框架
- rpm的制作 spec文件写法
- RPM的制作(.spec文件)
- 制作rpm包的spec文件
- rpm的制作 spec文件写法
- iOS模块化之路(一)
- 制作私有pod库的过程总结
- sti()和cli()
- ElasticSearch 查询时内存溢出导致Eurake客户端不停重启
- Adjacency list追溯到源头的方法
- IO基本类型与基础概念
- Mechine Learning|斯坦福公开课学习笔记1
- iOS解耦与模块化之路 -制作自己的Spec私有库
- java excel 导出文件名乱码问题解决方法
- 使用泛型方法在Java中安全地进行强制类型转换
- msm8905刷屏过程分析
- script标签到底该放在哪里
- Android开机动画被block的小问题
- Qt生成应用程序图标
- Cheapest Palindrome(最便宜的回文)
- linux 安装jdk和安装Tomcat 和rsync和crontab搭配的备份。