zoukankan      html  css  js  c++  java
  • iOS

    CocoaPods 好处?

    • 开发 iOS 项目不可避免地要使用第三方开源库,CocoaPods 的出现使得我们可以节省设置和更新第三方开源库的时间
    • 在引入第三方库时它可以自动为我们完成各种各样的配置,包括配置编译阶段、连接器选项、甚至是 ARC环境下的 -fno-objc-arc 配置等

    Carthage 好处?

    • 通过Carthage可以将一部分不常变的库打包成framework,再引如到主工程,这样可以减少开发过程中的编译时间。
    • 可以将一些编译时间很长的库打包成framework。
    • 国内防火墙的缘故,有些库的下载慢到一定境界,这个时候,使用Carthage就是福音了。
    • 同时可以优化CI的编译、打包时间。

    三、Carthage 和 CocoaPods 的不同之处:

    CocoaPods (默认)自动建立和更新一个 Xcode workspace,用来管理你的项目和所有依赖。Carthage 使用xcodebuild 来编译出二进制库,剩下的集成工作完全交给开发人员。
    CocoaPods 使用起来方便,Carthage 更加灵活并且对现有项目没有太多的侵略性。
    CocoaPods 希望建立一个生态系统,可以更加方便的发现和集成第三方代码库。Carthage 希望变成一个去中心化的依赖管理系统,不提供中心化的项目列表,减少维护成本和单点失败的概率。不过这样给开发人员寻找项目带来不便。
    CocoaPods 的项目需要配置 podspec 文件,包含了项目和第三方库的信息。Carthage 并不使用类似的配置文件,第三方库的依赖关系是通过 Xcode 项目来配置的。

    http://kaaaaai.cn/articles/036.html

    http://www.cocoachina.com/special/20160926/17635.html

    CocoaPods是已存在很长时间的Cocoa依赖管理器, 那么为什么要创建Carthage呢?
    1) CoaoaPods 是一套整体解决方案,我们在 Podfile 中指定好我们需要的第三方库。然后 CocoaPods 就会进行下载,集成,然后修改或者创建我们项目的 workspace 文件,这一系列整体操作。
    2) 相比之下,Carthage 就要轻量很多,它也会一个叫做 Cartfile 描述文件,但 Carthage 不会对我们的项目结构进行任何修改,更不多创建 workspace。它只是根据我们描述文件中配置的第三方库,将他们下载到本地,然后用 xcodebuild 构建成 framework 文件。然后由我们自己将这些库集成到项目中。Carthage 使用的是一种非侵入性的哲学。

    Carthage or CocoaPods? 3

    CocoaPods 有如下优势: 

    ① 使用方便, 除编写 Podfile 以外其他几乎都是自动完成;
    ② 软件包数量多,主流支持;
    ③ 支持 iOS 8 Framework,当然也支持旧的静态编译.

    但是 CocoaPods 作为一个有中心仓库的解决方案,缺点也比较明显:

    1?? 每次更新环境都需要连接到中心仓库,比较耗时;
    2?? 开发者使用比较简单,但是如果创建兼容 CocoaPods 的库,就会相对繁琐一些(尽管有了命令行);
    3?? 每次干净编译都会把所有第三方库都重新编译一次

    Carthage 的优势: 

    ① 使用 Carthage 的话,所有的第三方库依赖,除非是更新的需要,不然平常干净编译 Project,它是不需要再次编译的,大大加快平常编译及 Archive 的时间.
    ② 它是去中心化的,没有中心服务器. 这意味着每次配置和更新环境,只会去更新具体的库,而不会有一个向中心服务器获取最新库的索引这么个过程,如此又省了很多时间.
    ③  CocoaPods 无缝集成!一个项目可同时使用两套包管理工具, 当前 CocoaPods 管理主要 Framework 的配置下, 将少量其他 Framework 交给了 Carthage 管理, 二者可以和谐地共存.
    ④ 结构标准的项目天然就是 Carthage 库.

    Carthage 的不足:

    1?? 库依然不如 CocoaPods 丰富:尽管很多库不需要声明并改造就直接可以被 Carthage 用,但依然有大量 CocoaPods 能用的库不支持,我相信时间能解决这个问题;
    2?? 只支持 Framework,所以是 iOS 8 Only了,随着时间推移,这个也不会是问题;
    3?? 工具仍不完善:在使用过程中,发现它无法在一个结构复杂的项目中正确发现库(比如有 iOS, Mac demo + framework 的结构);
    4?? 无法在 Xcode 里定位到源码:如果你在写代码过程中,想跳转到一个第三方库去看具体的实现,这是无法办到的,Carthage 的配置只能让你看到一个库的头文件

  • 相关阅读:
    第三周学习进度总结
    第二周学习进度总结
    动手动脑04
    动手动脑03
    动手动脑02
    课堂实践总结
    课堂实践
    原码,反码和补码学习报告
    开学第一周
    第八周
  • 原文地址:https://www.cnblogs.com/feng9exe/p/10273223.html
Copyright © 2011-2022 走看看