注册用户名和邮箱
1、先查看本地是否已经绑定过
$ pod trunk me
2、如需绑定,执行以下命令
$ pod trunk register xxxxxxxxx@qq.com '宁小陌y' --description='常用文件库'
注意:执行完该命令后,绑定的邮箱会收到一封邮件里面包含一个验证的连接,打开该链接进行验证!
3、然后在使用 $ pod trunk me 指令来验证下,是否绑定成功
本地创建pod库
1、创建一个空文件夹,用于存放我们的pod库,然后打开它
$ cd /Users/ningxiaomo/workspace/Cocoapods
$ pod lib create XMPopover
2、执行完上述命令后,会依次问如下问题
WeChat32985e1f6a69d172ae911f27b24bf1a1.png
3、完成后会显示以下,并会自动打开项目
WeChat220723a661f06679c68f6802e9092a35.png
4、然后我们配置xxx.podspec文件
Pod::Spec.new do |s|
# 名称 使用的时候pod search [name]
s.name = 'XMPopover'
# 代码库的版本
s.version = '0.1.0'
# 简介(这个描述要自己写一个不要使用默认的,不然会给一个警告的)
s.summary = '这是一个测试pod'
# 描述
s.description = <<-DESC
这个地方也是一个描述,要比summary这个地方的描述多一些
DESC
# 主页
s.homepage = 'https://github.com/ningxiaomo0516/XMPopover'
# s.screenshots = 'www.example.com/screenshots_1', 'www.example.com/screenshots_2'
# 许可证书类型,要和仓库的LICENSE 的类型一致
s.license = { :type => 'MIT', :file => 'LICENSE' }
# 作者名称 和 邮箱
s.author = { 'ningxiaomo0516' => 'xxxxxxxxx@qq.com' }
# 代码的Clone 地址 和 tag 版本
s.source = { :git => 'https://github.com/ningxiaomo0516/XMPopover.git', :tag => s.version.to_s }
# s.social_media_url = 'https://twitter.com/<TWITTER_USERNAME>'
# 代码库最低支持的版本
s.ios.deployment_target = '9.0'
# 如果使用pod 需要导入哪些资源
s.source_files = 'XMPopover/Classes/**/*'
# s.resource_bundles = {
# 'XMPopover' => ['XMPopover/Assets/*.png']
# }
# s.public_header_files = 'Pod/Classes/**/*.h'
# s.frameworks = 'UIKit', 'MapKit'
# s.dependency 'AFNetworking', '~> 2.3'
end
5、编写完成后,先进行本地检查,使用,如何可以就是绿色,不然会报错
$ pod lib lint XMPopover.podspec
只要见到 XMPopover passed validation. 就是成功通过了验证
添加自己的库文件
1、删除ReplaceMe.m文件,同时将你封装好的文件,放到Classes文件夹里面
WeChatee9bdeff26148c67d134aea92d071696.png
2、切换到Example下进行pod install (把刚才拖入到class里的文件夹pod进来)
$ pod install
3、添加完代码,执行以下指令上传到远程仓库
$ git add .
$ git commit -m "提交内容描述"
$ git push
3、发布项目到Cocoapods上去需要添加版本号的,并创建同名分支branch,用如下指令添加版本号
//添加版本号
$ git tag -a 0.1.0 -m "版本0.1"
//创建同名分支
$ git branch 0.1.0
//查看版本号
$ git tag
//将本地的添加的tag同步到远程代码仓库
$ git push --tag
验证本地podspec文件
1、打开podspec所在文件目录
$ cd xxx.podspec所在文件目录
2、使用验证命令
#验证书写格式 --verbose:详细信息 --use-libraries:使用了静态库 --allow-warnings:允许警告
$ pod spec lint xxx.podspec
$ pod spec lint xxx.podspec --allow-warnings
#验证库编译
$ pod lib lint --allow-warnings
注:看到 xxx.podspec passed validation. 就说明验证通过
推送到podspec文件的Specs仓库
$ pod trunk push xxx.podspec
$ pod repo push xxx xxx.podspec --allow-warnings
出现如下日志就表示发布成功了
Updating spec repo `trunk`
Validating podspec
Updating spec repo `trunk`
--------------------------------------------------------------------------------
🎉 Congrats
🚀 xxx (1.0.0) successfully published
📅 March 08 st, 18:27
🌎 https://cocoapods.org/pods/xxx
👍 Tell your friends!
尝试引入第三方依赖库
我们还可以在.podspec文件中指定其他的依赖,比如我们想基于AFNetworking,封装一套属于自己的网络请求库,那么我们就可以一并将AFNetworking也pod下了,只需要增加一行代码即可
s.dependency 'AFNetworking', '~> 4.0'
网友评论