CocoaPods安装使用及上传
1.升级Ruby环境
- sudo gem update --system
如果Ruby没有安装,请参考 如何在Mac OS X上安装 Ruby运行环境
2.安装CocoaPods时我们要访问cocoapods.org,用淘宝的RubyGems镜像来代替官方版本,执行以下命令:
- $ gem sources --remove https://rubygems.org/
- //等有反应之后再敲入以下命令
- $ gem sources -a https://ruby.taobao.org/
为了验证你的Ruby镜像是并且仅是taobao,可以用以下命令查看:
- $ gem sources -l
只有在终端中出现下面文字才表明你上面的命令是成功的:
- *** CURRENT SOURCES ***
- http://ruby.taobao.org/
上面的命令,有时试了会没有效,请参考淘宝网的https://ruby.taobao.org

- $ gem sources --add https://ruby.taobao.org/ --remove https://rubygems.org/
- $ gem sources -l
- *** CURRENT SOURCES ***
- https://ruby.taobao.org
- # 请确保只有 ruby.taobao.org
- $ gem install rails

3.安装Cocoapods,在终端输入命令(10.11以上,请跳过该步骤,看第4点)
- $ sudo gem install cocoapods
等上十几秒钟,CocoaPods就可以在你本地下载并且安装好了,不再需要其他设置。
4.10.11以上,上面的命令是不生效了,因为10.11把cocoapods直接干掉了(这里可能会报错, Ruby的版本太低了, 必须是2.2.0以上版本, 不然
- sudo gem update --system 都会报错不然)
- sudo gem install -n /usr/local/bin cocoapods
- 再加一句,完美解决
- sudo xcode-select --switch /Applications/Xcode.app
在终端中输入如下命令来完成安装:
- //将 CocoaPods Specs repository复制到你电脑上~/.cocoapods目录下
- pod setup
它需要一点时间来完成,你等就是了
如果安装失败 ~/.cocoapods 里面是空的,就需要重新setup
命令如下:
- pod repo remove master
- pod setup
完毕之后这个文件夹大概有 将近200M,需要花费比较多时间,请耐心等待。
到这里你已经成功安装了CocoaPods
Cocoapods使用
1.使用search命令搜索类库名
- $ pod search AFNetworking
出现Setting up CocoaPods master repo,说明Cocoapods在将它的信息下载到 ~/.cocoapods里;
cd 到该目录里,用du -sh *命令来查看文件大小,每隔几分钟查看一次,这个目录最终大小是400多M左右,就是完成了
得到结果如下图:
从这个图上,我们看到AFN有好多版本,最新的版本是2.6.0.
2.打开xcode,新建一个工程,工程名为CocoapodsSample。
使用命令cd,cd后面跟的是工程目录名,可以直接拉进来,
回车后,输入命令创建Podfile文件
- $ touch Podfile
我们可以看到,在根目录下,多了一个Podfile文件
3.使用vim编辑podfile文件,使用命令
- $ vim Podfile
然后在Podfile文件中输入以下文字:
platform :ios, '7.0'
target "testCocoa" do
pod 'MBProgressHUD', '~> 0.8'
pod 'AFNetworking', '~> 3.0'
end
这两句文字的意思是,当前AFNetworking支持的iOS最高版本是iOS 7.0, 要下载的AFNetworking版本是2.5.0。
testCocoa是你项目的名字
在编辑完后按 esc,然后按":",这个时候输入wq保存退出。
这个时候打开Podfile文件就会看到里面添加了刚才在终端输入的两行语句,如下图
4.这时候,你就可以利用CocoPods下载AFNetworking类库了。还是在终端中的当前项目目录下,运行以下命令:
- $ pod install
安装成功后,如下图:
这个时候,会看到多了一个.xcworkspace工程,以后打开项目就用 CocoapodsSample.xcworkspace 打开,而不是之前的.xcodeproj文件。
5.打开 CocoapodsSample.xcworkspace 工程,你会惊喜地发现,AFNetwoking已经成功导入项目了。
现在,你就可以开始使用AFNetworking.h啦。可以稍微测试一下,在你的项目任意代码文件中输入:
- #import <AFNetworking.h>
- 或者
- #import "AFNetworking.h"
然后编译,看看是否出错。如果你严格按照小编上述的步骤来,是不可能出错的啦。
另:
如果有一些包已经存在了,或者我们更改了Podfile里面的版本,可以使用以下命令更新
- $ pod update
关于Podfile文件编辑时,第三方库版本号的各种写法:

