zoukankan      html  css  js  c++  java
  • cocoapods管理以及常遇到的问题

    CocoaPods使用

    安装成功啦,咱们来创建Podfile文件

    //咱们先滚去项目的根目录,如果不会,你就先滚去看看shell命令教程吧
    $ cd /Users/JamesGu/Desktop/CocoaPodsProject
    //创建Podfile文件
    $ touch Podfile

    这样子你的项目目录里就多了一个Podfile文件(没有后缀哦)

    编辑一下Podfile文件,来点直接的(当然是在项目目录)

    //打开Podfile文件
    $ open Podfile

    加入

    platform :ios, '7.0'  
    
    pod "AFNetworking", "~> 2.6.1"
    pod "MBProgressHUD", "~> 0.9.1"

    上边第一句意思是我要用ios的类库,还要是支持7.0以上的,然后我要用AFNetworking的2.6.1版本和MBProgressHUD的0.9.1版本,还要加类库?继续往后添即可,在这里可以不加版本(eg:pod "MBProgressHUD" ),在没有Podfile.lock文件约束的情况下(后边会讲到),当然就会默认下载当前最新类库的给你。

    保存保存保存保存保存保存保存保存保存保存

    开始要导入三方库了(去项目根目录,这一步很慢很慢的,请原谅中国的特殊网络)

    $ pod install

    开始CocoaPods就开始根据Podfile文件为我们下载代码库,配置依赖,添加代码库用到的framework
    终端是这么显示的

    Analyzing dependencies
    Downloading dependencies
    Installing AFNetworking (2.6.1)
    Installing MBProgressHUD (0.9.1)
    
    [!] From now on use `CocoaPodsProject.xcworkspace`.

    最后一句英文认识吗?

    是哒,以后你就要用xcworkspace文件来打开项目了,CocoaPods会帮你把你原本的项目和一个CocoaPods项目组成一个工作空间,编译时候,CocoaPods项目会预先被编译,生成一个.a的静态类库文件,供你的主项目调用,而这一切CocoaPods已经帮你做好了,你只需要打开xcworkspace写你的代码而已。


    完整过程
    ![Uploading 87B5BBF9-7FC6-4BD7-859B-79B988BD37BD_449931.png . . .]

    补张图给大家


    装完之后的项目结构

    如果你仔细看过上边的应该就对CocoaPodsProject.xcworkspace和Podfile这两个文件的作用很清楚了

    第四节:含有CocoaPods的项目的管理

    接下来就要讲到Podfile.lock文件和Pods文件夹了。
    Podfile.lock :这个文件是用来保存已经安装的Pods依赖库的版本。
    Pods文件夹:不用说,这里边全是引用的三方类库。

    接上上边说,如果Podfile.lock文件丢失,你再使用pod install命令,并且Podfile中含有没有指定版本的类库,那你的类库就会下载最新的版本,有些比较活跃的三方项目更新很频繁,它们一旦更新方法名或者实现方式,你调用的代码就报错了,这是灾难性的。

    看过其他教程的人一定会奇怪,很多教程中用的是pod update 命令,为什么你一直在提pod install,因为pod update会更新的你Podfile.lock文件到最新版本,接下来的害处就如上段所说。

    所以千万记住,无论是自己的项目,还是跑别人的源码,一定要用pod install,至于pod update,看你自己是不是要三方升级类库(我还是建议最好在Podfile中指定版本,想要升级,只需更改Podfile中的版本号,再pod install)。

    曾经有一份别人的源码摆在我的面前,只有一个Podfile文件,没有Podfile.lock,还在说明里告诉大家用pod update,当时我傻傻的以为是我的问题,愣是没跑起来。


     

    所以CocoaPods管理的项目,生成的四个文件,只用上传Podfile和Podfile.lock,其他的不要上传,毕竟每pod install一遍,如果有改动,svn就会有一大堆的提交,这种情况是谁都不想看到的,所以呢版本控制只留这两个文件就好。

  • 相关阅读:
    网络基础
    SQL注入
    OpenID说明
    Linux网络编程
    Linux的僵尸进程产生原因及解决方法
    计算机系统的存储层次
    Java实现SSO
    JD(转载)
    Switch的表达式的要求
    leetcode(23. Merge k Sorted Lists)
  • 原文地址:https://www.cnblogs.com/xujiahui/p/6513784.html
Copyright © 2011-2022 走看看