iOS开发之CocoaPods

CocoaPods安装使用教程与常见详情可以查看下列两篇博客:
最新Mac OS X 10.11.1 安装cocoapods及使用详解
CocoaPods的安装使用和常见问题

不过看别人的是这样,但是到了自己身上有可能又是另一番光景。

我来简单说说自己的安装体验:
sudo gem install cocoapods
这个需要访问墙外,所以我们通过换源的方式解决这个问题。
安装步骤:
(1)输入
$ gem sources --remove https://rubygems.org/
(移除原有的自带ruby源)
//等有反应之后再敲入以下命令
$ gem sources -a https://ruby.taobao.org/
(换用国内淘宝源,请注意是https,http貌似已经被弃用,当然,也有用ruby中国的源的,只需将链接改成:https://gems.ruby-china.org/ 即可,区别大家自己感受)
(2)
用下面的命令查看源是否更换
$ gem sources -l
显示:
*** CURRENT SOURCES ***https://ruby.taobao.org/
即更换成功
(3)安装cocoapods
$ sudo gem install cocoapods
用:
pod --version查看版本,检查cocoapods是否安装成功
Cocoapods的使用
通过命令行工具进入到项目所在目录:
vim Podfile
进行编辑,以导入Masonry为例:

这里写图片描述

第一行:确认使用平台是在iOS 7.0以上使用
第二行:将这些第三方类库用在自己建立的项目上
第三行:导入的第三方库Masonry,当然,这句也可以写成
pod 'Masonry' , '~>0.6.4'
这句说的是导入Masonry 0.6.4的版本
不知道导哪个版本可以像图中所示,不写版本号(个人建议最好写上版本号),也可以用命令
pod search Masonry
查看Masonry的版本保存关闭Podfile文件,在命令行输入:
pod install
此时会下载第三方库到项目中。如果第三方类库有很多,可以在pod 'Masonry'下面写下其他类库的名称,如:

pod 'Masonry'
pod 'AFNetworking'

保存关闭install,第三方类库就会下载到项目的Pods文件夹中。到此,CocoaPods使用介绍完毕。


卸载

1、卸载命令:
$ sudo gem uninstall cocoapods
2、先查看本地安装过的cocopods相关东西,命令如下:
$ gem list --local | grep cocoapods
会显示如下:

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)

3、逐个删除:
$ sudo gem uninstall cocoapods-core


这就完了么,不,不管是用一个东西,还是开发一个东西,我们总会遇到一些坑,现在我们来看看使用中都可能会遇到什么坑:
坑一:

[!] Oh no, an error occurred.
It appears to have originated from your Podfile at line 1.

Search for existing github issues similar to yours:
https://github.com/CocoaPods/CocoaPods/search?q=%2FUsers%2Fhuaqiao%2FDesktop%2FUserCommand1%2FPodfile%3A1%3A+syntax+error%2C+unexpected+%27%3A%27%2C+expecting+end-of-input%0Aplatform+%3A+ios+%0A++++++++++%5E&type=Issues

If none exists, create a ticket, with the template displayed above, on:
https://github.com/CocoaPods/CocoaPods/issues/new

Be sure to first read the contributing guide for details on how to properly submit a ticket:
https://github.com/CocoaPods/CocoaPods/blob/master/CONTRIBUTING.md

看到第一句是不是很有喜感,解决方案:
You need reinstall cocoapods: so

sudo gem uninstall cocoapods
sudo gem install cocoapods
pod setup

坑二:

Invalid `Podfile` file: [!] Unsupported options `{:exclusive=>true}` 
for target 'CocoaPodsDemo'

这种一般是pod install别人的工程,解决办法是将:

target 'mySuperApp_Tests', :exclusive => true do 
pod 'mySuperApp', :path => '../'end

改成:

target 'mySuperApp_Tests' do pod 'mySuperApp', :path => '../' end

坑三:

[!] Unable to add a source with url 
`https://github.com/CocoaPods/Specs.git` named `master`.

解决办法:

cd ~/.cocoapods/repos 
git clone https://github.com/CocoaPods/Specs.git master

还有一种报错是:

[!] Unable to add a source with url `https://github.com/CocoaPods/Specs.git` named `master-1`.
You can try adding it manually in `~/.cocoapods/repos` or via `pod repo add`.

解决办法:

sudo xcode-select -switch /Applications/Xcode.app/Contents/Developer

