美文网首页
一、使用CocoPods做依赖管理

一、使用CocoPods做依赖管理

作者: 那样风采 | 来源:发表于2018-09-20 13:55 被阅读64次

    1、依赖管理工具

    • Java语言的Maven
    • Node.js中npm
    • iOS中的CocoaPods

    2、CocoaPods简介

    不使用CocoaPods管理第三方开源库之前,我们需要:
    1.拷贝开源库源代码到项目中,或者设置成git的submodule
    2.添加开源库的系统(framework)依赖
    3.设置-licucore或者-fno-objc-arc等编译参数
    4.管理这些依赖包的更新
    上述这些工作毫无技术含量并且浪费时间!!CocoaPods使用Podfile文件管理第三方开源库,执行pod install即可!

    3、安装和使用

    3.1 CocoaPods的安装

    Mac下自带ruby,使用ruby的gem命令来安装:

    sudo gem install cocopods
    pod setup
    

    gem的升级命令:

    sudo gem update --system
    

    ruby的软件源rubygems.org因为使用亚马逊的云服务被屏蔽的,将官方源替换为国内淘宝的源:

    gem sources --remove https://rubygems.org/
    gem sources -a http://ruby.taobao.org/
    gem sources -l
    

    在执行pod setup的时候,会输出Setting up CocoaPods master repo,但是会等待比较久的时间,这步其实是CocoaPods在将它的信息下载到~/.cocoapods目录下,可以cd到目录下,用du -sh *来查看下载进度。

    image.png
    image.png

    3.2 使用CocoaPods的镜像索引

    所有项目的Podspec文件都托管在https://github.com/CocoaPods/Specs,第一次执行pod setup时,CocoaPods会将这些Podspec索引文件更新到本地的~/.cocoapods/目录下,这个索引文件比较大,有80MB左右。首次更新时非常慢!
    我们可以使用索引库的镜像来加快速度,gitcafe和oschina都是国内的服务器:

    pod repo remove master
    pod repo add master https://gitcafe.com/akuandev/Specs.git
    //http://git.oschina.net/akuandev/Specs.git`
    pod repo update
    

    3.3 CocoaPods的使用

    新建一个Podfile的文件,格式如下:

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

    然后将编辑好的Podfile文件放到项目根目录中,执行如下命令即可:

    cd "your project home"
    pod install
    

    3.4 查找第三方库

    pod search json
    
    image.png

    4、注意事项

    4.1 关于.gitignore

    忽略Git中不想提交的文件:
    在项目的某个文件夹下定义.gitignore文件,在该文件中定义相应的忽略规则,来管理当前文件夹下的文件的Git提交行为。.gitignore 文件是可以提交到公有仓库中,这就为该项目下的所有开发者都共享一套定义好的忽略规则。在.gitingore 文件中,遵循相应的语法,在每一行指定一个忽略规则。如:

    *.log
    *.temp
    /vendor

    pod install之后,CocoaPods会生成一个名为Podfile.lock的文件,不能把它加入到.gitignore文件中,因为Podfile.lock会锁定当前各依赖库的版本,之后即使多次执行pod install也不会更改版本,只有执行pod update才会改变Podfile.lock。在多人写作的时候,这样可以防止第三方库升级时造成大家各自的第三方库版本不一致!

    4.2 为自己的项目创建podspec文件

    为自己的开源项目创建podspec文件:

    pod spec create your_pod_spec_name
    

    CocoPods会生成一个your_pod_spec_name的文件,可以自由修改!

    4.3 使用私有的pods

    pod 'MyCommon' , :podspec => 'https://yuantiku.com/common/myCommon.podspec'
    

    4.4 不更新podspec

    pod install --no-repo-update
    pod update --no-repo-update
    

    --no-repo-update可以禁止索引更新操作

    4.5 生成第三方库的帮助文档

    brew install appledoc
    

    appledoc,可以将帮助文档集成到Xcode中,按住Opt键单击类名或方法名,就可以显示出相应的帮助文档,同时它也可以让CocoaPods帮你生成第三方库的帮助文档!

    4.6 原理

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

    相关文章

      网友评论

          本文标题:一、使用CocoPods做依赖管理

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