cocopods安装使用和安装过程中遇到的问题及解决办法(2016)

在osx 10.11之前cocopods问题不多,但是升级到11之后的版本,之前的cocopods大多用不了,需要重新安装,对于我这种使用测试版系统的技术狂来说,每次都需要重新安装很多东西,

当然,cocopods也避免不了安装很多次了。

对于新手来说,使用cocopods开发,还是节省了相当多的开发时间,以下便是cocopods安装和安装过程中遇到的问题及解决办法:

1、cocopods 安装:安装教程

2、出现以下问题,莫急:

1 bearsg:~ $ sudo gem install cocoapods
2 ERROR:  Could not find a valid gem 'cocoapods' (>= 0), here is why:
3           Unable to download data from http://ruby.taobao.org/ - bad response Not Found 404 (http://ruby.taobao.org/specs.4.8.gz)
4 bearsg:~ $ sudo gem install cocoapods 
5 ERROR:  Could not find a valid gem 'cocoapods' (>= 0), here is why:
6           Unable to download data from http://ruby.taobao.org/ - bad response Not Found 404 (http://ruby.taobao.org/specs.4.8.gz)
7 bearsg:~ boai$ sudo gem update --system
8 ERROR:  While executing gem ... (Gem::RemoteFetcher::FetchError)
9     bad response Not Found 404 (http://ruby.taobao.org/specs.4.8.gz)

解决办法:

(1)先执行下面两行代码:

1 sudo gem sources -r https://rubygems.org
2 sudo gem sources -a http://rubygems.org 

(2)执行过程如下:

1 bearsg:~ $ sudo gem sources -r https://rubygems.org
2 source https://rubygems.org not present in cache
3 bearsg:~ $ sudo gem sources -a http://rubygems.org
4 https://rubygems.org is recommended for security over http://rubygems.org
5  Do you want to add this insecure source? [yn]  y

最后会提示

Do you want to add this insecure source? [yn]  

你选择 y就行了
然后出现:

http://rubygems.org added to sources

这就说明成功了,就可以执行下面的安装了。

(3)安装cocopods

执行下面的语句:

 1 sudo gem install cocoapods 

会出现下面的界面:

boai:~ boai$ sudo gem install cocoapods
Fetching: nap-1.0.0.gem (100%)
Successfully installed nap-1.0.0
Fetching: thread_safe-0.3.5.gem (100%)
Successfully installed thread_safe-0.3.5
Fetching: tzinfo-1.2.2.gem (100%)
Successfully installed tzinfo-1.2.2
···
此处省略N行代码
····
Done installing documentation for nap, thread_safe, tzinfo, i18n, activesupport, escape, colored, molinillo, netrc, cocoapods-trunk, cocoapods-try, cocoapods-stats, cocoapods-search, cocoapods-plugins, cocoapods-downloader, claide, xcodeproj, fuzzy_match, cocoapods-core, cocoapods after 21 seconds
WARNING:  Unable to pull data from 'http://ruby.taobao.org/': bad response Not Found 404 (http://ruby.taobao.org/specs.4.8.gz)
20 gems installed

看到最后一行代码,你就放1万个心吧。。。

然后就可以查看你的pods版本了:

输入:pod

然后会出现下面的代码:

bearsg:~ $ pod
Usage:

    $ pod COMMAND

      CocoaPods, the Cocoa library package manager.

Commands:

    + cache      Manipulate the CocoaPods cache
    + init       Generate a Podfile for the current directory.
    + install    Install project dependencies to Podfile.lock versions
    + ipc        Inter-process communication
    + lib        Develop pods
    + list       List pods
    + outdated   Show outdated project dependencies
    + plugins    Show available CocoaPods plugins
    + repo       Manage spec-repositories
    + search     Search for pods.
    + setup      Setup the CocoaPods environment
    + spec       Manage pod specs
    + trunk      Interact with the CocoaPods API (e.g. publishing new specs)
    + try        Try a Pod!
    + update     Update outdated project dependencies and create new
                 Podfile.lock

Options:

    --silent     Show nothing
    --version    Show the version of the tool
    --verbose    Show more debugging information
    --no-ansi    Show output without ANSI codes
    --help       Show help banner of specified command
bearsg:~ $ 

这就安装成功了,就可以正常使用pod了。。。

3、接下来就可以在项目中使用了

打开终端:

cd 你的项目路径

bearsg:~ $ cd /Users/boai/Documents/Xcode项目/PodDemoTest 

在终端中进入(cd命令)你项目所在目录,然后在当前目录下,利用vim创建Podfile,运行:

$ vim Podfile

然后在Podfile文件中输入以下文字:

platform :ios, '9.2'
pod "AFNetworking", "~> 3.0.4"

注意,这段文字不是小编凭空生成的,可以在AFNetworking的github页面找到。这两句文字的意思是,当前AFNetworking支持的iOS最高版本是iOS 9.2, 要下载的AFNetworking版本是3.0.4。

然后保存退出。vim环境下,保存退出命令是:

:wq

这时候,你会发现你的项目目录中,出现一个名字为Podfile的文件,而且文件内容就是你刚刚输入的内容。注意,Podfile文件应该和你的工程文件.xcodeproj在同一个目录下。

这时候,你就可以利用CocoPods下载AFNetworking类库了。还是在终端中的当前项目目录下,运行以下命令

$ pod install

因为是在你的项目中导入AFNetworking,这就是为什么这个命令需要你进入你的项目所在目录中运行。

运行上述命令之后,小编的终端出现以下信息:

Wills-MacBook-Pro:CocoaPodsDemo Robin$ pod install
/Users/Robin/.rvm/gems/ruby-2.0.0-p643@global/gems/cocoapods-0.39.0/lib/cocoapods/command.rb:129: warning: Insecure world writable dir /Applications/Cocos/tools/ant/bin in PATH, mode 040777
Updating local specs repositories

CocoaPods 1.0.0.beta.4 is available.
To update use: `gem install cocoapods --pre`
[!] This is a test version we'd love you to try.

For more information see http://blog.cocoapods.org
and the CHANGELOG for this version http://git.io/BaH8pQ.

Analyzing dependencies
Downloading dependencies
Installing AFNetworking (3.0.4)
Generating Pods project
Integrating client project

[!] Please close any current Xcode sessions and use `CocoaPodsDemo.xcworkspace` for this project from now on.

注意最后一句话,意思是:以后打开项目就用 CocoaPodsDemo.xcworkspace 打开,而不是之前的.xcodeproj文件。

这就成功了,然后再看看你的项目路径里面,是不是多出来很多文件?

Podfile , Pods, PodDemotest.xcworkspace, Podfile.lock 等文件夹

然后双击*.workspace 文件就可以使用pods了!

现在,你就可以开始使用AFNetworking.h啦。可以稍微测试一下,在你的项目任意代码文件中输入

 #import<AFNetworking.h>

然后编译,看看是否出错。如果你严格按照上述的步骤来,是不可能出错的啦。

至此,CocoPods的第一个应用场景讲述完毕。总结一下就是:

下面继续讲述第二种使用场景。

二 、更新使用:如何正确编译运行一个包含CocoPods类库的项目

你也许曾经遇到过(特别是新手iOS开发者)这种情况,好不容易在GitHub上找到一份代码符合自己想需求,兴冲冲下载下来,一编译,傻眼了,发现有各种各样错误。一看,原来是缺失了各种其他第三方类库。这时候莫慌,你再仔细一看,会发现你下载的代码包含了Podfile。没错,这意味着你可以用CocoaPods很方便下载所需要的类库。

下面,以代码 prankPro-master为例来说明如何正确编译运行一个包含CocoPods类库的项目。

prankPro-master是一个类似GoPro的应用。当你去prankPro-master的GitHub地址下载这份代码之后,打开Example工程(prankPro-master),编译,你会发现Xcode报告一大堆错误,基本都是说你编译的这份代码找不到某某头文件,这就意味着你要成功编译prankPro-master的Example代码,必须先导入一些第三方类库。同时你会发现在prankPro-master文件夹下面有三个跟CocosPods相关的文件(文件夹):Podfile,Podfile.lock和Pods。这时候,打开终端,进入prankPro-master所在的目录,也就是和Podfile在同一目录下,和场景1一样,输入以下命令(由于已经有Podfile,所以不需要再创建Podfile):

$ pod update

过几秒(也许需要十几秒,取决于你的网络状况)之后,终端出现:

这时候,再回到prankPro-master文件夹看一看,会看到多了一个文件prankPro-master.xcworkspace:

根据终端的信息提示,你以后就需用新产生的prankPro-master.xcworkspace来运行这个Example代码了。

打开prankPro-master.xcworkspace,编译运行,成功!:

注意,这里有个小问题,如果刚刚你不是输入

$ pod update

而是输入

$ pod install

会发现类库导入不成功,并且终端出现下面提示:

[!] Required version (UAAppReviewManager (from `../`)) not found for `UAAppReviewManager`.
        Available versions: 0.1.6

这里的意思大概是Podfile文件过期,类库有升级,但是Podfile没有更改。pod install只会按照Podfile的要求来请求类库,如果类库版本号有变化,那么将获取失败。但是 pod update 会更新所有的类库,获取最新版本的类库。而且你会发现,如果用了 pod update,再用 pod install 就成功了。

那你也许会问,什么时候用 pod install,什么时候用 pod update 呢,我又不知道类库有没有新版本。好吧,那你每次直接用 pod update 算了。或者先用 pod install.如果不行,再用 pod update

2016-06 最新更新使用

安装步骤没有改变什么,只是部分使用方法不太一样

具体使用步骤如下

  • 打开Terminal(终端),cd到你的Project目录,输入一下命令:
pod init
  • 运行结束后,该目录下,会生成了一个Podfile文件

    • 使用文本编辑器(vim、Sublime Text2、等等…)打开它(Podfile),大概会看到以下的东西
platform :ios, 'xxx' # 目标平台及其版本use_frameworks! # swift项目需要这句话,是Objective-C项目的话,请在前面加个`#`注释掉target 'xxxx' do
# 在这里添加你的依赖库说明,如pod xxx
pod 'Alamofire', '~> 3.1’ # 例如这是引入Alamofire这个第三方库
end
  • 编辑完Podfile后,使用Terminal(终端)输入其中一个命令(需要cd到项目的根目录,即Podfile所在目录):
pod install --no-repo-updateorpod install
  • 第一个命令是不更新本地库信息进行安装,速度会快一点,毕竟不需要更新。但是会有一点点问题,当有一个新的库发布的时候,就会无法安装成功。如果不嫌麻烦,可以定时执行以下命令更新CocoaPods的库,然后就可以在一段时间使用以上的第一个命令进行安装:
pod repo update
  • 安装完成之后,打开项目就需要打开xxx.xcworkspace,而不是xxx.xcodeproj了

  • 如果在安装之后,修改了Podfile文件,可以执行以下的其中一个命令进行库的更新(两个命令的区别和上面说的一样):

pod update --no-repo-updateorpod update

OK,Over!


2016.12.06 追加更新

问题:最近更新第三方库的时候出现

[!] The `master` repo requires CocoaPods 1.0.0 -  (currently using 0.39.0)

  • 出错原因:没有更新到最新的cocoapods版本

  • 解决方案:

sudo gem install -n /usr/local/bin cocoapods –pre

接着又出现这个错误

[!] No `Podfile' found in the project directory.
  • 粗暴的说你的Podfile 写法的不对

  • 解决方法参见:stackoverflow.com

  • 直接修改下面这种形式即可

target 'MyApp' do   
pod 'AFNetworking', '~> 3.0'
end

其他问题参见:

Cocoapods更新

使用CocoaPods过程podfile写法的几个问题


CocoaPods如何指定版本号

CocoaPods如何指定版本号


更多精彩内容请访问:www.bearsg.com

阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/ws1352864983/article/details/50864434
文章标签: CocoaPods
个人分类: cocoapods
相关热词: cocopods
上一篇Scene is unreachable due to lack of entry points and does not have an identifier for runtime access
下一篇iOS页面跳转及数据传递
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