CarthagePods -- 一个整合 CocoaPods 和 Carthage 一起使用的工具

栏目: IOS · 发布时间: 7年前

内容简介:CarthagePods -- 一个整合 CocoaPods 和 Carthage 一起使用的工具

最近写了个工具 CarthagePods ,将 CarthageCocoaPods 配合一起使用。介绍我这个 工具 之前,先看看我们 iOS 开发最常用的两个包管理器吧。

Carthage

Carthage 有个重要的优点,它可以把依赖的库都编译成 framework ,这样一来就不需要每次编译工程,都去编译一遍依赖的第三方库。

但是也存在一些缺点,例如:

  • 使用的依赖库比较多,集成起来就比较麻烦。
  • framework@IBDesignable@IBInspectable 并不那么友好 =。= 。

CocoaPods

CocoaPods 正好可以解决 Carthage 的不足。 CocoaPods 使用起来非常方便,因为他不会把依赖库编译提前编译成 framework , 所以也不存在对 @IBDesignable@IBInspectable 不友好的问题。

当然,他不会把第三方库编译成功 framework 这也会导致工程编译起来比较慢。

取长补短

前段时间虾神在他的公众号中发布了一篇文章则提供类一个解决方案 I have a pod, I have a carthage, En…

然而操作起来还是略微麻烦=。=

这样我们就可以将使用 @IBDesignable@IBInspectable 属性的库还是使用 CocoaPods 来管理。没使用的则使用 Carthage

方案流程

虾神文章中大概的实现方案流程是这样的:

  • 先使用 Carthage 把一些依赖库编译成 framework
  • 通过 CocoaPodsframework 打包 repo
  • 最后通过 CocoaPods 把所有的依赖库都 install 了。

虾神的方案很酷,但是使用起来还是略为麻烦。所以我决定使用 Ruby 来把这些流程串联起来,只需要简单的敲个 install 就能完成这些工作 ^-^

为什么使用 Ruby ?因为我想学 Ruby ,拿来练手=。=

CarthagePods

安装方法

gem install CarthagePods

介绍

接下来简单介绍一下 CarthagePods 的一些命令吧。

CarthagePods -- 一个整合 CocoaPods 和 Carthage 一起使用的工具

init

会生成 CocoaPodsPodfile 文件, CarthageCartfile 文件, 和一个 CPodfile

大家使用的时候可以和往常使用 CocoaPodsCarthage ,一样把依赖的库配置到对应的文件中。

CPodfile 又是什么鬼?

我在使用我最常用的库 RxSwift 时,发现了一个问题。 RxSwift 使用 Carthage 编译时会生成一个 RxTestframework 。如果你工程中包含了这个 framework 会导致你打包失败。所以 CPodfile 则提供了一种方法把需要过滤的 framework 给过滤掉。

使用方法如下:

filterFramework ['RxTest.framework', 'RxBlocking.framework']

install

install 命令则是分别执行 CocoaPodsinstall 命令 和 Carthagebootstrap 命令。

考虑到保留两个工具的功能,这里尽可能保留了两个工具 install 时的参数。

CarthagePods -- 一个整合 CocoaPods 和 Carthage 一起使用的工具

熟悉 Carthage 可能会发现,少了个 --platform

我们使用 CocoaPods 是其实会在 Podfile 中直接定对应的平台,所以这里的参数,工具会直接在 Podfile 中获取。

update

这个命令就是分别执行 CocoaPodsCarthageupdate 命令。功能与 install 相似。

遗留问题

  • 两个库,一个使用 CocoaPods , 一个使用 Carthage 去 install,如果这两个库同时依赖于另外一个库。这种场景可能会产生问题。(这个问题会在后续版本解决)
  • 我开发的时候希望能使用 RxTest ,发布的时候把它过滤掉。这个目前还是比较难办的。

不过退一步想,我们遇到这些情况还是都可以几乎无痛的,把一些库切换使用 CocoaPods 做依赖管理。

最后欢迎大家尝试使用我这个工具,欢迎 Issue 。我会尽我最大努力去维护它。


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

琢石成器

琢石成器

罗云彬 / 电子工业出版社 / 2009-6 / 89.00元

Windows环境下32位汇编语言是一种全新的编程语言。它使用与C++语言相同的API接口,不仅可以开发出大型的软件,而且是了解操作系统运行细节的最佳方式。 本书从编写应用程序的角度,从“Hello,World!”这个简单的例子开始到编写多线程、注册表和网络通信等复杂的程序,通过70多个实例逐步深入Win32汇编语言编程的方方面面。 本书作者罗云彬拥有十余年汇编语言编程经验,是汇编编程......一起来看看 《琢石成器》 这本书的介绍吧!

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具

RGB HSV 转换
RGB HSV 转换

RGB HSV 互转工具

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具