操作步骤:
一:提交代码到GitHub并打Tag
二:更新CocoaPods版本
三:新建.podspec文件并进行验证,然后提交.podspec文件到trunk中
四:搜索工程并创建新工程进行测试
五:更新版本,重新上传新版本
一:提交代码到GitHub并打Tag
创建完成如下图:
检出仓库
1、打开Xcode,选择 Xcode—>Preferences偏好设置—->Account —> Add Repository,输入仓库的地址Address和GitHub的用户名和密码
仓库添加完成后如下图:
2、创建完成,需要将仓库检出到本地,Source Control —> Check Out…
找个位置保存起来
如果.git和.gitignore隐藏文件没显示出来:在终端中输入defaults write com.apple.finder AppleShowAllFiles -bool true,你也可以复制黏贴,然后点击enter键执行该命令。注意执行完后,只是换一行,并不会弹出特殊的提示,重启Finder就可以看见了。
3、将写好开源框架/库的Demo或者Example放到git仓库下,还要将要开源的文件夹也放入到git仓库中(该文件夹在后面会被用到)
4、 切换到git仓库目录,并提交该工程(.podspec, LICENSE 这两个文件必须提交到git上)
cd /Users/zhangshiyu/Desktop/ZSYLOG
git add -A
git commit -m "first commit for version 0.0.1"
git push origin master
提交之后刷新github可以看到提交的文件:
5、 打tag(这一步不能少,后面.podspec文件会用到该版本号)
git tag '0.0.1'
git push -–tags
如果在操作过程中想删除tag,可以使用如下命令(删除tag不属于整个过程的步骤,这里只是提供删除tag的命令,在需要的使用可以查看):
git tag // 查看tag
git tag -d 0.0.1 //删除一个指定的tag
git push origin :refs/tags/0.0.1 // push到远程tag
二:更新CocoaPods版本
1、查看cocoapods的版本号
pod - -version
2、确保cocoapods的版本号大于0.33,如果不大于需要先更新版本(无论版本号多大最好都更新一下)
sudo gem install cocoapods
3、注册Trunk账户(邮箱地址建议写成github注册的邮箱,用户名写成github对应的用户名)
pod trunk register 邮箱地址 ‘用户名’ –verbose
4、注册命令执行完之后,对应的邮箱地址会收到一封邮件,“请确认您的注册CocoaPods通过点击以下链接:”,打开链接地址完成验证,如果地址不能点击就直接粘贴URL到浏览器上执行
查看自己的注册信息
pod trunk me
三:新建.podspec文件,并提交.podspec文件到trunk中
1、创建.podspec文件
.podspec文件的作用是为了让CocoaPods搜索引擎知道该代码的作者、版本号、概要、描述、源代码地址、部署版本、依赖的框架等描述信息。 .podspec文件可以自动生成,但是因生成会生成很多没有用的信息,所以建议在github上找一个.podspec文件修改一下参数即可。
pod spec create ZSYLOG // 生成ZSYLOG.podspec文件
注意:将代码提交到CocoaPods最容易出错的地方就是该.podspec文件,有可能多一个键或者少一个键、写错一个值都有可能在提交时出错,这里给出一份我的库中的,建议将我的.podspec文件拷贝一份,然后修改每个键对应的值,一般.podspec文件名和仓库的名字一致,编辑的时候最好用VIM,用文本编辑器编辑会把英文的""变成中文的“”
Pod::Spec.new do |s|
s.name = "ZSYLOG"
s.version = "0.0.1"
s.ios.deployment_target = '7.0'
s.summary = "A delightful LOG framework."
s.homepage = "https://github.com/zhang4yu2009/ZSYLOG"
s.license = { :type => "MIT", :file => "LICENSE" }
s.author = { "zhang4yu2009" => "647976802@qq.com" }
s.social_media_url = "https://weibo.com/u/3298692504"
s.source = { :git => "https://github.com/zhang4yu2009/ZSYLOG.git", :tag => s.version }
s.source_files = "ZSYLOG"
s.resources = "ZSYLOG"
s.requires_arc = true
end
s.name:名称,pod search 搜索的关键词,注意这里一定要和.podspec的名称一样,否则报错 s.version:版本号 s.ios.deployment_target:支持的pod最低版本 s.summary: 简介 s.homepage:项目主页地址 s.license:许可证 s.author:作者 s.social_media_url:社交网址,这里我写的微博默认是Twitter,如果你写Twitter的话,你的podspec发布成功后会@你 s.source:项目的地址 s.source_files:需要包含的源文件 s.resources: 资源文件 s.requires_arc: 是否支持ARC s.dependency:依赖库,不能依赖未发布的库,如 s.dependency = ‘AFNetworking’ s.dependency:依赖库,source_files和resources的路径是从.podspec文件同级的文件夹开始的,如有多个可以这样写 source_files:路径比较深写法及含义建议大家写第一种或者第二种,如果就一层第三种就行
"ZSYLOG/*"
"ZSYLOG/*.{h,m}"
"ZSYLOG"
- “*” 表示匹配所有文件
- “*.{h,m}” 表示匹配所有以.h和.m结尾的文件
- “**” 表示匹配所有子目录
s.source 常见写法
s.source = { :git => "https://github.com/zhang4yu2009/ZSYLOG.git", :commit => "68defea" }
s.source = { :git => "https://github.com/zhang4yu2009/ZSYLOG.git", :tag => 0.0.1 }
s.source = { :git => "https://github.com/zhang4yu2009/ZSYLOG.git", :tag => s.version }
commit => “68defea” 表示将这个Pod版本与Git仓库中某个commit绑定 tag => 0.0.1 表示将这个Pod版本与Git仓库中某个版本的comit绑定 tag => s.version 表示将这个Pod版本与Git仓库中相同版本的comit绑定
2. 提交之前先验证.podspec文件是否合法
pod spec lint ZSYLOG.podspec
这里报错了
因为之前提交代码到Github的时候还没创建.podspec文件,我们重新提交
git add -A
git commit -m "first commit for version 0.0.1"
git push origin master
删除tag
git tag // 查看tag
git tag -d 0.0.1 //删除一个指定的tag
git push origin :refs/tags/0.0.1 // push到远程tag
重新打tag
git tag '0.0.1'
git push -–tags
再验证.podspec文件是否合法
pod spec lint ZSYLOG.podspec
成功
若果校验失败报下面错误,执行执行一下echo “2.3” >.swift-version命令, 如果是其他错误可能是.podspec文件配置有问题
echo “2.3” >.swift-version
3、提交.podspec文件到trunk中
pod trunk push ZSYLOG.podspec
只要验证通过,提交时一般没有什么问题, 一般会卡在“Updating spec repo ‘master’”, 这时不要关闭终端,要等,根据网络不同提交时可能要花几分钟时间,甚至是10分钟都有可能,成功如下图:
4. 查找提交成功的库
pod search ZSYLOG
如果查不到会报错如下:
删除~/Library/Caches/CocoaPods目录下的search_index.json文件
rm ~/Library/Caches/CocoaPods/search_index.json
在执行
pod search ZSYLOG
如果还是不行,执行pod setup
- 在终端输入
pod setup
,会出现Setting up CocoaPods master repo
,等几分钟,会输入Setup completed
,说明pod setup
执行成功。 - 继续删除~/Library/Caches/CocoaPods目录下的search_index.json文件,
- 终端输入
rm ~/Library/Caches/CocoaPods/search_index.json
- 删除成功后再执行
pod search ZSYLOG
- 输出:
Creating search index for spec repo 'master'.. Done!
稍等片刻
搜索成功
5. 创建工程测试
1、创建ZSYLOGTest工程,切换ZSYLOGTest目录,并新建Podfile文件
2、 安装
pod install --verbose --no-repo-update // 不会升级CocoaPods的spec仓库,速度快
3. 关闭Xcode,重新打开ZSYLOGTest.xcworkspace
导入头文件测试
四:更新版本,重新上传新版本
假如github上的程序版本0.0.1有bug,需要修复,修复好代码以后,
1、首先要提交代码(ZSYLOGDemo)到git仓库中(注意除了提交Demo程序,还要提交要开源的文件夹,如本示例中的ZSYLOG文件夹),并修改.podspec文件中的version字段s.version = “0.0.2”
git add -A
git commit -m “fixed bug”
git push origin master
2、给项目打一个新的tag
git tag ‘0.0.2’
git push --tags
3、提交.podspec文件到trunk中即可
pod trunk push ZSYLOG.podspec
4、重复 “三-4. 查找提交成功的库” 看能否查到新版本
5、修改测试工程的Podfile文件
pod ‘ZSYLOG’, ‘~>0.0.2’
6、重新安装第三方库,并查看安装下来的是否是想要的版本
pod install --verbose --no-repo-update