iOS-使用CocoaPods管理第三方

iOS-使用CocoaPods管理第三方

1.关于CocoaPods
我们在开发过程中肯定会用到很多第三方库,这些库或者框架还有可能会依赖于其他的库和框架,每次都要手动导入,还要注意版本兼容性,有时还需要配置环境变量,实在是麻烦,还有可能会出错导致编译失败,实在是恶心。
但是没有啥办法,大神们也许都是自己封装库和框架,但是对于我这种小菜,还是需要使用大量的第三方来增加我的开发效率。
好在有了CocoaPods来做项目依赖工具。

2.安装CocoaPods

第一步:打开终端。
第二步:执行指令:$ sudo gem install cocoapods
第三步:上一指令运行成功后,执行指令:$ pod setup

这样其实就可以了,等着从CocoaPods的GitHub库下载就可以了。
之前使用淘宝的镜像,由于后来淘宝不在维护,不能使员用了改用https://gems.ruby-china.com

换源指令:
$ sudo gem source --remove https://rubygems.org/
$ sudo gem source -a https://gems.ruby-china.com

3.使用CocoaPods搜索库
这个大概两种方法吧,一个是去网站上搜索,另一个就是再终端直接执行命令搜索。

第一种:网站搜索
网址:https://cocoapods.org/
搜索界面

直接复制提示框的内容到项目里的Podfile文件里就可以了。

第二种:终端搜索
执行指令:$ pod search AFNetworking
然后下面就把版本和要写到Podfile的东西显示出来了。

4.使用CocoaPods
使用网上都是通过终端或者自己在项目里新建一个Podfile出来,然后按照格式写,再安装,我习惯让系统创建出来。

第一步:打开终端
第二步:执行指令:$ cd 你的项目的工程目录
这里的工程目录就是*.xcodeproj文件所在的地方,直接在文件夹找到这里,然后把上一级的文件夹直接拖到终端里,路径自己就出来了。
第三步:执行指令:$ pod init
指令执行成功后,会自动生成一个Podfile文本文件,可以直接打开编辑。

# Uncomment the next line to define a global platform for your project
platform :ios, '9.0'

target 'Test' do
  # Uncomment the next line if you're using Swift or would like to use dynamic frameworks
  # use_frameworks!

  # Pods for Test
  pod 'AFNetworking', '~> 3.0.4'

end

再do和end之间的地方写你要导入的第三方的名称和版本号就可以了,这里用的Objective-C,所以就使用的静态链接库形势。
第四步:执行指令:$ pod install
就可以了。

5.添加新的依赖库
第一步:执行指令:$ pod setup
习惯性先更新一下
第二步:打开Podfile文件,修改do到end之间的内容,保存。
第三步:执行指令:$ pod install
又可以了。

6.其他的
1.使用CocoaPods之后以后记得打开项目要打开那个白色的*xcworkspace文件。
2.如果项目中导入头文件时候找不到的话,需要设置一下路径
选择工程Target -> Build Settings -> 搜索header,找到"User Header Search Paths" -> 新增一个值"$(PODS_ROOT)",并且选择”recursive”,这样Xcode就会在项目目录中递归搜索文件且会自动找到Pods文件,头文件自动补齐功能马上就好使了。

7.关于pod的install和update的问题
对于初学者来说,使用 pod install 或者 pod update 并不会影响大局,所以有的人就习惯了一直沿用自己的更新方式。下面就简单介绍一下这两种更新方式的区别。

(1)pod install:
这个是第一次在工程里面使用pods的时候使用,并且,也是每次你编辑你的Podfile(添加、移除、更新)的时候使用。

每次运行pod install命令的时候,在下载、安装新的库的同时,也会把你安装的每个库的版本都写在了Podfile.lock文件里面。这个文件记录你每个安装库的版本号,并且锁定了这些版本。

当你使用pod install它只解决了pods里面,但不在Podfile.lock文件里面的那些库之间的依赖。对于在Podfile.lock里面所列出的那些库,会下载在Podfile.lock里面明确的版本,并不会去检查是否该库有新的版本。

(2)pod outdated:
当你运行pod outdated命令,CocoaPods会列出那些所有较Podfile.lock里面有新版本的库(那些当前被安装着的库的版本)。这个意思就是,如果你运行pod update PODNAME,如果这个库有新的版本,并且新版本仍然符合在Podfile里的限制,它就会被更新。

(3)pod update:
当你运行 pod update PODNAME 命令时,CocoaPods会帮你更新到这个库的新版本,而不需要考虑Podfile.lock里面的限制,它会更新到这个库尽可能的新版本,只要符合Podfile里面的版本限制。

如果你运行pod update,后面没有跟库的名字,CocoaPods就会更新每一个Podfile里面的库到尽可能的最新版本。

(4)总结:
你应该使用pod update PODNAME去只更新某个特定的库(检查是否有新版本,并尽可能更新到新的版本)。对应的,你应该使用pod install,这个命令不会更新那些已经安装了的库。

当你在你的Podfile里面添加了一个库的时候,你应该使用pod install,而不是pod update,这样既安装了这个库,也不需要去更新其它的已安装库。

你应该使用pod update去更新某个特定的库,或者所有的库(在Podfile的限制中)。

同时,记得在commit提交代码到远程仓库时,带上Podfile.lock文件。

8.更新Ruby
有时候使用 '‘pod install’'时会出现问题。

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

很简单,我们更新下Ruby环境就好了。
打开终端,然后:
(1)查看当前Ruby版本。

ruby -v

(2)更新Ruby。

gem sources --remove https://rubygems.org/
gem sources -a https://ruby.taobao.org/ (把Ruby镜像指向taobao,避免被墙,你懂得)
gem sources -l (用来检查使用替换镜像位置成功)

(3)下载安装CocoaPods。

sudo gem install cocoapods

发布了83 篇原创文章 · 获赞 12 · 访问量 18万+

猜你喜欢

转载自blog.csdn.net/shengdaVolleyball/article/details/83783683