美文网首页
CocoaPods的使用

CocoaPods的使用

作者: z4ywzrq | 来源:发表于2018-04-17 18:36 被阅读13次

    简介

    在 iOS 开发中不可避免地要使用第三方库,CocoaPods(https://github.com/CocoaPods/CocoaPods)可以用来方便的统一管理这些第三方库,可以解决库与库之间的依赖关系,下载库的源代码,同时通过创建一个Xcode的workspace来将这些第三方库和我们的工程连接起来,使得我们可以节省设置和更新第三方开源库的时间。

    CocoaPods 的安装

    使用 CocoaPods,首先要下载安装,下载安装 CocoaPods 需要 Ruby 环境。mac OS 本身自带 Ruby,但还是更新一下保险。

    • 查看下当前 ruby 版本:打开终端输入 ruby -v。

    • 升级Ruby环境

    1、终端输入:$gem update --system
    如果出现 ERROR: While executing gem ... (Gem::FilePermissionError) You don‘t have write permissions for the /Library/Ruby/Gems/2.0.0 directory。这个是因为你没有权限去更新 Ruby

    2、这时可以在终端使用:$sudo gem update --system 来进行升级。终端输入如下命令,把 Ruby 镜像指向 ruby-china
    (注意:目前淘宝的源已经不能用了,taobao Gems 源已停止维护,现由 ruby-china 提供镜像服务)

    //查看当前源,命令:gem sources -l
    // 移除旧的源,命令: gem sources --remove
    $ gem sources --remove https://......
    // 添加新的源,命令: gem sources -a https://gems.ruby-china.org/
    $ gem sources -a https://gems.ruby-china.org/
    

    修改之后,如果执行命令

    $ sudo gem update --system  
    

    出现错误

    Updating rubygems-update
    ERROR:  While executing gem ... (Errno::EPERM)
        Operation not permitted - /usr/bin/update_rubygems
    

    可以使用 HomeBrew (http://brew.sh/) 来安装 ruby

    $ brew install ruby
    

    3、下载安装CocoaPods

    $ sudo gem install cocoapods 
    

    使用CocoaPods

    1、Xcode 新建一个项目

    2、终端中,cd到项目总目录(注意:包含 Project 文件夹、Project.xcodeproj、Project的那个总目录)

    3、建立Podfile(配置文件)
    touch Podfile(创建Podfile文件)
    在 Podfile 文件中输入:

    source 'https://github.com/CocoaPods/Specs.git'
    
    platform :ios, '8.0'
    
    target 'Project' do
    
    pod 'AFNetworking', '~> 3.1.0'
    
    end
    
    

    target 'xxx',target 后面是你的项目名称。

    4、确定终端cd到项目总目录,然后输入 pod install,等待一会。
    CocoaPods 会帮我们从git clone下来配置好的这些代码。后面的部分表示代码的版本号,一般来说和tag挂钩。

    5、完成之后,在文件夹下生成了 Project.xcworkspace 文件,打开就会发现已经导入了,Podfile 文件中的第三方库。

    6、当需要同时导入多个第三方时需要修改 Podfile了,编辑修改Podfile文件,这时需要重新执行一次 pod install 命令。

    Podfile.lock

    当你执行pod install之后,除了 Podfile 外,CocoaPods 还会生成一个名为Podfile.lock的文件,Podfile.lock 应该加入到版本控制里面,不应该把这个文件加入到.gitignore中。因为Podfile.lock会锁定当前各依赖库的版本,之后如果多次执行pod install 不会更改版本,要pod update才会改Podfile.lock了。这样多人协作的时候,可以防止第三方库升级时造成大家各自的第三方库版本不一致。

    第三方库查询

    CocoaPods可以查找你想要的第三方库
    终端输入命令:pod search **
    例如:$ pod search AFNetworking,然后就会显示相应的第三方库信息


    CocodPods 相关命令

    1、pod install :

    第一次在工程里面使用pods的时候使用,也是每次编辑 Podfile(添加、移除、更新)后使用。

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

    当你使用pod install它只解决了pods里面,但不在Podfile.lock文件里面的那些库之间的依赖。对于在Podfile.lock里面所列出的那些库,会下载在Podfile.lock里面明确的版本,并不会去检查是否该库有新的版本。对于还不在Podfile.lock里面的库,会找到Podfile里面描述对应版本(例如:pod 'AFNetworking', '~> 3.1.0')。

    2、pod update:

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

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

    3、pod outdated:

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

    4、使用情况

    第一次获取pod库时,应使用pod install。需要更新依赖库时,先使用 pod outdated 查看有哪些库有更新,再使用 pod update PODNAME 有目的的更新指定库。
    提交代码时,请注意一定同时提交Podfile.lock文件,以便其他人能同步到与你相同的pod库版本。
    同步其他团队成员的修改时,请使用pod install。

    pod outdated 和 pod update 都会更新spec仓库,但是pod install不会,所以对于经常使用的pod库,建议经常pod outdated关注更新情况。

    问题

    1、在使用时可能出现一下问题



    解决方法:打开 Xcode 偏好设置,设置一下 Command Line Tool 就可以了


    Reference

    http://guides.cocoapods.org/using/using-cocoapods.html#should-i-ignore-the-pods-directory-in-source-control
    https://guides.cocoapods.org/using/pod-install-vs-update.html
    http://blog.devtang.com/2014/05/25/use-cocoapod-to-manage-ios-lib-dependency/

    相关文章

      网友评论

          本文标题:CocoaPods的使用

          本文链接:https://www.haomeiwen.com/subject/hrypkftx.html