图文解析--(trunk方式)手把手叫你如何把代码上传至CocoaPods

原文地址:https://www.jianshu.com/p/689a6f832e51

### 一、概述
>CocoaPods应该是iOS最常用最有名的类库管理工具了,通过CocoaPods,只需要一行命令就可以完全解决,当然前提是你必须正确设置它。重要的是,绝大部分有名的开源类库,都支持CocoaPods。所以,掌握CocoaPods的使用是必不可少的基本技能了。OK,话不多说。上干货!


###二、准备工作
>1.一台已经安装了CocoaPods的电脑,而且版本至少是0.33版本。打开终端输入```$ pod --version```查看当前pod版本。如果尚未安装或者版本过低的童鞋,请自行升级或安装![安装更新参考文档](http://www.code4app.com/article/cocoapods-install-usage)。
>2.如果不会使用终端命令将代码放到Git上的童鞋,请自行下载Git客户端[sourceTree中文版](https://github.com/xicaiZhou/sourceTree-)!(当然如何将代码上传到git,客官先别急,请往下看)!
>3.[Sublime Text](https://github.com/xicaiZhou/sub)文本编辑器,我们要使用它编辑.podspec文件!
###三、准备工作结束,开始分步操作!
#####1.将代码上传至[Github](https://github.com/)
>(1).在Git上创建项目!(****本次演示Demo只为教学效果,这个demo在演示之前就已经上传了Git,但是没有上传CocoaPods,所以,会有提示!***)!创建项目时需要注意,项目名称(唯一),README,Gitignore,license(如无特殊,选择MITLicense)!如下图!![97BA195F-91CD-436F-A64D-FA7751C29BB7.png](http://upload-images.jianshu.io/upload_images/1818449-fe05ee349c36fa4d.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/450)


>(2).将在Git上创建的库,通过sourceTree克隆到本地!打开sourceTree,选择右边设置按钮!![5C2C23C0-6F11-49DB-B19D-A875FFEC0F96.png](http://upload-images.jianshu.io/upload_images/1818449-2f64a8c2f978e5a6.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/450)打开后选择底部添加按钮来添加你的Git账号!![F771A0A3-E38D-440B-A02C-971B79A0DD63.png](http://upload-images.jianshu.io/upload_images/1818449-c4324c44d5e23196.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/450)协议的话如果不会弄SSH,那就选择HTTPS吧。链接成功后,在sourceTree客户端中选择远端。这样就会看见你在git上所有的库!然后克隆到本地!简单吧!


>(3)将你的源码放到git库所在本地的文件夹内(下图演示的文件夹结构)![1A14C27D-6FBE-454D-B06F-05ED6CC29633.png](http://upload-images.jianshu.io/upload_images/1818449-87e1daefe7cc96f6.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/450)操作之后你的sourceTree就会有你的文件改动信息(如果没有变动信息,那就去Git的本地库中找到`.git`文件,这是隐藏文件,[如何显示隐藏文件](https://jingyan.baidu.com/article/9113f81b0741e52b3314c756.html)。输入隐藏命令之后,千万要记得重启find哦。重启之后,再次打开文件夹就会发现`.git`文件,把他删除掉就ok了。
![8D6FD9E5-F8EF-4063-BEE7-9E3BFC90A326.png](http://upload-images.jianshu.io/upload_images/1818449-d45cd35d391d6fc3.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/450)然后双击打开选择提交然后推送![3619693D-F9B5-4CB5-9B47-EC2FA14F7651.png](http://upload-images.jianshu.io/upload_images/1818449-37d780e8d7264521.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/450)就上去喽!
#####2.创建并编辑`.podSpec文件`
>(1).创建打`.podSpec文件`。开终端,切换路径。然后输入``` pod spec create xxxxxxx```,例如我要输入```pod spec create ZXCCalender```![4DCC0BB4-4AC0-438E-AC24-E66AA0BFEE31.png](http://upload-images.jianshu.io/upload_images/1818449-72b8e4d4a1f63916.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/450)然后你会发现你的文件夹呢出现一个`xxxxxx.podSpec`文件。


>(2).编辑`.podSpec`文件。使用`Sublime Text`打开`.podSpec`文件。里面有很多的配置文件,文件讲解如下。


 s.name:名称,pod search 搜索的关键词,注意这里一定要和.podspec的名称一样,否则报错
s.version:版本号 注意这里的版本号不能高于你项目在Git的版本号(那如何在Git上打版本,客观别急,请往下看!)
s.summary: 总结、概要
s.description :描述
s.homepage:项目主页地址(url)![image.png](http://upload-images.jianshu.io/upload_images/1818449-bba5e699e86ca836.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/450)s.license:许可证
s.author:作者
s.ios.deployment_target:  支持的pod最低版本
s.source:项目的地址![image.png](http://upload-images.jianshu.io/upload_images/1818449-afcab36199d78e84.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/450)s.resources: 资源文件
s.source_files:需要包含的源文件
s.requires_arc: 是否支持ARC
s.framework:依赖库




建议直接将下面的代码`复制`到文件中后对应修改。
```


@version = "1.0.0"


Pod::Spec.new do |s|
  s.name          = "ZXCCalender"
  s.version       = @version
  s.summary       = "日历农历法定节假日"
  s.description   = "快速集成日历,新手练习,简单日历"
  s.homepage      = "https://github.com/xicaiZhou/ZXCCalender"
  s.license       = { :type => "MIT", :file => "LICENSE" }
  s.author        = { "ZXC" => "zhouxicaijob@163.com" }
  s.ios.deployment_target   = "8.0"
  s.source        = { :git => "https://github.com/xicaiZhou/ZXCCalender.git", :tag => "v#{s.version}" }
  s.resources    = "ZXCCalender/*.{png}"
  s.source_files  = "ZXCCalender/*.{h,m}"
  s.requires_arc  = true
  s.framework     = "UIKit"
end
```
>文件写好后,我们用soureTree将源码再次提交至Git!然后我再在Github上对项目打版本tag。![2492408E-E6C9-4671-A23E-B35CB014BCCF.png](http://upload-images.jianshu.io/upload_images/1818449-3954ddd615e3c4b8.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/450)![F4B3862C-76CC-40E3-A4D2-E485CD0604D6.png](http://upload-images.jianshu.io/upload_images/1818449-fed0eefbebc3fcef.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/450)
![E0B7304D-AEE6-4875-923D-679C0223F420.png](http://upload-images.jianshu.io/upload_images/1818449-65622d612c44da81.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/450)![265D2E21-619A-4B99-8F04-B312B35703FE.png](http://upload-images.jianshu.io/upload_images/1818449-a65847f049e6fc27.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/450)


>(3).验证`.podSpec`文件。在终端输入```pod spec lint```进行验证。从此进入坑的世界。
验证成功后如下图。( 由于各种问题,最终打了4次tag成功)![573A1E02-1768-49A8-ADC6-80FDA67C8AFF.png](http://upload-images.jianshu.io/upload_images/1818449-a44746c541db2d40.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/450)
如果出错:我们可以再错误信息中找到原因。对应的进行修改,修改成功后,一定要重新打版本一定要重新打版本一定要重新打版本,然后修改`.podSpec`文件的版本。然后通过sourceTree使本地仓库和远端Git一致,也就是说,如果在本地修改的版本和tag,要提交并推到远端仓库。或者说在远端仓库修改的版本和tag,要在本地抓取最新版。


#####3.注册CocoaPods Trunk
>在注册之前,在强调一遍要确保你的CocoaPods的版本在0.33之上。使用 ```pod --version```查看本地版本。如果过低使用```sudo gen install cocoapods```进行更新。在更新中出现问题,请在第二模块准备工作中的第一部分寻找答案!


>如果有人注册过CocoaPods Trunk,在终端输入```pod trunk me```正确显示如下![48DFF68B-F035-488F-9B6B-79945E40E315.png](http://upload-images.jianshu.io/upload_images/1818449-41496218374b9a9b.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/450)


>如果没有注册的童鞋,请输入```pod trunk register zhouxicaijob@163.com 'xicaizhou'  --verbose```,其中邮箱要使用有效的而且在使用的邮箱,这里建议使用GitHub注册的邮箱, '这里输入用户名(建议使用GitHub名)', --verbose加上这个是为了打印你注册详细信息,当你注册失败时,可以找到bug。


>注册成功后,你输入的邮箱号的邮箱有收到一封邮件。如果没有收到邮件,请查看垃圾信箱。


#####4.使用Trunk上传`.podSpec`文件。
>![image.png](http://upload-images.jianshu.io/upload_images/1818449-c4925d10c235d5fc.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/450)在这个路径下输入```pod trunk push ZXCCalender.podSpec```(验证加上传可能需要大约3分钟)成功后如下,
![image.png](http://upload-images.jianshu.io/upload_images/1818449-47bde6554d78b51a.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/450)这就上传成功啦!
#####5.最后一步了!(验证是否能搜到)
>输入```pod search ZXCCalender```![image.png](http://upload-images.jianshu.io/upload_images/1818449-77ce520dee9cf571.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) 如果出现这种情况不要慌,输入```rm ~/Library/Caches/CocoaPods/search_index.json```![image.png](http://upload-images.jianshu.io/upload_images/1818449-115ad3ed9716022a.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)然后再次输入```pod search ZXCCalender```,如果还是出现上述情况,还是不用慌。操作这么久你也累了吧!先放松两个小时,等你回来就会搜到了!因为CocoaPods可能在审核你的代码哦!你也可以去[CocoaPods](https://cocoapods.org)搜索哦!
![image.png](http://upload-images.jianshu.io/upload_images/1818449-a26fac282c6d4972.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/450)
过了段时间就可以搜到了哦
![image.png](http://upload-images.jianshu.io/upload_images/1818449-c504e2e1b87bb141.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/450)




#####四、结束语
>本次解析到此结束了哦,小编可能遇到的错误不是很多,如果你是按照我的步骤操作出现问题请联系我哦,我将帮你解决问题共同进步,并且会将你的问题更新到博客中。为后来人把坑填平!我的邮箱是zhouxicaijob@163.com。喜欢的请关注哦!
#####五、总结
>代码在于折腾!





























 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值