转载自:邦Ben的《iOS CocoaPods 安装笔记(持续更新)
今天悲催的公司电脑被空调积水给泡了,要重新安装,反正我是记不住这些步骤的了,所以从以前的CSDNblog中迁移过来方便看
CocoaPods 能让开发者非常方便的使用第三方类库,不用自己去管理依赖问题,以及非arc等编译条件在mac 系统下调用终端:
基本的步骤是 gem install cocoapods -> pod setup -> pod init -> edit Podfile -> pod install -> open xcworksapce (期间出现对应的问题 就对应解决)
1、安装cocoapods
转载注:这里也可以brew搞定
为了防止gem安装更新失败,因此先替换为国内的淘宝的镜像源,否则在天朝的网络限制中会很慢很慢
gem sources --remove https://rubygems.org/ //等有反应之后再敲入以下命令 (淘宝源地址更新为https了) gem sources -a https://ruby.taobao.org/ //或者 更新为 ruby-china的镜像 gem sources -a https://gems.ruby-china.org/
检查一下看看
gem sources -l *** CURRENT SOURCES *** https://ruby.taobao.org/
使用gem安装cocoapods
sudo gem install cocoapods //现在pod 1.0 版本安装流程有点变化,有可能出现不能替换镜像源的问题,因此建议先装 0.39版本,全部安装完成后再升级到1.0版本 sudo gem install cocoapods -v 0.39 //现在多数的资料都是是0.39版本前的
如果gem出现错误先更新gem然后重新开始
//没什么问题就不要更新这个了,容易出现问题 sudo gem update --system //更新后请重新设置下taobao镜像源 //如果还有问题 请看下面
2、设置pod源码(初始化cocoapods) -- 重要问题都在这
如果pod setup 可以将github的代码下载得动,那你就不用去折腾什么oschina源了
pod setup //会将Specs.git的代码下载到~/.cocoapods/repo/master //如果还是太慢,尝试下 pod install --verbose
如果setup很慢甚至卡住 (都是因为天朝的网络原因)
为了pod install / update 的时候加快速度,specs仓库镜像换成coding上的镜像或者是 oschina 上的镜像所以建议先更换数据源
pod repo remove master //coding 上有每日更新的,建议使用这个 pod repo add master https://git.coding.net/CocoaPods/Specs.git //或者用oschina,但是https 好像有问题,一直是403,所以用ssh的方式,这里需要到官网去配置ssh key pod repo add master https://git.oschina.net/akuandev/Specs.git
如果提示失败或者setup不成功,方案有两种:
1) 手动将代码clone下来 【该方法比较有效】
转载注:网上有的文章指出可以pod repo 直接更换master源,这个方法在1.0.0已经不好用了,会提示如下错误:
[!] To setup the master specs repo, please run pod setup.
正确做法是,自己从一个镜像clone,然后执行:
git clone https://git.coding.net/CocoaPods/Specs.git ~/.cocoapods/repos/master pod setup //务必在手动下载代码后执行一次,执行后 Setup completed //在执行 pod install --verbose --no-repo-update //避免去更新了
2) 降到0.39,setup之后再升级到1.0吧
这个好像不好用
3、Cocoapods 具体使用方法
直接在需要加入cocoapods项目的根目录新建Podfile文件
$pod init //会生成模板的Podfile文件 //或者手动创建 $touch Podfile
编辑 Podfile文件
platform :ios pod 'AFNetworking'
单独某个target依赖pod( 在1.0中要求必须指定target了)
target 'XXXTarget' do pod 'AFNetworking' pod 'Masonry' end
然后再执行 pod setup 即可以后每次更改 Podfile文件 则执行 pod update 即可如果在初始化的时候出现:如果安装后出现
[!] The platform of the target `Pods` (iOS 4.3) may not be compatible with `Reachability (3.2)` which has a minimum requirement of iOS 6.0 - OS X 10.8.
则修改 Podfile 为
platform :ios, '6.0'
update 后如果出现大量提示
错误 target overrides the `OTHER_LDFLAGS`...
则项目中Building setting 设置中 搜索Other Linker Flags的地方,添加一条
`$(inherited)`
以后打开项目点击xcworksapce后缀的文件,不要点击原来的项目文件
至此,已经结束,愉快地使用吧
4、出现问题总结
如果 pod update / pod install 命令执行过慢
(首次运行的时候不要)执行pod install还是pod update都卡在了Analyzing dependencies不动原因在于当执行以上两个命令的时候会升级CocoaPods的spec仓库,加一个参数可以省略这一步,然后速度就会提升不少。
加参数的命令如下:
pod install --verbose --no-repo-update pod update --verbose --no-repo-update
gem install 出现 ERROR: While executing gem ... (Gem::FilePermissionError)
解决方法:
sudo gem install -n /usr/local/bin cocoapods
或者:
$ mkdir -p $HOME/Software/ruby $ export GEM_HOME=$HOME/Software/ruby $ gem install cocoapods //打印 $ export PATH=$PATH:$HOME/Sofware/ruby/bin $ pod --version
或者重新安装rvm
//Install Homebrew:(已经装过就不用了) $ ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" // Install RVM: $ \\curl -sSL https://get.rvm.io | bash -s stable --ruby $ gem install cocoapods
出现 Invalid \Podfile file
[!] Invalid `Podfile` file: incompatible character encodings: UTF-8 and ASCII-8BIT. Updating CocoaPods might fix the issue.
这是编码的问题,有两种原因,
1.你的设备确实不支持utf8,
2.你本身录入文本有问题查看编码
localhost:xib cty$ locale
执行命令后出现
LANG="zh_CN.UTF-8"LC_COLLATE="zh_CN.UTF-8"LC_CTYPE="zh_CN.UTF-8"LC_MESSAGES="zh_CN.UTF-8"LC_MONETARY="zh_CN.UTF-8"LC_NUMERIC="zh_CN.UTF-8"LC_TIME="zh_CN.UTF-8"LC_ALL=
发现都是zh,强制设置一下
localhost:xib cty$ export LC_ALL=en_US.UTF-8 localhost:xib cty$ export.UTF-8
再检查一下
LANG="en_US.UTF-8"LC_COLLATE="en_US.UTF-8"LC_CTYPE="en_US.UTF-8"LC_MESSAGES="en_US.UTF-8"LC_MONETARY="en_US.UTF-8"LC_NUMERIC="en_US.UTF-8"LC_TIME="en_US.UTF-8"LC_ALL="en_US.UTF-8"
好像好了,继续pod install吧
[!] Invalid `Podfile` file: incompatible character encodings: UTF-8 and ASCII-8BIT. Updating CocoaPods might fix the issue.
问题依然把所有可能的配置都试一遍
gem install rails
然后
gem install rdoc
然后
gem install nokogiri --no-ri --no-rdoc
这些都设置完一般不会出现问题了,再有问题,可能是文本录入的问题2的解决办法,如果你是手动输入的这个需要注意,copy别人的也要检查一下打开键盘偏好设置设置单引号格式,当然冒号我还没找到怎么设置,一般错误会提示给你哪写错了这里不再提示utf8的错误了,输入法的错误,但是我切换了半天设置了半天还是没解决冒号,只能吧
The `master` repo requires CocoaPods 0.18.1 -
这个错误是在升级阶段出现的,升级
gem update cocoapods
- 使cocopods管理开源库编译出现Library not found for -lPods问题的解决方法
- 点击菜单栏上 Product > Edit Scheme
- 选择Build
- 加入Pods static library, 并且保证 pods 处于第一个位置
- Clean and build 项目
如果在导入头文件的时候发现无法自动补全,或者PCH文件中提示File not found
在User headers search path(在Project 和 Target 都修改)中
${SRCROOT} --右侧选择recursive
Jenkins 脚本打包中出现 uft-8问题
[33mWARNING: CocoaPods requires your terminal to be using UTF-8 encoding.
在pod install 之前执行
export LC_ALL="en_US.UTF-8" pod install --no-repo-update
2017.04.01更新:如何切换到Developing Pod
pod 'Name', :path => '~/code/Pods/'
2017.04.01更新:如何切换到TesingPod
pod 'NAME', :git => 'https://example.com/URL/to/repo/NAME.git'
2016.10.27补充:如何更换pod版本
sudo gem install -n /usr/local/bin cocoapods -v 1.0.1 --verbose sudo gem uninstall cocoapods
2016.11.07补充:如何使用两个pod版本
pod _1.0.1_ xxxx
2016.11.09补充:如何只升级某个pod的版本
pod update --no-repo-update HyphenateSDK