CocoaPods安装使用及上传

时间:2023-01-28 07:04:20

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/

CocoaPods安装使用及上传

上面的命令,有时试了会没有效,请参考淘宝网的https://ruby.taobao.org

CocoaPods安装使用及上传
$ 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
CocoaPods安装使用及上传

3.安装Cocoapods,在终端输入命令(10.11以上,请跳过该步骤,看第4点)

$ sudo gem install cocoapods

等上十几秒钟,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左右,就是完成了

得到结果如下图:

CocoaPods安装使用及上传

从这个图上,我们看到AFN有好多版本,最新的版本是2.6.0.

2.打开xcode,新建一个工程,工程名为CocoapodsSample。

使用命令cd,cd后面跟的是工程目录名,可以直接拉进来,

CocoaPods安装使用及上传

回车后,输入命令创建Podfile文件

$ touch Podfile

CocoaPods安装使用及上传

我们可以看到,在根目录下,多了一个Podfile文件

CocoaPods安装使用及上传

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保存退出。

CocoaPods安装使用及上传

这个时候打开Podfile文件就会看到里面添加了刚才在终端输入的两行语句,如下图

CocoaPods安装使用及上传

4.这时候,你就可以利用CocoPods下载AFNetworking类库了。还是在终端中的当前项目目录下,运行以下命令:

$ pod install 

安装成功后,如下图:

CocoaPods安装使用及上传

这个时候,会看到多了一个.xcworkspace工程,以后打开项目就用 CocoapodsSample.xcworkspace 打开,而不是之前的.xcodeproj文件。

CocoaPods安装使用及上传

5.打开 CocoapodsSample.xcworkspace 工程,你会惊喜地发现,AFNetwoking已经成功导入项目了。

现在,你就可以开始使用AFNetworking.h啦。可以稍微测试一下,在你的项目任意代码文件中输入:

#import <AFNetworking.h>
或者
#import "AFNetworking.h"

然后编译,看看是否出错。如果你严格按照小编上述的步骤来,是不可能出错的啦。

CocoaPods安装使用及上传

另:

如果有一些包已经存在了,或者我们更改了Podfile里面的版本,可以使用以下命令更新

$ pod update

关于Podfile文件编辑时,第三方库版本号的各种写法:

CocoaPods安装使用及上传
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安装使用及上传

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

输出如下信息就表示你注册成功,可以进行下面的流程:

CocoaPods安装使用及上传

二、配置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!,稍等片刻就会出现