利用CocoaPods集成的优势,管理代码块,组件,实现模块化开发已是很多公司比较推崇使用的技术点。实现的效果是把你封装起来的常用的功能或者组件,放到pod里面去管理,其他人可以用pod快速集成。
代码模块化的目的:
1.易于管理代码
2.方便的集成使用代码块进行快速开发,相比直接复制到多个项目,优势很明显。(pod ‘xxx’)
2.更新pod里面的内容,那么其他使用到的地方可以实现同步更新。(pod install)
3.可以随意的组装代码块,使得你实现不同的功能。
由于这是我初次使用,可能涉及的面比较窄,但是换汤不换药,相信看完这篇,你就会明白是如何实现的。进入正题!
### 制作步骤为以下五个:
一、 安装CocoaPods
二、 github创建代码仓库
三、制作本地库( 创建和配置 podspec文件)
四、 上传至github
五、上传至cocoapods官方库
六、 搜索使用
一、 安装CocoaPods
这里不再介绍,有需要的朋友可以查看我的另外一篇最新Cocoapods安装、降级、使用(Mac Pro),里面有比较详细的介绍。
二、 github创建代码仓库
1.在个人主页 New repository
2.仓库的配置,如下图所示
Repository name为你要创建的代码块(仓库)的名称
Description (optional) 描述这个代码块的功能,可选
下面这几个我们都不勾选
Initialize this repository with a README 这个可以勾选,如果不勾选,后面可以自己创建,建议勾选上回自动生成
Add .gitignore: 这个可以使用none
add a license: 我这里选择 MIT License
3.创建成果以后效果如下图所以
4.到这里已完成在github上面空仓库的创建,生成的地址https://github.com/XXX/XXDemo.git
就是我们下面要使用的。
三、 制作本地库( 创建和配置 podspec文件)
1.命令行创建一个存放的文件夹(cd 到制定的目录)
mkdir TestDemo
/** TestDemo文件夹名称下面同样的 **/
- 直接创建(直接在制定的目录)
在鼠标右键创建文件夹,名称为 TestDemo /** TestDemo文件夹名称 **/
- 创建pod本地的库
cd到上一步创建的目录执行创建库指令
pod lib create TestDemo
终端会出现 Cloning https://github.com/CocoaPods/pod-template.git
into TestDemo
.,在这里需要等待几分钟,坐等完成就可以然后出现 To get you started we need to ask a few questions, this should only take a minute.这个是需要我们需要设置几个小问题,如下图所示
问题的意思就是这样:
1.你想要使用哪个平台?[iOS / macOs]
2.你想要使用哪种语言?[Swift / ObjC]
3.你的库中是否包含一个示例程序?[Yes / No]
4.你想要使用哪个测试框架?[Specta/ Kiwi / None]
5.你想要View基础测试?[Yes / No]
6.你的类名前缀是什么?(我这里填的是 TD)
设置完这个会自动执行 pod install,分析依赖和下载需要的配置文件,根据上面的问题的选择创建一个工程。如下图所示
完成之后会自动打开xocde。
里面的目录结构如图所示
把需要的文件 放到如图所示的位置ReplaceMe.m可以选择删掉
到这里,已完成了本地库的创建,这里注意````:path 后面的路劲```。你可以新建一个工程,试着导入,如图所示:
如果没有上传到github和coocoapods官方库的需求,这里其实也是完成了cocoapods本地私有库的创建。可以在本地使用
- 配置TestDemo.podspec 文件的简单说明
Pod::Spec.new do |s|
s.name = "会默认生成" --- 与github上创建的一致,代码块的名称
s.version = " 默认生成 0.0.1" --- 代码块的版本
s.summary = "" -- 项目的摘要
s.description = <<-DESC
///这里填写项目的描述,建议要写的比上面的摘要长,不然会有警告
DESC
s.homepage = "https://github.com/XXX/XXX.git" --- github仓库的下载地址
s.license = { :type => "MIT", :file => "LICENSE" } --- 对应我们在创建仓库的时候选择的MIT License,授权许可文件
s.author = { "XXX" => "XXX@XXX.com" } --- 这里显示作者名称和邮箱,可以选择致谢一个名称,你自己随便写一个就可以
s.platform = :ios ---- 使用的平台
s.ios.deployment_target = "8.0" ---- 使用的平台最低支持的版本
s.source = { :git => "https://github.com/XXX/XXX.git", :tag => s.version } --- 填写github仓库的下载地址,后面的照写就可以
s.source_files = "XXX/XX/*.{h,m}" ---这里很容易出错,请注意 ,这里的路劲是相对于 XXX . podspec的文件的位置来说的,如果你的代码块文件夹与他同级,则可以直接写 "文件夹名称/*.{h,m}",不在同一级在按级往下写
注意点: 如果是swift工程 记得往里面 增加 spec.swift_versions='3.0' 或者spec.swift_version = '3.0', '4.0'也可以spec.swift_versions = ['3.0']或者spec.swift_versions = ['3.0', '4.0', '5.0']
否则会出现验证通不过报错。
到这里基础配置已完成,如有包含第三方什么的,则需要把s.framework注释打开 ,模仿后面示例添加即可。其他的也是类似
四、 上传至github
配置了这么多,还没有提交,是不是很期待?下面就开始搞事情了,依次在终端输入并执行下面的命令
注意:这里本地已生成了README.md和 LICENSE文件,这也是为什么我在第二步创建仓库的时候不勾选的原因
2.开始提交操作,依次执行下面命令
1. git add -A
2. git commit -m '描述'
3.git remote add origin https://github.com/XXX/TestDemo.git ///https://github.com/XXX/TestDemo.git就是第二步github上面得到链接
4.git push -u origin master
如果push出现冲突没使用下面的
git pull --rebase origin master
再
git push -u origin master如果还出现冲突,使用下面的
git push -u origin master -f ```
下面需要打tag,与你的.podspec里面的s.version 一致
5.git tag '0.1.0'
6.git push origin 0.1.0 ///也可以使用 git push --tags
ok,到此为止,相信你已成功的提交代码到github上了!
如看到下图所示的说明已经成功。
五、上传至cocoapods官方库
- 如果没有没有注册过pod账户的首次需要注册,不要怕,这很简单
pod trunk register 邮箱 '用户名' --description='描述'
/**这里的邮箱和用户名建议写成你的github上登录的邮箱和账户名称 ,**/
执行成功以后,你的邮箱会收到一封邮件来自[cocoapods]的邮件,赶紧去邮箱查看,复制里面的链接在浏览器里面打开,就完成了注册了,是不是真的很简单???
可以验证一下注册的结果
pod trunk me /** 会输出你刚才注册时候填写的信息**/
下面就是验证测试一下你的pod的配置是否正确
如果只想验证本地就使用
pod lib lint XXX.podspec --allow-warnings
验证远程仓库和本地库(在 push之前一定要用下面这个验证一下)
pod spec lint XXX.podspec --allow-warnings
在这里如果出现了错误,请在 XXX.podspec的同级目录下创建一个指定swift版本的文件并指定版本号,如下所示
错误:
xcodebuild: error: SWIFT_VERSION '3.2' is unsupported, supported versions are: 4.0, 4.2, 5.0. (in target 'App')
解决 echo "5.0" >> .swift-version 5.0为指定的版本号
如果上一步,没有错误,那么恭喜你可以正式推送啦
pod trunk push --allow-warnings
不出意外就会出现,下图所示
更新pod本地仓库
pod repo update 更新pod本地仓库
到此为止你已成功的创建了一个代码块,可以先去抽根烟放松一下,因为在推送成功以后可能会有延迟。
六、搜索使用
1.搜索
pod search XXX /**XXX 为你的代码块的名称 **/
如果报错搜不到,可能是因为本地缓存的索引在作祟,你可以前往->前往文件夹中输入
~/资源库/Caches/CocoaPods
把search_index.json删掉,再试一次。有奇迹出现!!!
更简单的,一句命令行
rm ~/Library/Caches/CocoaPods/search_index.json
2.使用
pod ‘ XXX ’ /**XXX 为你要集成的代码块名称 **/
pod install /**集成代码块到你的项目中,就可以像使用第三方框架一样使用啦**/
以上就是一些我首次使用CocoaPods管理代码的一些步骤,中间也经历了一些坑,如果你在使用的过程中出现问题可私我。不足的地方欢迎大家指正!(也可以加群交流开发技术 457236811)