我第一次成功安装CocoaPods的过程

感悟

费了两天晚上的功夫安装上了,一边玩守望先锋 ,一边看CocoaPods下载的进度.300多兆的文件,下载了3个多小时,既然咱不是特别聪明,咱就多努力,多一点坚持慢慢来吧.整个安装过程中终端的内容如下(可以略过,对我有点用):
<pre>
<code>
Last login: Sat Jul 23 23:07:37 on ttys001 bogon:~ liyilin$ gem source -l *** CURRENT SOURCES *** https://ruby.taobao.org/ bogon:~ liyilin$ sudo gem install cocoapods Password: ERROR: While executing gem ... (Errno::EPERM) Operation not permitted - /usr/bin/pod bogon:~ liyilin$ sudo gem update --system Updating rubygems-update ERROR: While executing gem ... (Errno::EPERM) Operation not permitted - /usr/bin/update_rubygems bogon:~ liyilin$ sudo gem update-n/usr/local/bin --system ERROR: While executing gem ... (Gem::CommandLineError) Unknown command update-n/usr/local/bin bogon:~ liyilin$ sudo gem update-n /usr/local/bin —system ERROR: While executing gem ... (Gem::CommandLineError) Unknown command update-n bogon:~ liyilin$ sudo gem update -n /usr/local/bin —system Updating installed gems Nothing to update bogon:~ liyilin$ sudo gem install -n /usr/local/bin cocoapods Successfully installed cocoapods-1.0.1 Parsing documentation for cocoapods-1.0.1 1 gem installed bogon:~ liyilin$ pod install [!] No 'Podfile' found in the project directory bogon:~ liyilin$ pod search AFNetworking Setting up CocoaPods master repo Setup completed [!] Unable to find a pod with name, author, summary, or description matchingAFNetworking`
bogon:~ liyilin$ rm ~/Library/Caches/CocoaPods/search_index.json
bogon:~ liyilin$ pod search AFNetworking
Creating search index for spec repo 'master'.. Done!

CocoaPods是什么?

CocoaPods 是开发 OS X 和 iOS 应用程序的一个第三方库的依赖管理工具。利用 CocoaPods,可以定义自己的依赖关系 (称作 pods),并且随着时间的变化,以及在整个开发环境中对第三方库的版本管理非常方便。

CocoaPods 背后的理念主要体现在两个方面。
首先,在工程中引入第三方代码会涉及到许多内容。对开发者来说,工程文件的配置会让人很沮丧。在配置 build phases 和 linker flags 过程中,会引起许多人为因素的错误。CocoaPods 简化了这一切,它能够自动配置编译选项。

通过 CocoaPods,可以很方便的查找到新的第三方库。

CocoaPods是用 Ruby 写的,想要使用它首先要有Ruby环境.
RubyGems简称gems,是一个用于对Ruby组件进行打包的Ruby打包系统

个人总结的安装步骤(看了好多相关的博客)

将ruby的默认源替换为淘宝的RubyGems镜像
因为国内网络原因,导致rubygems.org存放在亚马逊上面的资源容易连接失败
gem sources --remove https://rubygems.org/ gem sources -a https://ruby.taobao.org/
查看此时的源
bogon:~ liyilin$ gem source -l
输出结果
*** CURRENT SOURCES *** https://ruby.taobao.org/

之后就可以更新Mac的gem,gem是管理Ruby库和程序的标准包
bogon:~ liyilin$ sudo gem update --system
终端提示
Updating rubygems-update ERROR: While executing gem ... (Errno::EPERM) Operation not permitted - /usr/bin/update_rubygems
上网搜索后得知
Mac OS X 10.11后不能使用sudo gem update --system了
需要替换成:sudo gem update -n /usr/local/bin —system
bogon:~ liyilin$ sudo gem update -n /usr/local/bin —system
终端提示貌似没有可以更新的内容
Updating installed gems Nothing to update

接下来安装CocoaPods
bogon:~ liyilin$ sudo gem install -n /usr/local/bin cocoa pods
终端提示成功了...
Successfully installed cocoapods-1.0.1 Parsing documentation for cocoapods-1.0.1 1 gem installed

使用CocoaPods查找需要的第三方框架(就拿AFNetworking试试吧)
bogon:~ liyilin$ pod search AFNetworking
终端提示如下,并卡住了!
Setting up CocoaPods master repo
上网搜索后得知Cocoapods在将它的信息下载到 ~/.cocoapods里
然后我就前往这个文件夹,不断用快捷键预览它的大小
下载速度太慢了,我想先去玩几把守望先锋吧,也不能干等着吧 玩了五局定级赛(2胜3负),还没下载完.那我去搓几把炉石吧.

炉石任务正刷着的时候,终端显示下载完了,但是还有一个警告
Setup completed [!] Unable to find a pod with name, author, summary, or description matching 'AFNetworking'
上网搜索后得知要删除一个文件
bogon:~ liyilin$ rm ~/Library/Caches/CocoaPods/search_index.json
然后我再一次搜索AFNetworking
bogon:~ liyilin$ pod search AFNetworking
终端打印如下:

