iOS开发-- 创建podspec文件,为自己的项目添加pod支
想让自己封装的组件等支持pod,就要创建podspec文件
1、上传项目源码
详细请看:Github 简明教程
2、创建项目的podspec文件
用终端命令cd到本地项目目录并执行如下命令:
pod spec create LSAlert
这时候本地就生成一个LSAlert.podspec
文件
用编辑器打开.podspec文件 (我自己用Sublime Text)
删除不必要的注释(这里只简单介绍基本用法,所以只用到一部分必须得字段 更多字段请移步http://guides.cocoapods.org/syntax/podspec.html)
Pod::Spec.new do |s|
s.name = "LSAlert"
s.version = "1.0.0"
s.summary = "A custom UIAlertView."
s.description = <<-DESC
这是一个自定义的UIAlertView,支持多按钮,无按钮,带图片的展示
DESC
s.homepage = "https://github.com/tianyc1019/LSAlert"
s.license = "MIT"
s.author = { "John_LS" => "tianyc1019@icloud.com" }
# s.platform = :ios
s.platform = :ios, "9.0"
s.source = { :git => "https://github.com/tianyc1019/LSAlert.git", :tag => "1.0.0" }
s.source_files = "LSAlert/**/*.{swift}"
# s.exclude_files = "Classes/Exclude"
end
3、验证podspec文件
编辑完podspec文件后,先打个tag标记
创建tag
git tag '1.0.0'
git push --tags
删除tag
//查看tag
git tag
//删除一个指定的tag,并上传一个空tag到远程tag
git tag -d <tagname>
git push origin :refs/tags/<tagname>
然后再验证下podspec文件是否正确,podspec文件不允许有任何的Warning或者Error
执行命令,
pod lib lint
(也可以用pod lib lint --allow-warnings 来忽略警告)
如果出现
-> LSAlert (0.0.1)
LSAlert passed validation.
如果出现Error但是提示信息不足,可以添加--verbose 以获取更多错误信息
$ pod lib lint --verbose
4、使用pod trunk命令,把podspec文件推送到CocoaPod官方库
pod trunk
需要注册 请移步CocoaPod官网
注册trunk 需要cocoapod是版本在0.33以上
执行命令
pod trunk register tianyc1019@icloud.com 'tianyc1019' --verbose
邮箱以及用户名请对号入座。用户名我使用的是Github上的用户名。--verbose参数是为了便于输出注册过程中的调试信息。执行上面的语句后,你的邮箱将会受到一封带有验证链接的邮件,如果没有请去垃圾箱找找,有可能被屏蔽了。点击邮件的链接就完成了trunk注册流程。使用下面的命令可以向trunk服务器查询自己的注册信息:
pod trunk me
如果你的pod是由多人维护的,你也可以添加其他维护者
pod trunk add-owner xxx@163.com
pod trunk
设置完毕后执行命令
$ pod trunk push LSAlert.podspec
可以使用--allow-warnings
忽略警告
pod trunk push LSAlert.podspec --allow-warnings
然后慢慢等着,有点慢
5、最后
如果一切顺利,先更新pod依赖库
pod setup
pod search LSAlert
就可以找到刚才的项目了 并且还有安装命令
pod 'LSAlert','~>0.0.1'
最后总结下操作步骤:
1.你的开源库发布之后,需要打上版本号tag,否则后续不能完成
2.注册pod trunk
pod trunk register xxx@xx'Your name' --description='macbook pro'
2.cd到项目目录下,创建podspec文件
pod spec createYourPodProjectName
3.修改podspec文件中的相关信息,这很重要,校验,不能有任何警告或错误
pod spec lint YourPodProjectName.podspec
4.发布到pod trunk
pod trunk pushYourPodProjectName.podspec
5.更新pod库
pod setup
podspec文件更新方法
有时你可能会遇到这种情况:执行pod trunk push操作后发现podspec文件的某个地方写错了,想更新一下。对于这种情况,我们可能会先尝试着在把podspec文件push一次。但是如果你的代码版本号没变(podspec里的version自然也没变)就会提示push失败,即使你更改了podspec的其他地方,pod也会认为这两个文件是同一个。 我目前为止找不到trunk的相关update接口,所以只能顺水推舟,更新源代码版本号(如:1.1.1->1.1.2),重新push version tag,然后再执行pod trunk push操作。