将代码提交到CocoaPods超详细的操作步骤和图解

本文详细介绍如何通过CocoaPods提交iOS开源项目至GitHub,包括代码提交、版本标记、.podspec文件创建与验证、CocoaPods版本更新、提交至trunk流程及版本更新方法。

操作步骤: 
一:提交代码到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

 

转载于:https://my.oschina.net/zsyzone/blog/1588572

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值