<pre>
<code>
`
Creating search index for spec repo 'master'.. Done!

应该是搜索出了与AFNetworking相关的内容

我再一次重新搜索AFNetworking,终端显示如下
<pre>
<code>
`
-> AFNetworking (3.1.0)
A delightful iOS and OS X networking framework.
pod 'AFNetworking', '~> 3.1.0'

  • Homepage: https://github.com/AFNetworking/AFNetworking
  • Source: https://github.com/AFNetworking/AFNetworking.git
  • Versions: 3.1.0, 3.0.4, 3.0.3, 3.0.2, 3.0.1, 3.0.0, 3.0.0-beta.3,
    3.0.0-beta.2, 3.0.0-beta.1, 2.6.3, 2.6.2, 2.6.1, 2.6.0, 2.5.4, 2.5.3, 2.5.2,
    2.5.1, 2.5.0, 2.4.1, 2.4.0, 2.3.1, 2.3.0, 2.2.4, 2.2.3, 2.2.2, 2.2.1, 2.2.0,
    2.1.0, 2.0.3, 2.0.2, 2.0.1, 2.0.0, 2.0.0-RC3, 2.0.0-RC2, 2.0.0-RC1, 1.3.4,
    1.3.3, 1.3.2, 1.3.1, 1.3.0, 1.2.1, 1.2.0, 1.1.0, 1.0.1, 1.0, 1.0RC3, 1.0RC2,
    1.0RC1, 0.10.1, 0.10.0, 0.9.2, 0.9.1, 0.9.0, 0.7.0, 0.5.1 [master repo]
  • Subspecs:
    • AFNetworking/Serialization (3.1.0)
    • AFNetworking/Security (3.1.0)
    • AFNetworking/Reachability (3.1.0)
    • AFNetworking/NSURLSession (3.1.0)
    • AFNetworking/UIKit (3.1.0)
      `
      </code>
      </pre>

说明CocoaPods确实能用了

用CocoaPods管理项目中的第三方框架
打开你的项目所在的那个文件夹,新建一个叫Podfile的文件
bogon:~ liyilin$ cd /Users/liyilin/Desktop/cocoapodsTest bogon:cocoapodsTest liyilin$ pod init

编辑Podfile文件
bogon:cocoapodsTest liyilin$ vim Podfile
终端显示Podfile内容如下
<pre>
<code>
`

Uncomment this line to define a global platform for your project

platform :ios, '9.0'

target 'cocoapodsTest' do

Comment this line if you're not using Swift and don't want to use dynamic frameworks

use_frameworks!

Pods for cocoapodsTest

end
~
~
~
~
~
~
~
~
~
~
~
~
"Podfile" 10L, 257C
`
</code>
</pre>

其中注释说如果使用Swift就得保留use_frameworks!
输入i进行编辑,终端显示如下,注意最后一行变为-- INSERT --,此时可以编辑
<pre>
<code>
`

Uncomment this line to define a global platform for your project

platform :ios, '9.0'

target 'cocoapodsTest' do

Comment this line if you're not using Swift and don't want to use dynamic frameworks

use_frameworks!

Pods for cocoapodsTest

end
~
~
~
~
~
~
~
~
~
~
~
~
-- INSERT --
`
</code>
</pre>

然后我根据搜索出的AFNetworking的信息,编辑Podfile文件如下:
(去掉了platform前面的#,插入了pod 'AFNetworking', '~> 3.1.0')

<pre>
<code>
`

Uncomment this line to define a global platform for your project

platform :ios, '9.0'

target 'cocoapodsTest' do

Comment this line if you're not using Swift and don't want to use dynamic frameworks

use_frameworks!
pod 'AFNetworking', '~> 3.1.0'

Pods for cocoapodsTest

end
~
~
~
~
~
~
~
~
~
~
~
~
-- INSERT --
`
</code>
</pre>

然后点击ESC,输入:wq保存并退出

<pre>
<code>
`

Uncomment this line to define a global platform for your project

platform :ios, '9.0'

target 'cocoapodsTest' do

Comment this line if you're not using Swift and don't want to use dynamic frameworks

use_frameworks!
pod 'AFNetworking', '~> 3.1.0'

Pods for cocoapodsTest

end
~
~
~
~
~
~
~
~
~
~
~
~
:wq
`
</code>
</pre>

接下来为项目导入第三方库和相关依赖库
bogon:cocoapodsTest liyilin$ pod install
终端提示导入成功,并提示你从此使用cocoapodsTest.xcworkspace这个文件来编写项目
<pre>
<code>
`
Analyzing dependencies
Downloading dependencies
Installing AFNetworking (3.1.0)
Generating Pods project
Integrating client project

[!] Please close any current Xcode sessions and use cocoapodsTest.xcworkspace for this project from now on.
Sending stats
Pod installation complete! There is 1 dependency from the Podfile and 1 total
pod installed.

`
</code>
</pre>

使用cocoapodsTest.xcworkspace打开项目,目录如下:


屏幕快照 2016-07-24 下午11.52.28.png

之后我参考了AFNetworking在github上的示例,试验了一下,证明AFNetworking导入成功而且能使用.
<pre>
<code>
`
import UIKit
import AFNetworking

class ViewController: UIViewController {

override func viewDidLoad() {
    super.viewDidLoad()
    let configuration = NSURLSessionConfiguration.defaultSessionConfiguration()
    let manager = AFURLSessionManager.init(sessionConfiguration: configuration)
    let URL = NSURL(string: "http://httpbin.org/get")
    let request = NSURLRequest(URL: URL!)
    let dataTask = manager.dataTaskWithRequest(request) { (response, responseObject, error) in
        
        if error != nil
        {
            print("Error: \(error)")
        }
        else
        {
            print("response->\(response)");
            print("responseObject->\(responseObject)")
        }
    }
    dataTask.resume()
    
}

}
`
</code>
</pre>

调试窗口打印如下:


屏幕快照 2016-07-24 下午11.58.33.png

OVER

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,390评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,821评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,632评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,170评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,033评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,098评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,511评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,204评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,479评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,572评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,341评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,213评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,576评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,893评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,171评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,486评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,676评论 2 335

推荐阅读更多精彩内容