- pod ‘AFNetworking’ //不显式指定依赖库版本,表示每次都获取最新版本
- pod ‘AFNetworking’, ‘2.0’ //只使用2.0版本
- pod ‘AFNetworking’, ‘>2.0′ //使用高于2.0的版本
- pod ‘AFNetworking’, ‘>=2.0′ //使用大于或等于2.0的版本
- pod ‘AFNetworking’, ‘<2.0′ //使用小于2.0的版本
- pod ‘AFNetworking’, ‘<=2.0′ //使用小于或等于2.0的版本
- pod ‘AFNetworking’, ‘~>0.1.2′ //使用大于等于0.1.2但小于0.2的版本,相当于>=0.1.2并且<0.2.0
- pod ‘AFNetworking’, ‘~>0.1′ //使用大于等于0.1但小于1.0的版本
- pod ‘AFNetworking’, ‘~>0′ //高于0的版本,写这个限制和什么都不写是一个效果,都表示使用最新版本

cocoaPods的上传
一、注册trunk
在注册trunk之前,我们需要确认当前的CocoaPods版本是否足够新。trunk需要pod在0.33及以上版本,如果你不满足要求,打开Terminal使用ruby的gem命令更新pod:
1
|
sudo gem install cocoapods |
更新结束后,我们开始注册trunk:
1
|
pod trunk register zilin_weng @163 .com 'weng1250' --verbose |
邮箱以及用户名请对号入座。用户名我使用的是Github上的用户名。--verbose参数是为了便于输出注册过程中的调试信息。执行上面的语句后,你的邮箱将会受到一封带有验证链接的邮件,如果没有请去垃圾箱找找,有可能被屏蔽了。点击邮件的链接就完成了trunk注册流程。使用下面的命令可以向trunk服务器查询自己的注册信息:
1
|
pod trunk me |
输出如下信息就表示你注册成功,可以进行下面的流程:
二、配置PodSpec
在这一部分中我们需要做两件事:1、为你的代码添加podspec描述文件;2、将podspec文件通过trunk推送给CocoaPods服务器
2.1 添加podspec描述文件
这一步与更换trunk方式前的操作完全一样。什么是podspec描述文件呢?简单地讲就是让CocoaPods搜索引擎知道你的代码的作者、版本号、源代码地址、依赖库等信息的文件。任何支持CocoaPods的开源代码都必须有podspec文件。CocoaPods在github中用一个repo来管理所有支持CocoaPods的开源代码:https://github.com/CocoaPods/Specs。
那如何编写podspec文件呢?官方提供了一个模板并附有非常详细的注释说明。关于podspec文件的编写本文不打算详细讲。强烈建议你看这篇文章的第三节部分,第四第五节不必看因为已经过时了。
建议直接拿一些成熟的开源库的podspec改就行,生成的模板里有很多冗余的属性。
这里要注意一点,有时你写的podspec文件在后面push的时候会提示"The `source_files` pattern did not match any file."错误,但是能用pod lib lint命令做本地校验时又是OK的。为什么呢?上述错误的意思是pod在网络上根据你指定的路径找不到相关文件。这时候你要核对网上git仓库的路径与source_files(其他_files字段同理)要对应。*_files字段指的是网络git上的路径
2.2 通过trunk推送podspec文件
现在我们已经有了自己的podspec文件,但是在推送podspec文件之前你需要确认以下几点:
1、确保你的源码已经push到Github上。如果还没push源代码,可以用Terminal cd到本地源代码的根目录,执行:
1
2
3
|
git add -A git commit -m "first commit for version 1.0.0" git push origin master |
当然,你也可以使用SourceTree等GUI形式的Git客户端进行代码的推送操作。
2、确保你所push的代码已经打上"version tag",也就是给源代码打上版本号标签:
1
2
|
git tag '1.0.0' git push --tags |
只有确保了以上两点,CocoaPods才能更准确地找到你的repo。
现在我们开始通过trunk上传你的podspec文件。先cd到podspec文件所在目录,执行:
1
|
pod trunk push WZLBadge.podspec |
文件名自行对号入座。上面的代码做了三件事:(可以对着文章开头的流程图看)
1、验证你的podspec文件是否合法。在trunk方式之前我们一般用“pod lib lint”命令进行验证。
2、上传podspec文件到trunk服务器(其实最终也会自动添加到https://github.com/CocoaPods/Specs中,只是使用trunk方式省去了以前先fork在pull request的繁琐操作)
3、将你上传的podspec文件转成json格式文件
执行上面的push操作,就相当于你把你的源代码提交给CocoaPods团队审核了,一般需要一到两个工作日可以审核结束。这种心情有点像提交App给Apple审核,哈哈。
*更正:现在CocoaPods审核只需要几秒钟或者几分钟就可以完成了。
1、s.source_files 写错了
s.source_files = "MBProgressHUD+YF/Tool/**/*.{h,m}"
2、一定要打版本
git tag '1.0.0'
git push --tags
同时,记得 s.version = "1.0.0" 这里的两个版本要一致
3、pod lib lint 验证的时候有警告 --allow-warnings 了以后 , push的时候也要 在结尾加上, 不然还是通过不了
4、上传成功后,搜索不到, 记得 pod setup , 如果依然搜索不到,
终端输入rm ~/Library/Caches/CocoaPods/search_index.json
输出:Creating search index for spec repo 'master'.. Done!
,稍等片刻就会出现
CocoaPods安装使用及上传的更多相关文章
- 安装配置BITS上传服务
IIS 6.0和IIS 7.0 支持安装BITS上传组件. 下面以IIS7.0为例安装配置bits上传服务. 1.安装 首先确定服务器已经按装IIS服务.依次打开服务管理器->功能->添加 ...
- Windows 和 Mac 系统下安装git 并上传,修改项目
首先在MAC上怎么操作. 在gitHub创立一个账户,在创立一个项目,这就不用我说了对吧. 创建完之后是这样的: 接下来,我们打开https://brew.sh 这是下载homebrew的网站,hom ...
- linux(centos)下安装git并上传代码
cat /etc/redhat-release 查看系统版本信息 >>CentOS Linux release 7.4.1708 (Core) 背景:我已经注册了github账号,之前 ...
- CentOS安装GIt、上传项目到git仓库
上传项目 登录服务器后安装git yum install git 新建文件夹(仓库) mkdir *.git 初始化仓库 git init --bare *.git 在本地初始化仓库 git init ...
- Linux下vsftpd的安装,Java上传文件实现。
首先我们需要查看是否已经安装vsftpd,输入命令 :vsftpd -v.如果出现以下信息,那么就说明已经安装vsftpd 如果没有安装,那么输入命令 : yum install vsftpd ...
- CentOS安装Git,并上传、下载
转自:https://blog.csdn.net/u014066037/article/details/70224780 Git 一.安装Git $ yum install git 二. 生成SSH密 ...
- linux(centos)下安装git并上传代码些许步骤(亲自验证过的步骤)
曾经听说了好多次github,但直到近期才第一次学习使用github来托管自己在linux下的代码! 说实话.我自己在使用的时候从网上查了好多教程.但总认为难以掌握(步骤过于繁琐),自己操作的时候还 ...
- win10下git与gitlab安装与文件上传
目前了解到的版本管理工具有三种:gitlab GitHub 和 码云 个人感觉 gitlab 在公司用的较多 便于协同办公 GitHub各种资源有很多,适合个人使用 码云是中文版 便于入门 ...
- git安装和项目上传到GitHub
重装系统后,Git安装也要来重来 下载 国内下载地址:https://npm.taobao.org/mirrors/git-for-windows 安装忽略 生成密钥 输入然后都是下一步,生成密钥,生 ...
随机推荐
- java 27 - 3 反射之 通过反射获取构造方法并使用
类 Constructor<T>:提供关于类的单个构造方法的信息以及对它的访问权限. 通过反射的方法获取构造方法并使用 ps:先忽略泛型 A.1:获取构造方法的数组: public Co ...
- CTF中那些脑洞大开的加密(1)
0x01 目录 各种文本加密 Shell 1 2 3 4 5 6 7 8 9 10 11 12 换位加密: 1.栅栏密码(Rail-fence Cipher) ...
- IOS
网上课程:http://www.zhijieketang.com/ edu.51cto.com 码云:http://git.oschina.net/名字 Gesture:https://www.osc ...
- 队列Queue
java中,Queue是Collection接口的子接口,Queue的实现类很多,如LinkedList类. 实际使用可以用LinkedList写一个Queue类,实现入队.出队.求队长.判空.打印等 ...
- 画图解释 SQL join 语句
转:http://blog.jobbole.com/40443/ 本文由 伯乐在线 - 奇风余谷 翻译.未经许可,禁止转载!英文出处:Jeff Atwood.欢迎加入翻译组. 我认为 Ligaya T ...
- css相关问题
display:none和visibility:hidden的区别? 前几天遇到的这个问题,表格布局:::::display:none 隐藏对应的元素,在文档布局中不再给它分配空间,它各边的元素会合拢 ...
- Mysql备份系列(2)--mysqldump备份(全量+增量)方案操作记录
在日常运维工作中,对mysql数据库的备份是万分重要的,以防在数据库表丢失或损坏情况出现,可以及时恢复数据. 线上数据库备份场景:每周日执行一次全量备份,然后每天下午1点执行MySQLdump增量备份 ...
- rpc使用举例
#server.py from SimpleXMLRPCServer import SimpleXMLRPCServer def add(x,y): return x+y server=SimpleX ...
- java多线程系类:基础篇:06线程让步
本系类的知识点全部来源于http://www.cnblogs.com/skywang12345/p/3479243.html,我只是复制粘贴一下,特在此说明. 概要 本章,会对Thread中的线程让步 ...
- mac里git项目删除.DS_Store文件
用mac开发项目,每次提交文件时都生成修改文件的.DS_Store文件,提交时会不会觉得比较烦?别急,下面给出解决方案.我们需要用到.gitignore文件去配置Git目录中需要忽略的文件. .git ...