CocoaPods应该是iOS最常用最有名的类库管理工具了,绝大部分有名的开源类库,都支持CocoaPods。
CocoaPods依赖于ruby Mac下都自带ruby
打开 终端
gem sources -l 查看提供CocoaPods的资源
说明:gem在终端用于管理软件的
如果想升级最新的可以使用 sudo gem update —system
只有在终端中出现下面文字才表明你上面的命令是成功的:
*** CURRENT SOURCES ***
https://rubygems.org/
如果这时在终端中敲入CocoaPods安装命令 sudo gem install cocoapods 之后,
会发现半天没有任何反应。原因无他,因为那堵墙阻挡了cocoapods.org。
我们可以用淘宝的Ruby镜像来访问cocoapods。
sudo gem sources --add https://ruby.taobao.org/ --remove https://rubygems.org/
-a 是添加源
-r 是删除源 如果不删除原始源 还会到原始源下载CocoaPods
输入密码
在终端中出现下面文字才表明你上面的命令是成功的:
*** CURRENT SOURCES ***
http://ruby.taobao.org/
sudo gem install cocoapods
等上十几秒钟,CocoaPods就可以在你本地下载并且安装好了,不再需要其他设置。
安装完成后再输入 pod setup 设置pod仓库
会连接github网站 如果结果出现红色错误 重新执行 pod setup 即可绿色 Setup completed 表示安装成功
如何使用CocoaPods?
场景1:利用CocoaPods,在项目中导入如AFNetworking/MJExtension/SDWebImage类库
pod search sdwebimage
测试 确定sdwebimage是否支持CocoaPods
会在终端中看到关于sdwebimage类库的一些信息
根据返回的信息查找是否有符合所需的类库,如果找到表示sdwebimage是支持CocoaPods
测试 确定MJExtension是否支持CocoaPods
new project ... single view application name:CocoaPodDemo
show in finder
打开 终端 cd + 工程路径 //在路径中创建Podfile文件 写入 MJExtension
输入 echo "pod 'MJExtension'" > Podfile (也可以通过 touch Podfile 创建 Podfile 文件)
> 表示将echo输出的内容输出到指定文件 Podfile
注意,一定得是这个文件名,而且没有后缀
你创建一个Podfile文件,然后在里面添加你需要下载的类库,也就是告诉CocoaPods,
“某某和某某和某某某,快到碗里来!”。每个项目只需要一个Podfile文件。
Podfile文件 必须要与 .xcodeproj 启动工程文件在同一目录下
到工程路径下查看是否生成 Podfile 打开该文件 查看内容是否为pod 'MJExtension'
也可以直接创建名字为 Podfile 的文本文件里面写入 pod 'MJExtension'
输入
pod install
安装成功后 查看工程目录下
会生成 CocoaPodDemo.xcworkspace 、Podfile、Podfile.lock、Pods
关闭 CocoaPodDemo 工程
Podfile文件中配置
platform :ios,'9.0'
target ‘//***工程名****’ do
pod 'AFNetworking'
pod 'SDWebImage'
end
//这样的语句
双击打开 CocoaPodDemo.xcworkspace
展开 Pods 查看是否有 MJExtension 类库
如果工程还需要使用 AFNetworking 框架
打开 工程目录下的 Podfile 输入 pod 'AFNetworking'
pod 'SDWebImage'
回车
在终端输入 cat Podfile 查看文件内容
pod update
双击打开 CocoaPodDemo.xcworkspace
展开 Pods 查看是否有 MJExtension、AFNetworking、SDWebImage 类库
打开 CocoaPodDemo 工程中的 ViewController.m
加入 #import <UIImageView+WebCache.h>
注意引入头文件方式是 <> 而非""
在延展中加入 @property (weak, nonatomic) IBOutlet UIImageView *iconImage;
在加入方法
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
[self.iconImage sd_setImageWithURL:[NSURL URLWithString:@"http://c.hiphotos.baidu.com/image/pic/item/29381f30e924b8995bed64396c061d950b7bf6da.jpg" ]];
}
打开 Main.storyboard
在 view 中添加 imageView 满屏 连接输出口
运行
按住 command 点击 sd_setImageWithURL
快捷键 command+shift+j 跳转到对应源文件
如果不需要某个框架到 Podfile 文件中删除 对应 pod 'AFNetworking' 即可
回到终端 pod update
找到信息 Removing AFNetworking
场景2:如何正确编译运行一个包含CocoPods类库的项目
如 https://github.com/UrbanApps/UAAppReviewManager
show in finder
打开 终端 cd + 工程路径
pod update
pod --version 查看版本号
sudo gem uninstall cocoapods 卸载
补充: 可以在 Podfile 文件第一句位置加入 platform:ios 限定平台iOS
https://github.com/AFNetworking/AFNetworking
找到 Podfile
platform :ios, '7.0'
pod "AFNetworking", "~> 2.0"
也可获知支持CocoaPods
再次补充:
零、CocoaPods是什么?
CocoaPods 是开发 OS X和iOS应用程序的一个第三方库的依赖管理工具。利用CocoaPods,可以定义自己的依赖关系(称作pods),并且随着时间的变化,以及在整个开发环境中对第三方库的版本管理非常方便。
CocoaPods 背后的理念主要体现在两个方面。首先,在工程中引入第三方代码会涉及到许多内容。针对Objective-C初级开发者来说,工程文件的配置会让人很沮丧。在配置buildphases和linker flags过程中,会引起许多人为因素的错误。CocoaPods简化了这一切,它能够自动配置编译选项。
其次,通过 CocoaPods,可以很方便的查找到新的第三方库。当然,这并不是说你可以简单的将别人提供的库拿来拼凑成一个应用程序。它的真正作用是让你能够找到真正好用的库,以此来缩短我们的开发周期和提升软件的质量。
CocoaPods的原理,它是将所有的依赖库都放到另一个名为Pods项目中,然后让主项目依赖Pods项目,这样,源码管理工作都从主项目移到了Pods项目中1、Pods项目最终会编译成一个名为libPods.a的文件,主项目只需要依赖这个.a文件即可。2、对于资源文件,CocoaPods提供了一个名为Pods-resources.sh的bash脚本,该脚本在每次项目编译的时候都会执行,将第三方库的各种资源文件复制到目标目录中。3、CocoaPods通过一个名为Pods.xcconfig的文件来在编译时设置所有的依赖和参数。
|
一、CocoaPods安装:Mac下都自带ruby,使用ruby的gem命令即可下载安装:》安装CocoaPods |
》卸载CocoaPods |
pod setup
》测试 pod --version |
》卸载CocoaPods 注意:》如果gem太老可能会有问题,所以安装之前最好升级一下gemsudo gem update --system 》ruby的软件源rubygems.org使用的亚马逊的云服务被墙了,所以需要更新一下ruby的源,如下代码将官方的ruby源替换成国内淘宝的源 gem sources --removehttps://rubygems.org/gem sources -ahttp://ruby.taobao.org/ 》pod setup在执行时,会输出Setting up CocoaPods master repo,但是会等待比较久的时间。这步其实是Cocoapods在将它的信息下载到~/.cocoapods目录下,如果你等太久,可以试着cd到那个目录,用du -sh *来查看下载进度。你也可以参考本文接下来的使用cocoapods的镜像索引一节的内容来提高下载速度。 》使用CocoaPods的镜像索引所有的项目的Podspec文件都托管在https://github.com/CocoaPods/Specs。第一次执行pod setup时,CocoaPods会将这些podspec索引文件更新到本地的~/.cocoapods/目录下,这个索引文件比较大,有100M左右。所以第一次更新时非常慢。 |
|
|
二、CocoaPods使用: |
pod'AFNetworking', '2.0.0'pod 'RegexKitLite'>3.保存并退出 |
platform :ios |
pod'AFNetworking', '2.0.0'pod 'RegexKitLite'>3.保存并退出按下esc,然后输入:wq>4.利用CocoPods下载类库pod install 注意: |
|