在iOS开发中,越来越多人使用模块化开发了,使用模块化开发的前提是学会制作私有库,以方便项目中导入使用,之前制作过几次cocopods私有库,中间出很多问题,也都一一解决了,在这里记录一下制作过程 ,以及遇到的坑。
1.在本地合适的地方创建pod库,比如说Desktop
1.在终端中移动到Desktop
wangpengdeiMac:~ wangpeng$ cd desktop
2.创建pod库, 命令是pod lib create [私有库库名]
wangpengdeiMac:desktop wangpeng$ pod lib create MyPodsTest
点击回车之后,终端会需要你回答几个问题:
1、选择使用的平台
What platform do you want to use?? [ iOS / macOS ]
> ios
2、选择使用的语言
What language do you want to use?? [ Swift / ObjC ]
> objc
3、是否创建一个demo工程用来测试,推荐yes
Would you like to include a demo application with your library? [ Yes / No ]
> yes
4、测试框架选择哪一个
Which testing frameworks will you use? [ Specta / Kiwi / None ]
> none
5、要不要做视图测试
Would you like to do view based testing? [ Yes / No ]
> no
6、类名前缀
What is your class prefix?
> LT
创建pods项目.png
显示如上图,则表示创建成功,创建成功之后,会自动打开项目。
2.安装cocoapods项目
1、移动到创建的pod库下面的Example项目下
wangpengdeiMac:desktop wangpeng$ cd /Users/wangpeng/Desktop/MyPodsTest/Example
2、安装cocoapods项目
wangpengdeiMac:Example wangpeng$ pod install --no-repo-update
安装cocoapods项目.png
3.打开项目,把你的私有库的.h和.m文件拷贝到pods项目下的classes里面
屏幕快照 2019-02-28 下午1.22.23.png将图片或者bundle文件放到Assets下面
屏幕快照 2019-02-28 下午1.24.05.png4.编辑cocoapods配置文件(后缀名为.podspec),在pod项目下
屏幕快照 2019-02-28 下午1.27.17.png//项目名字
s.name = 'MyPodsTest'
//项目版本号,一般习惯使用0.0.1开始
s.version = '0.1.0'
//项目简介
s.summary = 'A short description of MyPodsTest.'
//项目详细描述
s.description = <<-DESC
TODO: Add long description of the pod here.
DESC
//项目主页地址,随便写个网站就行,最好写本项目的地址,可以在github,gitlab或者码云上创建一个项目,关联本项目
s.homepage = 'https://github.com/wubingjia/mypodstest'
//许可证
s.license = { :type => 'MIT', :file => 'LICENSE' }
//作者
s.author = { 'wubingjia' => 'my_badboy521@163.com' }
//项目的地址,需要填一个git地址的私有库,码云的和gitlab的免费,github的收费,创建项目之后,将项目地址拷贝复制
s.source = { :git => 'https://github.com/wubingjia/mypodstest.git', :tag => s.version.to_s }
//版本
s.ios.deployment_target = '8.0'
//源码文件的配置路径
s.source_files = 'MyPodsTest/Classes/**/*'
//资源文件的配置路径(图片等..)---静态库的配置方法
s.resource_bundles = {
'MyPodsTest' => ['MyPodsTest/Assets/*']
}
//资源文件的配置路径---动态库的配置方法
s.resources = 'MyPodsTest/Assets/*'
//源码头文件的配置路径
s.public_header_files = 'MyPodsTest/Classes/**/*.h'
//系统框架的依赖库
s.frameworks = 'UIKit', 'MapKit'
//私有库依赖的第三方库
s.dependency 'AFNetworking', '2.5.4'
s.dependency 'YYImage'
s.dependency 'LYEmptyView'
一切配置完成之后,执行pod update --no-repo-update更新一下
wangpengdeiMac:Example wangpeng$ pod update --no-repo-update
屏幕快照 2019-02-28 下午2.06.32.png
5.之后打开demo项目,看一下能不能运行起来,有错的话改错,直到项目可以运行起来,检查自己的私有库是否可以使用,如果可以,说明已经完成。接下来要进行本地验证
//进入我们的pod库中
wangpengdeiMac:~ wangpeng$ cd /Users/wangpeng/Desktop/MyPodsTest
//执行本地验证的命令
wangpengdeiMac:MyPodsTest wangpeng$ pod lib lint
这里说明一下,本地验证的命令有几个推荐的:
1、本地验证
wangpengdeiMac:MyPodsTest wangpeng$ pod lib lint
2、本地验证+打印详细信息
wangpengdeiMac:MyPodsTest wangpeng$ pod lib lint --verbose
3、本地验证+允许使用静态库
wangpengdeiMac:MyPodsTest wangpeng$ pod lib lint --use-libraries
4、本地验证+允许警告
wangpengdeiMac:MyPodsTest wangpeng$ pod lib lint --allow-warnings
5、本地验证+快速验证
wangpengdeiMac:MyPodsTest wangpeng$ pod lib lint --quick
屏幕快照 2019-02-28 下午2.18.54.png
出现上面这种情况,说明验证通过。
6、发布项目
1、添加远程地址,即在github,gitlab或者码云上创建的私有库的地址
git remote add origin http://gitlab.guxiansheng.cn/dexun/mypodstest.git
2、添加文件
git add .
3、提交本地,并添加描述
git commit -m "第一次提交"
4、拉取远程的代码
git pull origin maste
# --allow-unrelated-histories
# git pull origin maste会失败 ,提示:fatal: refusing to merge unrelated histories
# 原因是远程仓库origin上的分支master和本地分支master被Git认为是不同的仓库,所以不能直接合并,需要添加 --allow-unrelated-histories
5、推送本地代码到远程
git push origin master
6、打tag
git tag 0.0.1
7、推送tag到远程
git push origin 0.0.1
7、创建Spec的管理库
创建方式和上面在github,gitlab和码云上创建私有库的方式一样
然后再本地执行Spec创建命令
创建Spec
pod repo add MyPodsTestSpecs http://gitlab.guxiansheng.cn/dexun/MyPodsTestSpecs.git
接下来就可以进行发布了
将自己私有库添加的Spec的管理库中
pod repo push MyPodsTestSpecs MyPodsTest.podspec
8、检验私有库的发布和使用
在项目的Podfile中添加
pod 'MyPodsTest',:git => 'http://gitlab.guxiansheng.cn/dexun/mypodstest.git'
导入成功就可以使用了。
网友评论