前言
学习ios的时间很短,从第一次开始,就接触了对于我来说,很庞大的项目。感谢严哥的信任。
它的界面美观,功能齐全,用户众多。
“我以后也要做一个这样的app”,我默默在心里许下愿望。
我在里面看到了很多的库,应该有几十个。库的使用,很大程度上减少了我们的工作量。
对于我这样的,连正式入行都还不算的学生来说,学会找到合适的库,利用库,是一项很不错的技能。
很有幸,经过一个大项目,我学会了自己从网上(更多是直接在github)寻找库。
使用CocoaPods的原因
目前我负责开发公司实验型的一个app,从基础界面,到主要功能,都要我自己去慢慢做的话,无疑要用到库。
而且越到后期,我估计使用的库也会越多。
CocoaPods的使用,可以大大节省我们的时间。
我们不用再去重复这样的过程:
1.把第三方库的源代码文件,复制到项目中。或设置成git的submodule
2.手工地,将这些开源库的依赖系统的framework,一个个地添加到项目依赖中。
3.对某些开源库,设置-licucore或者-fno-objc-arc登编译参数
4.管理这些依赖包的更新
安装CocoaPods
今天我自己做安装的时候,遇到了几点问题:
1.ruby的软件源问题
2.gem更新
为了避免这些问题,我建议大家直接先更新ruby的源,再升级一次gem.做完这些工作以后,我相信安装的问题应该不大了。
ruby源替换
一,移除原来官方的ruby源:
gem sources --remove https://rubygems.org/
二,替换成淘宝源:
gem sources -a https://ruby.taobao.org/
这里要提醒大家的是,在网上有些教程或者书籍中,使用的是http方式,现在已经改成了https。
三,检查一下是否替换成功:
gem sources -l
打完之后出现下面这些的话,那么就证明成功了:
zz:~ zzgo$ gem sources -l
*** CURRENT SOURCES ***
https://ruby.taobao.org/
gem升级
gem升级非常简单,在更换源之后,访问的限制也不存在,相信速度也非常快。只要输入如下代码:
sudo gem update --system
最后出现“RubyGems system software updated”,即为成功。
使用ruby的gem命令下载安装
相信你已经迫不及待了,它的安装方式异常简单:
sudo gem install cocoapods
出现“xx gems installed”,就算成功了。之后:
pod setup
只要按照顺序,输入两行代码就能ok。不过在pod setup之后,还需要耐心等待一会。出现“Setup completed”就可以结束。
报错
在我换了新的mac后,安装时,出现如下错误提醒:
1 | ERROR: Error installing cocoapods: |
意思是ruby的版本不够。
使用homebrew升级:1
brew install ruby
升级完毕后,重新执行cocoaPods安装命令。
在项目里使用CocoaPods
Podfile
Podfile是使用CocoaPods的关键文件。
一,新建一个ios项目
二,在*.xcodeproj文件的同级目录,新建一个名为Podfile的文件
三,编辑Podfile文件,将依赖的库名字依次列在文件中:
platform:ios
pod 'ASIHTTPRequest', '~> 1.8.2'
我们可以在使用之前,通过pod search命令,检查一下CocoaPods管理的库中,是否有要使用的库:
zz:CocoaPodsDemo zzgo$ pod search ASIHTTP
-> ASIHTTPRequest (1.8.2)
Easy to use CFNetwork wrapper for HTTP requests, Objective-C, Mac OS X and iPhone.
pod 'ASIHTTPRequest', '~> 1.8.2'
- Homepage: http://allseeing-i.com/ASIHTTPRequest
- Source: https://github.com/pokeb/asi-http-request.git
- Versions: 1.8.2, 1.8.1 [master repo]
- Subspecs:
- ASIHTTPRequest/Core (1.8.2)
- ASIHTTPRequest/ASIWebPageRequest (1.8.2)
- ASIHTTPRequest/CloudFiles (1.8.2)
- ASIHTTPRequest/S3 (1.8.2)
我在上面使用了 ‘pod search ASIHTTP’搜索。就显示了库的信息和版本。
之后就再我们的ios项目下,执行:
pod install
出现类似:
Analyzing dependencies
Downloading dependencies
Installing ASIHTTPRequest (1.8.2)
Generating Pods project
Integrating client project
[!] From now on use `CocoaPodsDemo.xcworkspace`.
那证明我们的第三方库已经下载完成,并且设置好了编译参数和依赖。注意:我们今后将使用提示的’.xcworkspace’文件来打开工程。而不是原来的’ .xcodeproj’文件。
打开项目,可以看到这样的结构:
现在就可以import一下,来使用我们的库了。
本书参考:《ios开发进阶》电子工业出版社