代码上传的前提是Github上已经配置好(包括忽略文件和Lincence),且代码在Github.
图片.png1、检查cocoapods版本###
cocoapods版本要确保大于0.33.0,如果不满足执行命令更新pod版本,命令如下:
<pre><code>pod --version //查看pod版本</code></pre>
<pre><code>sudo gem install cocoapods //更新pod</code></pre>
- 切记最好不要使用beta版本
2、注册邮箱和用户###
<pre><code>pod trunk register email@**.com 'username' --verbose</code></pre>
成功之后要打开邮箱进行验证,内容大致如下:
<pre>Hi usename,
Please confirm your CocoaPods session by clicking the following link:
https://trunk.cocoapods.org/sessions/verify/18996b08
If you did not request this you do not need to take any further action.
Kind regards, the CocoaPods team</pre>
点击链接进行验证,链接上用个地方点击‘terminal’,直接返回终端
成功之后可以用命令测试
<pre><code> pod trunk me </code></pre>
信息大致如下:
本地信息.png3、给代码打tag并推到github###
<p> 将路径切换到工程目录下 执行命令如下:</p>
<pre><code> git tag 0.0.1 // 给代码打tag,0.0.1 是你的版本号 </code></pre>
<pre><code> git push --tag // 推送tag到github </code></pre>
<pre><code> git tag // 查看所有的tag </code></pre>
<p><code> 删除本地tag git tag -d 版本号 </code></p>
<p><code> 删除远程tag git push origin --delete tag 版本号 </code></p>
4、创建并配置podspec###
将路径切换到工程目录下 执行命令
<pre><code> pod spec create Refresh //Refresh一般和工程名保持一致(非强制) </code></pre>
执行结束生成一个Refresh.podspec,里面的信息请自行查看。
下面是一些最基本的信息(已删除注释等):
<pre>Pod::Spec.new do |s|
s.name = 'SCPeriodicScrollView'
s.version = '0.0.1' #些处的版本要和上面设置的tag保持下一致
s.summary = 'A fast, lightweight carousel figure.'
s.description = 'A fast, lightweight carousel figure, which is based on UICollectionView.'
s.homepage = 'https://github.com/tsc000/SCPeriodicScrollView'
s.license = 'MIT'
s.author = { 'tsc000' => 'email@qq.com' }
s.platform = 'ios'
s.ios.deployment_target = '7.0'
s.source = { :git => 'https://github.com/tsc000/SCPeriodicScrollView.git', :tag => s.version }
s.source_files = 'SCPeriodicScrollView/Source/*.{h,m}'
s.framework = 'UIKit'
s.requires_arc = true
s.dependency "SDWebImage"
end </pre>
<p>对于.podspec文件也可以找到一个第三方库的东西拿出来修改一下就可以。</p>
5、验证podspec文件###
执行命令验证.podspec中的填写信息
<pre><code> pod lib lint </code></pre>
如果有错误的话它会提示。但是注意的是如果有警告也是不会验证通过的,对于无关紧要的警告(包括代码中的)可以使用命令
<pre><code> pod lib lint --allow-warnings //忽略警告</code></pre>
下面我主要说下可能遇到的问题:
源文件路径不正确###
<pre>
s.source_files = "Refresh/Refresh/Source.{h,m}"
s.public_header_files = "Refresh/Refresh/Source/.h" </pre>
source_files和public_header_files 目录一定要从你的工程根目录算起
依赖库####
<pre><code>s.dependency "JSONKit" //不写版本号直接更新最新的依赖库</code></pre>
描述长度问题####
<pre> s.summary = "123"
s.description = "1234"</pre>
- description的长度一定要比summary的长
Tag问题####
如果pods中已经有一个版本,如果将些删掉,然后修改代码重新提交成相同的tag,那么,再用Pods集成的时候还是上一个版本的代码,
6、将代码推送到Cocoapods###
<p>执行命令</p>
<pre><code>pod trunk push Refresh.podspec //推送代码到Cocoapods</code></pre>
同样如果有不紧要的警告也要加--allow-warnings
<pre><code>pod trunk push Refresh.podspec --allow-warnings //推送代码到Cocoapods</code></pre>
7、上传成功之后pods更新###
<p>代码库传入 pods之后如果 'pod search 库名' 搜索不到那么要进行<pre>pod setup</pre>操作。setup的操作是将本地仓库和服务器进行同步,同步之后也可能会出现还是搜索不到,但是在cocoapods 官网上明明可以搜的到,这时要做的是下面的操作</p>
执行命令清除搜索索引,因为新添加的库不在索引范围内
<pre><code>rm ~/Library/Caches/CocoaPods/search_index.json</code></pre>
执行完毕之后再重新search(可能会卡在 Creating search index for spec repo 'master'.. 不要急,慢慢等...) ,这时会生成新的搜索索引,新的搜索索引将会包含你的库
其它:
删除cocoapods中某一个库版本
<pre><code>pod trunk delete 库名 库版本号</code></pre>
网友评论