OC和swift 中 CocoaPods 的 安装和使用方法(Mac)

来源:互联网 发布:linux系统移植是干嘛的 编辑:程序博客网 时间:2024/05/17 19:16

CocoaPods是一个负责管理iOS项目中第三方开源代码的工具。使用CocoaPods可以为我们节省设置和更新第三方开源库的时间。 下面将分为两部分来讲述如何安装和使用CocoaPods。

安装方法

这里安装的深层原理不加以解释了,想了解的朋友访问本文末尾的链接。这里只描写最简化的步骤。

在终端里执行以下命令:

sudo gem install cocoapods

要是不成功执行以下操作

# 添加 taobao Mirror 不然被墙掉没办法下载 
gem sources --remove https://rubygems.org/gem sources -a http://ruby.taobao.org/  # 查看是否成功gem sources -l# 安装 sudo gem install cocoapods 


如果还不成功,可能是因为,Ruby环境不够新,可能需要更新以下:

sudo gem update --system

之后再重新执行

sudo gem install cocoapods

配置CocoaPods

假设在桌面上有个项目 Test

1.创建Podfile,在终端执行以下命令

# 进入项目的路径cd desktop/Test/# 创建Podfile文件touch Podfile

2.手动或使用终端打开Podfile文件,写入内容(举例如下)并保存

platform :ios, “7.0” pod "AFNetworking", "~> 2.0"


你也可以在终端进行搜索所要用的第三方库,查看其版本,然后按上述方法写入(写入时只需要接着添加pod “xxxx”,"~> x.x"这一句就可以)比如搜索JSONKit,偷懒找的一张图=.=



3.安装或更新库,在终端执行以下命令
# 以下两个命令任选其一# 安装库pod install# 更新库pod update

到项目中使用

到这里就已配置完成。这时你会发现项目文件夹里比刚创建室多了下面几个文件

PodfilePodfile.lockPodsTest.xcworkspace

这里要注意的是再次打开项目要打开Test.xcworkspace,而不是在打开Test.xcodeproj,打开之后项目里就会有相关的Pod生成的项目管理文件。

至此,OC环境下就可以直接在需要的类里面#import "AFNetworking.h"了。而swift中使用参考swift与objective-c混编,设置好直接在桥接文件里面引用即可。


另外,有关CocoaPods pod install/pod update 下载慢的问题

最近使用CocoaPods来添加第三方类库,无论是执行pod install还是pod update都卡在了Analyzing dependencies不动

原因在于当执行以上两个命令的时候会升级CocoaPods的spec仓库,加一个参数可以省略这一步,然后速度就会提升不少。加参数的命令如下:

pod install --verbose --no-repo-update

pod update --verbose --no-repo-update


遇到的问题:

ld:library not found for -lPods

这里问题产生的原因是build Phases-Link Binary With Libraries里多了两个有关pod的.a文件,点击show in the finder时是不存在的,把这两个.a删除就好了

这应该也能作为ld:library not found for -lXXX这种类似问题的解决方法。

CocoaPods的安装使用和常见问题

1.在执行sudo gem install cocoa pods指令安装的时候提示下面的错误
ERROR: Error installing cocoapods:
activesupport requires Ruby version >= 2.2.2.
在命令行输入:ruby -v来查看当前ruby的版本.确定版本是低于2.2.2后就可以开始进行ruby的升级.
具体升级ruby的方法可以参考:
http://blog.csdn.net/lissdy/article/details/9191351 这个链接中的内容(大体操作过程相同,只是要安装的版本号的差异,大家也可以自行查找其它资料来升级自己的ruby)

解决方法: 由于你的ruby版本偏低,需要升级你电脑上的ruby.

一般通过rvm来升级ruby.也可参考:Mac上更新Ruby

最后两步的安装过程较慢


2.出现错误:'The sandbox is not sync with the Podfile.lock'

错误如下显示:
diff: /../Podfile.lock: No such file or directory diff: Manifest.lock: No such file or directory error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.` 

解决办法:终端执行 pod install 重新安装更新即可,执行之前应确保 pod 已经安装。

3.执行  pod install 时出现 is not used in any concrete target. 问题

原因:这是pod的版本更新后导致的问题,要为pod里的内容指定target才可以,否则就会出现 上述错误。

解决办法:修改 podfile 以指定target

示例:

修改前:

platform :ios, ‘7.0‘pod ‘ReactiveCocoa‘, ‘2.1.8‘pod ‘objectiveflickr‘, ‘2.0.4‘pod ‘LinqToObjectiveC‘, ‘2.0.0‘pod ‘SDWebImage‘, ‘3.6‘

修改后:

platform :ios, ‘7.0‘target "工程Target名字" dopod ‘ReactiveCocoa‘, ‘2.1.8‘pod ‘objectiveflickr‘, ‘2.0.4‘pod ‘LinqToObjectiveC‘, ‘2.0.0‘pod ‘SDWebImage‘, ‘3.6‘end
之后在运行 pod install 就可以了。


4.出现 pod[!] Unable to add a source with url `https://github.com/CocoaPods/Specs.git` named `master`.You can try adding it manually in `~/.cocoapods/repos` or via `pod repo add`.

解决方案:

pod repo add master https://github.com/CocoaPods/Specs.git 
然后提示执行'pod setup'

如果出现

pod[!] The `master` repo is not a git repo. 

进入/users/你的用户名/.cocoapods/repos,删除master文件夹然后执行

podpod setup 

如果是安装多个Xcdoe,还需要选择Xcode的路径

sudo xcode-select -switch /Applications/Xcode.app/ 
在终端里输入下方命令可以知道Xcode的路径:
xcode-select -p

参考文章:

http://www.jb51.net/article/55323.htm

http://www.cocoachina.com/industry/20140627/8962.html

http://www.mamicode.com/info-detail-1174267.html

http://www.jianshu.com/p/6e5c0f78200a

http://www.qingpingshan.com/rjbc/ios/181464.html

等。


1 0