CocoaPods构建工具


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

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

其次,通过 CocoaPods,可以很方便的查找到新的第三方库。当然,这并不是说你可以简单的将别人提供的库拿来拼凑成一个应用程序。它的真正作用是让你能够找到真正好用的库,以此来缩短我们的开发周期和提升软件的质量。

CocoaPods的原理,它是将所有的依赖库都放到另一个名为Pods项目中,然后让主项目依赖Pods项目,这样,源码管理工作都从主项目移到了Pods项目中1Pods项目最终会编译成一个名为libPods.a的文件,主项目只需要依赖这个.a文件即可。2、对于资源文件,CocoaPods提供了一个名为Pods-resources.shbash脚本,该脚本在每次项目编译的时候都会执行,将第三方库的各种资源文件复制到目标目录中。3CocoaPods通过一个名为Pods.xcconfig的文件来在编译时设置所有的依赖和参数。 



一、CocoaPods安装:Mac下都自带ruby,使用rubygem命令即可下载安装:》安装CocoaPods
sudo gem install cocoapods
》设置 pod仓库
pod setup
》测试
pod --version

》卸载CocoaPods
sudo gem uninstall cocoapods

pod setup

》测试

pod --version

》卸载CocoaPods
sudo gem uninstall cocoapods

注意:》如果gem太老可能会有问题,所以安装之前最好升级一下gemsudo gem update --system

》ruby的软件源rubygems.org使用的亚马逊的云服务被墙了,所以需要更新一下ruby的源,如下代码将官方的ruby源替换成国内淘宝的源

gem sources --removehttps://rubygems.org/gem sources -ahttp://ruby.taobao.org/
gem sources -l

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左右。所以第一次更新时非常慢。
为了提高下载速度, 可以将文件托管地址从git
hub替换为国内oschina,这样会快很多。如下操作就可以将github替换为国内oschina
pod repo remove master
pod repo add master
http://git.oschina.net/akuandev/Specs.git
pod repo update




二、CocoaPods使用:
使用时需要新建一个名为
Podfile的文件
>1.利用vim创建Podfile。 注意:Podfile文件应该和你的工程文件.xcodeproj在同一个目录下
vim Podfile
>2.
将依赖的库名字依次列在文件中
platform :ios
pod 'JSONKit', '~> 1.4'
pod'Reachability', '~>3.0.0'

page2image9520page2image9680page2image9840

pod'AFNetworking', '2.0.0'pod 'RegexKitLite'>3.保存并退出

platform :ios
pod 'JSONKit', '~> 1.4'pod'Reachability', '~>3.0.0'

pod'AFNetworking', '2.0.0'pod 'RegexKitLite'>3.保存并退出按下esc,然后输入:wq>4.利用CocoPods下载类库pod install

注意:
1.利用CocoPods管理类库后,以后打开项目就用xxxx.xcworkspace打开,而不是之前的.xcodeproj文件
2.每次更改了Podfile文件,你需要重新执行一次pod update命令。3.关于.gitignore
当你执行pod install之后,除了Podfile外,CocoaPods还会生成一个名为Podfile.lock的文件,你不应该把这个文件加入到.gitignore中。因为Podfile.lock会锁定当前各依赖库的版本,之后如果多次执行pod install 不会更改版本,要pod update才会改Podfile.lock了。这样多人协作的时候,可以防止第三方库升级时造成大家各自的第三方库版本不一致。
4. CocoaPods在执行pod installpod update时,会默认先更新一次CocoPodsspec仓库索引。使用--no-repo-update参数可以禁止其做索引更新操作
pod install --no-repo-update
pod update --no-repo-update






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值