前言
CocoaPods 的使用是每一个 iOS 开发者必备的技能,我们平时都是使用别人的第三方库,那如何组件化自己的公有库供别人使用呢?下面介绍下我自己的摸索过程以及遇到的问题,以便更好的理解 iOS 公有库的制作及发布。
开始
- 注册:验证你的身份,参数为“邮件地址+用户名”,回车后对应的邮箱中会收到邮件,点击里面的链接进去就ok了。
pod trunk register orta@cocoapods.org 'User Name'
- 验证是否注册成功
pod trunk me
- 创建代码库,该命令会问一些问题,按需回答就好。之后自动帮你创建一系列文件
pod lib create PodTest
目录如下:
目录.png- Assets:存放一些我们我们用到的资源文件,比如图片
- Classes:存放我们新建的 .{h, m} 文件(需要删掉 ReplaceMe.m)
注:我们可以直接删除这两个文件夹,把所有的新建文件都放在 Assets 的同级目录下。只是后面配置文件路径需要变动而已。
- 把这些文件都上传到 GitHub 或者其他的仓库上
- 编写 PodTest.podspec 文件
Pod::Spec.new do |s|
s.name = 'PodTest'
s.version = '0.1.0'
s.summary = ''
s.description = ''
s.homepage = 'https://github.com/hupfei/PodTest'
s.license = { :type => 'MIT', :file => 'LICENSE' }
s.author = { 'hupfei' => 'HG_hupfei@163.com' }
s.source = { :git => 'https://github.com/hupfei/PodTest.git', :tag => s.version.to_s }
s.ios.deployment_target = '10.0'
s.requires_arc = true
# 依赖的第三方库
s.dependency 'ReactiveObjC'
s.dependency 'MJRefresh'
s.dependency 'QMUIKit'
# .{h, m} 文件相对于 PodTest 的绝对路径
s.source_files = 'PodTest/Classes/**/*'
# 资源文件相对于 PodTest 的绝对路径
s.resource = 'PodTest/Assets/PodTest.bundle'
# 这里是你新建的文件夹里面的文件路径
s.subspec 'HGMainViewController' do |ss|
# 文件夹里面的文件路径
ss.source_files = 'PodTest/Classes/HGMainViewController/*.{h,m}'
# 这里是这个文件夹里面的文件依赖其他地方的文件。注意这里的路径则是相对于 PodTest 的相对路径
ss.dependency 'PodTest/HGMainViewModel'
end
end
- cd 到 Example 目录下执行 “pod install” 安装一下你对 PodTest.podspec 的修改
- cd 到 PodTest.podspec 的根目录,验证 PodTest.podspec 是否有问题
pod spec lint [NAME.podspec] --verbose
注:必须验证成功才能下一步,如有报错请对应修改
- 给远程仓库打上 tag 并推送 PodTest.podspec
pod trunk push [NAME.podspec]
注
- 不管你是新注册还是有了账号,在一台新电脑上都是执行注册,没有登录这一项(目前我是没发现)
- 新建文件需要先打开文件夹拖到对应目录,再执行 pod install ,新建的文件才会出现在正确的地方。直接在 Xcode 里面新建,文件目录会有问题
网友评论