Carthage 不知不觉用到了

 

Carthage 是什么?


 

      这个问题我们简单点一句话总结: 你知道什么事CocoaPods吧,我相信只要是做iOS的都知道,Carthage 的属性和作用和我们常用的CocoaPods都是一样的,这样我相信不知道这玩意的同学也就知道了它是用来干嘛的。我们也就不再过多的解释。

 

Carthage和CocoaPods有什么不同吗?


 

     1、使用了CocoaPods的项目是高度集成的,而Carthage更灵活强调尽可能将任务委托给Xcode和Git。

        "CocoaPods在使用中会自动创建和更新workspace、依赖和Pod项目并进行整合;

        "Carthage在使用中不需要创建和集成相应的workspace和project,只需要依赖打包好的framework文件即可。

        "总结一下,CocoaPods的方法更容易使用,而Carthage更灵活且对项目没有侵入性。

     2、CocoaPods相对来说功能要比Carthage多很多,因此也更复杂,而CocoaPods配置简单项目干净。

     3、CocoaPods有一个中心仓库,而Carthage是去中心化的,没有中心服务器也就避免了可能因中心节点错误而带来的失败,即Carthage每次配置和更新环境,只会去更新具体的库,时间更快。

     4、想让自己的第三方库支持Carthage比让其支持CocoaPods更加的简单。

 

Carthage的不足


 

        1、库依然不如 CocoaPods 丰富

        2、仅支持iOS8+

        3、工具尚且不如CocoaPods(已经发布了app)

        4、在使用第三方库的过程中无法查看源码

 

Carthage的安装和卸载


  

       安装方式我就建议直接PKG安装,简单粗暴:  下载地址 ----- https://github.com/Carthage/Carthage/releases

       当然还有另外的安装方式,具体的大家可以看看 Carthage  具体git上是怎么说的

 

       卸载就比较简单了:终端  $ brew uninstall Carthage

 

Carthage的使用


 

       它的使用是重点,但我不想直接说它是怎么用的就完事了,我最近有看《APP架构》这本书,关于这本书在我们微信的小专栏也有王巍的翻译版本,具体的关于这本书的代码内容以及视频都在这里 https://github.com/objcio/app-architecture

       在看关于MVVM-C这部分的代码的时候,编译它的项目的时候就接触到了Carthage 。因为它用到了 RxSwift 这个函数式框架,要是细心点的话就会在它的项目代码中看到这份README (read me)哈哈

 

       当你点开真的去read he 之后,就看到以下内容:

 

 

       其实上面这份文件已经说得差不多了,我们说一点需要我们注意的,这点内容送给可能也是在看这本书,可能也是有遇到这点小麻烦的同学。

       关于上面这个你首先把它的 Cartfile 文件和 Cartfile.resolved 删除了,因为我们要使用更新一点的三方资源

       然后按下面步骤走:(用终端)

 

       1、cd 到项目路径下

       2、touch  Cartfile

       3、Cartfile 文件里面添加 RxDataSources 的路径就可以了,不要直接按照下面写  

            github "ReactiveX/RxSwift" "4.4.0" 

            github "RxSwiftCommunity/RxDataSources" "3.1.0"

            因为不行

            正确的做法是:

            github "RxSwiftCommunity/RxDataSources" "3.1.0"  就可以了! why?

            因为RxDataSources是依赖RxSwift的,座椅他会自己去添加,如果你要是按照上面错误的写法,你会发现RxDataSources的framework你是死活都拉不进去的!

       4、终端执行:Carthage update --platform iOS

       5、把你需要的framework从下面这个路径当中找到添加到你的 Link Binary With Libraries 中

            Carthage  --  Build  --  iOS  --  需要的 framework

     

要想更新一下三方库该怎么办?


 

      更新多个框架:修改Cartfile文件,并重新执行 $ Carthage update 

      更新某个框架:$ Carthage update 具体的框架名称

 

posted @   MrRisingSun  阅读(515)  评论(0编辑  收藏  举报
编辑推荐:
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· 25岁的心里话
历史上的今天:
2017-11-13 iOS 从实际出发理解多线程
点击右上角即可分享
微信分享提示