CocoaPods-安装、卸载中可能遇到的问题
1,首先是可能遇到的问题,安装方法网上一搜一大堆,这里不详细讲述,主要讲我遇到的问题。
(1)安装问题(在使用中,你可能回去更新这更新那(源,或者cocoapods)也会有此类问题):
gem sources -l
如果显示:
*** CURRENT SOURCES ***
https://rubygems.org/
gem sources --remove https://rubygems.org/
增加http://ruby.taobao.org/源(国内的)
gem sources -a https://ruby.taobao.org/
会提示:表示成功了
https://ruby.taobao.org/ added to sources
查看一下
gem sources -l
*** CURRENT SOURCES ***
https://ruby.taobao.org/
运行:
sudo gem install cocoa pods
这个时候可能问题来了:有错误
Fetching: cocoapods-core-0.39.0.gem (100%)
Successfully installed cocoapods-core-0.39.0
Fetching: cocoapods-downloader-0.9.3.gem (100%)
Successfully installed cocoapods-downloader-0.9.3
Fetching: cocoapods-plugins-0.4.2.gem (100%)
Successfully installed cocoapods-plugins-0.4.2
Fetching: cocoapods-search-0.1.0.gem (100%)
Successfully installed cocoapods-search-0.1.0
Fetching: cocoapods-stats-0.6.2.gem (100%)
Successfully installed cocoapods-stats-0.6.2
Fetching: cocoapods-try-0.5.1.gem (100%)
Successfully installed cocoapods-try-0.5.1
Fetching: cocoapods-trunk-0.6.4.gem (100%)
Successfully installed cocoapods-trunk-0.6.4
ERROR: While executing gem ... (Errno::EPERM)
Operation not permitted - /usr/bin/pod
别慌:跑一下 gem list
应该没有这个 cocoapods (0.39.0)
跑一下这个:
sudo gem install -n /usr/local/bin cocoapods
如果不行先跑一下这个:
sudo chmod +rx /usr/local/bin/
再跑
sudo gem install -n /usr/local/bin cocoapods
查看一下:
which pod
会有显示(别说你没有哈):
/usr/local/bin/pod
跑一下
gem list
看有没有了(有了吧)
cocoapods (0.39.0)
cocoapods-core (0.39.0)
cocoapods-downloader (0.9.3)
cocoapods-plugins (0.4.2)
cocoapods-search (0.1.0)
cocoapods-stats (0.6.2)
cocoapods-trunk (0.6.4)
cocoapods-try (0.5.1)
这样就 OK 了。
如果你遇到这些问题:别慌,卸载重装吧
问题:
/Library/Ruby/Site/2.0.0/rubygems.rb:254:in `bin_path': can't find gem cocoapods (>= 0.a) (Gem::GemNotFoundException)
from /usr/local/bin/pod:22:in `<main>'
/Library/Ruby/Site/2.0.0/rubygems/dependency.rb:320:in `to_specs': Could not find 'cocoapods' (>= 0) among 33 total gem(s) (Gem::LoadError)
Checked in 'GEM_PATH=/Users/sifenzi/.gem/ruby/2.0.0:/Library/Ruby/Gems/2.0.0:/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/gems/2.0.0', execute `gem env` for more information
from /Library/Ruby/Site/2.0.0/rubygems/dependency.rb:329:in `to_spec'
from /Library/Ruby/Site/2.0.0/rubygems/core_ext/kernel_gem.rb:65:in `gem'
from /usr/local/bin/pod:22:in `<main>'
Cocoapods降低版本及卸载
有的时候我们需要降低Cocoapods的版本来解决第三方库的兼容问题。
1.移除pod组件
查看cocoapods组件装在哪里:
which pod
移除
sudo rm -rf <path>
移除cocoa pods程序包
sudo gem uninstall cocoa pods
安装指定的程序包
sudo gem install cocoapods -v 0.38.0
为了阅读方便下面的内容转载来自《工具-CocoaPods安装和使用及卸载》:http://www.cnblogs.com/hlfme/p/4645437.html
CocoaPods是iOS最常用的第三方类库管理工具,绝大部分有名的开源类库都支持CocoaPods。
我们在使用gem更新的时候,经常会为速度抓狂,其实gem默认的源是https://rubygems.org,比较慢众所周至的原因了。
可以将源更换到国内的taobao源
查看当前有的源
1
|
gem sources -l
|
移除https://rubygems.org源
1
|
gem sources --remove https:
//rubygems.org/
|
增加http://ruby.taobao.org/源
1
|
gem sources -a http:
//ruby.taobao.org/
|
添加完用gem sources -l
再查看一下,请确保只有http://ruby.taobao.org/这一个.然后执行
sudo gem install cocoapods
安装成功后,接着执行命令:
pod setup
如果Ruby环境不够新,可能需要更新以下:
sudo gem update --system
至此安装就完成了,我们可以尝试搜索一个第三方类库:
pod search AFNetworking
使用CocoaPods的第一步,是在当前项目下,新建一个Podfile文件:
touch Podfile
然后利用vim打开Podfile文件编辑,加入你想要使用的类库,格式如下:
platform :ios pod 'Reachability', '3.1.0' platform:ios, '6.0' pod 'JSONKit','1.4' pod 'AFNetworking', '~> 2.3.1'
如果是拷贝的别人的项目,或是一个很久没打开过的项目,可能需要先执行一下:
pod update
最后一步,执行命令:
pod install
当终端出现类似下面的提示后,就代表成功了:
[!] From now on use `Sample0814.xcworkspace`.
这个时候会看到项目文件夹下多了一个文件xxx.xcworkspace,以后要通过这个文件打开项目,老项目文件xxx.xcodeproj不再使用。
P.s.1 上面的每一步都有可能出现问题,但大部分问题都是因为大局域网的原因,用一个网速稳定的境外VPN可破。
P.s.2 如果上面因为权限问题安装失败,必须每次都要删除
rm -rf /Users/loginnanme/Library/Caches/CocoaPods/
因为这个缓存中会存下你的github的东西,造成每次都调用上次权限问题的缓存。
P.s.3 关于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的版本,写这个限制和什么都不写是一个效果,都表示使用最新版本
P.s.4 在项目中删除cocoapod步骤如下:
1. 删除工程文件夹下的Podfile、Podfile.lock及Pods文件夹
2. 删除xcworkspace文件
3. 使用xcodeproj文件打开工程,删除Frameworks组下的Pods.xcconfig及libPods.a引用
4. 在工程设置中的Build Phases下删除Check Pods Manifest.lock及Copy Pods Resources
Cocoapods降低版本及卸载
有的时候我们需要降低Cocoapods的版本来解决第三方库的兼容问题。
1.移除pod组件
查看cocoapods组件装在哪里:
1 which pod
移除pod组件
1 sudo rm -rf <path>
2.移除RubyGems 中的Cocoapods程序包
查看gems中本地程序包
1 gem list
输出如下图:
移除cocoapods程序包
1 sudo gem uninstall cocoapods -v 0.37.2
1 sudo gem uninstall cocoapods-core -v 0.37.2
安装制定版本的cocoapods
1 sudo gem install cocoapods -v 0.38.0