为什么要用CocoaPods
- 现在众所周知随着swift的出现,cocoaPods越来越🔥
- 为什么呢?
- 因为swift出现了一个叫命名空间的机制,也就是说整个工程在同一个命名空间下,不需要倒入头文件(也不需要再像OC那样加上前缀),不管那个类直接写就可以了,正因为如此出现了新的问题
- 在我们的工程中会倒入一些第三方框架,但是如果出现重名了怎么解决呢?
- 在OC中可以增加前缀来解决
- 现在Swift中
没有前缀也不需要导入头文件
,解决方案就是一个swift工程是一个命名空间,在不同的工程下(也就是意味着不同的命名空间下),相同的名称是不会冲突的,所以就需要用到cocoaPods
Xcode8 10.12 系统需要更换一下路径看我的文章
Xcode8更新CocoaPods报错解决办法
- 最新版 CocoaPods 的安装流程
注意:在终端输入命令的时候前面的$ 符去掉
- 1.移除现有Ruby默认源
$gem sources --remove https://rubygems.org/
- 2.使用新的源
$gem sources -a https://ruby.taobao.org/
- 3.验证新源是否替换成功
$gem sources -l
- 4.安装CocoaPods
(1) $sudo gem install cocoapods
备注:苹果系统升级 OS X EI Capitan 后改为
$sudo gem install -n /usr/local/bin cocoapods
(2) $pod setup
军哥提示:
出现Setting up CocoaPods master repo,说明Cocoapods在将它的信息下载到
~/.cocoapods里,这个目录最终大小是135.8多M(可能有误差,我自己测试的是这么大),就是完成了
当出现 `Setup completed` 代表设置成功,这个过程比较漫长,如果翻墙会快些
- 5.更新gem
$sudo gem update --system
- 6.测试cocoaPods是否安装成功
pod search 'AFNetWorking'
-7 新建Xcode工程,并在终端用cd指令到文件夹内
$pod search `第三方框架`
例如: pod search AFNetworking
8.新建文件 vim “Podfile”,
$vim Podfile
- 8.1.输入i
进入编辑模式 - 8.2 拷贝以下内容
source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '8.0'
pod 'AFNetworking'
- 8.3 :wq保存并退出
小提示:(vim命令按 i 编辑,esc退出编辑,:wq 保存并退出)
- 9.导入第三方库
$pod install
-
10 看到这个证明你的cocoaPods 配置成功
Updating local specs repositories - 11.退出终端
以下是我在安装cocoaPods中出现的一些错误及解决方案,分享给大家
- 错误1:
Error fetching http://ruby.taobao.org/:
bad response Not Found 404 (http://ruby.taobao.org/specs.4.8.gz)
解决方案:把安装流程中 $gem sources -a http://ruby.taobao.org/ ---改为----> $gem sources -a https://ruby.taobao.org/
- 错误2:
ERROR: While executing gem ... (Errno::EPERM)
Operation not permitted - /usr/bin/pod
解决方案:苹果系统升级OS X EI Capitan后会出现的插件错误,将安装流程中
(1)sudo gem install cocoa pods 改为
sudo gem install -n /usr/local/bin cocoapods
- 错误3:
[!] Unable to satisfy the following requirements: -AFNetworking (~> 3.0.4)
required byPodfile
Specs satisfying theAFNetworking (~> 3.0.4)
dependency were found, but they required a higher minimum deployment target. - 解决方案:安装流程:Podfile文件 中 AFNetworking~> ‘3.0.4’ 后边的 3.0.4 是第三方框架版本号,可以加上,也可以不加
- 错误4.
[!] CocoaPods was not able to update themaster
repo. If this is an unexpected issue and persists you can inspect it runningpod repo update --verbose
没有读写权限
尝试解决: - 尝试1、根据提示,跑一下 pod repo update --verbose
- 尝试2、如果还是出现原来问题,升级 gem update cocoapods(如果CocoaPods还不是最新版本)
- 尝试3、如果升级还是出现原来的问题,那么重装CocoaPods 。
首先查看本地装了关于cocoapods的哪些东西,在终端输入
gem list --local grep cocoapods
接着全部卸掉上面的,在终端输入
sudo gem uninstall cocoapods
再安装,在终端输入
gem install cocoapods
- 尝试4、如果问题依旧,那么请清除缓存再pod setup
清除命令
sudo rm -fr ~/.cocoapods/repos/master
初始化
pod setup
结论:之前的版本没有权限,移除再安装就好了
-
错误5.如果出现这种情况
需要在vim “Podfile”中增加
xcodeproj '你文件夹名称/工程名称.xcodeproj'
例如
xcodeproj '小码哥微博/小码哥微博.xcodeproj'
source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '8.0'
pod 'AFNetworking', '~> 3.0'
再次执行更新命令
pod install
之后你会发现你的工程中已经有了Pods了,并且三方框架也倒入进来了
-
错误6:
如果导入copds之后出现这样的问题
第一种解决办法需要桥接,也就是Swift和OC混编
-
1.新建OC头文件
-
2.导入第三方库
-
3.配置路径
-
4.路径寻找
第二种解决办法需要在 Podfile 中增加一句代码
use_frameworks!
然后再次执行更新就可以了
pod update