将自己的开源项目提交到CocoaPods
制作第一个Pod
时百度了好多,也在官网上看了很久,踩了很多坑才弄好。这里只记录一些关键步骤用于以后查阅(因为教程太多了)。
创建仓库
在 GitHub
上创建仓库的时候添加一个MIT License
。
创建 podspec
将自己的仓库克隆岛本地后要创建 podspec
文件,以DLKeyboardManager
为例,命令为 :
cd DLKeyboardManager
pod spec create DLKeyboardManager
然后要编辑 podspec
文件,可以使用终端来编辑(vim DLKeyboardManager.podspec
),不过很不好用,我用的 Sublime Text
。
podspec
文件中很多以 #
开头的文字,其实这应该是被注释掉的,可以选择性的编辑,其余的根据提示来填写,其中也有一些不必要的,注释掉就行。大体上是这个样子的:
Pod::Spec.new do |s|
s.name = "DLKeyboardManager"
s.version = "0.0.1"
s.summary = "方便监听Keyboard的show和hide."
s.homepage = "https://github.com/TheForgottenProgrammer/DLKeyboardManager"
s.license = { :type => "MIT", :file => "LICENSE" }
s.author = "Dalang"
s.platform = :ios, "8.0"
s.source = { :git => "https://github.com/TheForgottenProgrammer/DLKeyboardManager.git", :tag => "#{s.version}" }
s.source_files = "DLKeyboardManager", "DLKeyboardManager/**/*.{h,m}"
s.framework = "UIKit"
end
这里要注意的是 s.source_files
,它关系到你的pod
中的文件,所以一定要构建好你的文件目录结构。DLKeyboardManager
的目录结构是这样的:
然后将自己的仓库添加标签和版本,提交到 GitHub
:
git add .
git commit -m "0.0.1"
git tag 0.0.1
git push --tags
git push origin master
验证 podspec 文件
很简单,就一句指令:
pod spec lint DLKeyboardManager.podspec
或
pod spec lint DLKeyboardManager.podspec --allow-warnings
提交到Cocoapods
第一次提交需要先注册,官方给出的例子为:
pod trunk register orta@cocoapods.org 'Orta Therox' --description='macbook air'
- aaa@qq.com
邮箱,注册时成功后会给你发一封邮件用来验证。 - Orta Therox
用户名。 - macbook air
一个描述,这个描述很耐人寻味,才开始的时候百度到的教程写了一句“这里写描述”,我就随便写了一句,结果没通过,然后把官网上的指令粘上去,替换自己的邮箱和用户名,将“macbook air”改成了“macbook pro”,然后就通过了||-_-||。
注册成功后提交:
pod trunk push DLKeyboardManager.podspec --allow-warnings
提交成功后可能会有延迟,可以执行:
rm ~/Library/Caches/CocoaPods/search_index.json
pod setup
然后就可以搜索到了
pod search DLKeyboardManager
/*
-> DLKeyboardManager (0.0.1)
方便监听Keyboard的show和hide.
pod 'DLKeyboardManager', '~> 0.0.1'
- Homepage: https://github.com/TheForgottenProgrammer/DLKeyboardManager
- Source: https://github.com/TheForgottenProgrammer/DLKeyboardManager.git
- Versions: 0.0.1 [master repo]
*/
大功告成!
删除和修改
第一次操作的时候可能就成功了,但是之后发现里面有了喝多不必要的文件,需要修改,就按照上面的方式,调整仓库目录结构,修改 podspec
文件,重新提交新的版本。完美主义者可能不会允许这样的瑕疵,于是删除重新开始:
pod trunk delete DLKeyboardManager 0.0.1
—
参考:
http://www.cocoachina.com/ios/20180112/21842.html
https://www.jianshu.com/p/0e1d796b2a42
https://www.jianshu.com/p/a1339d45a324
http://www.cocoachina.com/ios/20160301/15459.html
https://www.cnblogs.com/richard-youth/p/4704413.html
https://www.jianshu.com/p/283584683b0b