美文网首页iOS学习Swift学习iOS tips
CocoaPods安装及bug解决方案

CocoaPods安装及bug解决方案

作者: coderYJ | 来源:发表于2016-03-16 16:28 被阅读2939次

为什么要用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 配置成功

    是不是so easy
    Updating local specs repositories
  • 11.退出终端

以下是我在安装cocoaPods中出现的一些错误及解决方案,分享给大家


  • 错误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 by Podfile
    Specs satisfying the AFNetworking (~> 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 the master repo. If this is an unexpected issue and persists you can inspect it running pod 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.如果出现这种情况


    代表你的工程中已经有第三方库了,cocoapods不知道路径,需要手动告诉他路径

    需要在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头文件


    新建OC头文件
  • 2.导入第三方库


    导入第三方库
  • 3.配置路径


    追寻到工程路径就可以了
  • 4.路径寻找


    路径寻找,相对路径

第二种解决办法需要在 Podfile 中增加一句代码

use_frameworks!
Podfile 中增加一句代码 use_frameworks!

然后再次执行更新就可以了

pod update

相关文章

网友评论

  • 玩呀玩:dependency were found, but they required a higher minimum deployment target.
    一本正经的扯犊子
    GXL_CR:的确是一本正经的扯犊子
    玩呀玩:@coderYJ 看了一下 感觉不对当然不用了… 修改了deployment target 我就按照提示改的…
    coderYJ:你自己使用了吗?
  • nuannuan_nuan:错误3的描述是不是错了“Podfile文件 中 platform:ios, ‘3.0.4’ 后边的 3.0.4 是平台版本号 ,一定要加上”,应该是ios, '8' AFNetworking '3.0.4'吧
    coderYJ:@nuannuan_nuan 谢谢哈,确实有问题,一时疏忽
  • 3b73ac1e6515:[!] /usr/bin/git clone https://github.com/CocoaPods/Specs.git master

    Cloning into 'master'...
    error: RPC failed; curl 56 SSLRead() return error -9806
    fatal: The remote end hung up unexpectedly
    fatal: early EOF
    fatal: index-pack failed

    军哥,pod setup出现上面的情况是怎么回事呀
    3b73ac1e6515:@coderYJ pod setup速度太慢,一下午都不成功换成镜像索引 pod repo add master https://gitcafe.com/akuandev/Specs.git 之后也不行出现 [!] To setup the master specs repo, please run `pod setup`.错误,是还需要配置其他东西才能用镜像索引吗
    coderYJ:@cd_chen 网络有问题, 你找个网速比较好的地方
  • Alexander:军哥, 我每次打开podfile的时候, 打开的podfile直接显示进程已经完成, 这是怎么回事啊?
    Alexander:@coderYJ 多谢军哥
    coderYJ:@阿叔Alex 不要用终端打开,用Xcode或者文本编辑器打开
  • 無漾:请问,你有没有遇到"RuntimeError - can't modify frozen String"这个报错
    coderYJ:@無漾 你好,最近比较忙,你的这个错误解决了吗?
    無漾:@YJ007 https://github.com/CocoaPods/CocoaPods/issues/1444
    coderYJ:@無漾 具体报什么错可以发我看一下吗?
  • codeTao:很好,解决的系统版本升级,pods不能用的问题!

本文标题:CocoaPods安装及bug解决方案

本文链接:https://www.haomeiwen.com/subject/ekwqlttx.html