CocoaPods
配置Ruby环境
- 查看当前
ruby
环境
gem sources -l
- 如果当前环境为
https://rubygems.org/
,则先删除该环境,执行
gem sources --remove https://rubygems.org/
添加国内源,执行
gem source -a https://gems.ruby-china.org (推荐使用)
gem sources -a https://ruby.taobao.org/ (淘宝源不维护了,不建议使用)
- 再次查看环境
gem sources -l
,显示为https://ruby.taobao.org/
,则接下来就可以开始安装CocoaPods
。
安装CocoaPods
- 安装
CocoaPods
,执行
sudo gem install cocoapods
- 如果出现
ERROR: Error installing cocoapods:
activesupport requires Ruby version >= 2.2.2.
说明 ruby
环境 需要升级到2.2.2版本以上,而目前使用的 ruby
版本是mac
系统自带的1.8.7,所以需要对 ruby
升级。可执行
brew install ruby
对ruby升级,但前提要先安装HomeBrew
安装 HomeBrew
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
详情可看这里HomeBrew。
- Ruby 升级后,再次执行
sudo gem install cocoa pods
以及pod setup
注:
pod setup
的作用:将所有第三方的Podspec索引文件更新到本地的~/.cocoapods/repos目录下。即使在安装时不执行此命令,在初次执行pod install
命令时,系统也会自动执行pod setup
。
我们需要把这个Podspec文件保存到本地,这样才能让我们使用命令pod search 开源库
搜索一个开源库,怎样才能把github上的Podspec文件保存本地呢?那就是pod setup
并且在执行pod setup命令时,会出现:
Setting up CocoaPods master repo
说明Cocoapods在将它的信息下载到 ~/.cocoapods里
可 cd ~/.cocoapods
使用 du -sh * 来每隔几分钟查看文件大小。该文件很大,并且以后会越来越大,耐心等待。
屏幕快照 2016-08-11 上午12.27.23.png
- 安装完成执行
pod --version
查询是否安装成功,install成功会显示pod的版本。 -
CocoaPods
如果需要更新,可执行sudo gem update cocoa pods
,更新至最新版本。iOS 10.11 升级CocoaPods
会出现问题,详细解答可参考解决OS X 10.11之后CocoaPods的升级问题中的方案。
使用CocoaPods导入第三方库
- 搜索第三方库,以SDWebImage为例,该第三方库需要支持
CocoaPods
。
pod search SDWebImage ,搜索结果为SDWebImage的版本信息。
cd 项目目录
touch Podfile / pod init 创建一个 Podfile 文件
打开 Podfile ,编辑内容。
注:使用Xcode打开,或者在终端使用vim编辑Podfile,否则会报一下错误:
[!] Your Podfile has had smart quotes sanitised. To avoid issues in the future, you should not use TextEdit for editing it. If you are not using TextEdit, you should turn off smart quotes in your editor of choice.
Podfile 内容:
platform :ios, ‘8.0’ 指定开源库被编译在哪个平台以及平台的最低版本
inhibit_all_warnings! 屏蔽cocoapods库里面的所有警告
xcodeproj 'TestProject' xcodeproj,现在被project代替,这个变量就别使用了
workspace 'TestProject' 指定应该包含所有projects的Xcode workspace.
use_frameworks! 使用frameworks动态库替换静态库链接
target 'TestProject' do 指定特定Target的依赖库
pod 'AFNetworking'
pod 'SDWebImage'
pod 'MJRefresh'
end
Podfile编辑完成后,执行pod install
加载第三方库。
注:无论是执行
pod install
还是pod update
, 如果都卡在了Analyzing dependencies不动, 原因在于当执行以上两个命令的时候会升级CocoaPods的spec仓库, 加一个参数可以省略这一步, 命令如下:
pod install --verbose --no-repo-update
或
pod update --verbose --no-repo-update