可以通过:

cd ~/.cocoapods
du -sh *

命令来查看文件大小

坑四:无论是执行pod install还是pod update都卡在了Analyzing dependencies不动原因在于当执行以上两个命令的时候会升级CocoaPods的spec仓库,加一个参数可以省略这一步,然后速度就会提升不少。加参数的命令如下:

pod install --verbose --no-repo-update
pod update --verbose --no-repo-update

坑五:提示找不到头文件
1,找到TARGETS -> Build Settings -> SearchPaths -> User Header Search Paths 在后面的空白处双击
2, 点击 ‘+’号,添加一个新的键为${SRCROOT},值设置为recursive

坑六:pod install和pod update这俩命令字面意思理解就行,一个安装,一个更新然后我们要说说Podfile.lock文件和Pods文件夹:
Podfile.lock :这个文件是用来保存已经安装的Pods依赖库的版本。
Pods文件夹:这里边全是引用的三方类库。如果Podfile.lock文件丢失,你再使用pod install命令,并且Podfile中含有没有指定版本的类库,那你的类库就会下载最新的版本,有些比较活跃的三方项目更新很频繁,它们一旦更新方法名或者实现方式,你调用的代码就报错了,这是灾难性的。
特别需要注意:使用pod update会更新的你Podfile.lock文件到最新版本,它们一旦更新方法名或者实现方式,你调用的代码就报错了,所以请不要手残。
所以千万记住,无论是自己的项目,还是跑别人的源码,一定要用pod install,至于pod update,看你自己是不是要三方升级类库(我还是建议最好在Podfile中指定版本,想要升级,只需更改Podfile中的版本号,再pod install)。

坑七:
sudo gem sources -a https://ruby.taobao.org/
Error fetching https://ruby.taobao.org/:
server did not return a valid file (http://ruby.taobao.org/specs.4.8.gz)
这真的是无妄之灾啊,网上找了半天解决办法,试过https改http,也试过:

1. rvm pkg install openssl
2. rvm reinstall all --force

$ gem sources --remove https://rubygems.org/
$ gem sources -a https://ruby.taobao.org/
$ gem sources -l*** CURRENT SOURCES ***

最后问群友,群友说试试看,能不能打开这个网站,结果是公司网络权限问题,对于某宝是不能正常访问的,/气哭/气哭。

坑八:
在运行 “sudo gem install cocoapods” 的时候出现问题:ERROR: While executing gem ... (Errno::EPERM)
Operation not permitted - /usr/bin/fuzzy_match(或者是- /usr/bin/xcodeproj之类的)

则可以改为:
sudo gem install -n /usr/local/bin cocoapods

坑九:
在更新Mac OS以后,提示:

pod 

-bash: /usr/local/bin/pod: /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/ruby: bad interpreter: No such file or directory

1、更新gem:
sudo gem update --system

2、删除gem源:
gem sources --remove [https://ruby.taobao.org/](https://ruby.taobao.org/)

3、修改gem源:
gem sources -a [https://gems.ruby-china.org](https://gems.ruby-china.org/)

4、查看gem源是否是最新的:
gem sources -l

5、升级cocoapods:
sudo gem install -n /usr/local/bin cocoapods --pre

6、查看升级后的cocoapods版本:
pod --version

(2,3可根据需求来操作)

(后期遇到坑,还会记录与更新)


说完坑,我们也要说说好用的工具,CocoaPods插件for Xcode.详情参见:iOS开发之 Xcode的 Cocoapods插件使用方法,对于不习惯不喜欢用命令行工具的人来说,无疑是一个福音。当然,最近苹果发布了Xcode 8 以后,貌似插件都被禁用了,这不得不说是一个令人不愉快的事,不过这也不是无解的,笨办法就是回退到Xcode7,还有就是参照大神的杰作,让Xcode8也能继续运行插件:https://github.com/inket/update_xcode_pluginshttps://github.com/fpg1503/MakeXcodeGr8Again


总结一下使用心得:
第一步,创建项目;
第二步,创建Podfile文件;
第三步,填写第三方库信息到podfile文件并保存;
第四步,安装第三方库,退出,用xcworkspace文件打开,这步非常关键,而且只能用这个打开,不是以前的xcodeproj文件了,不然会提示第三方库找不到;
第五步,导入头文件,开始使用。

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

推荐阅读更多精彩内容