使用CocoaPods和Carthage分发封闭源框架

每个开发人员都会不时地努力工作。 为了实现我们想要的功能,我们从博客,书籍,Github页面(源代码,要点,问题–顺便阅读Github问题可能会非常有帮助)中进行阅读,堆栈溢出线程等。我们从上述所有来源中收集很少的信息并收集它们寻找解决方案。

对于我们大多数人来说,在解决了我们的问题之后,我们就解决了。 但是,如果我们忘记了,或者我们不准备再做一次该怎么办? 写下我们在此过程中遇到的挑战是一个好习惯,但是我们当中有多少人呢? 大多数时候,我们选择we懒的方式。 我会记住它,或者会再次找到相关的东西。

这次,我将改变态度,并写出在与CocoaPods和Carthage一起作为封闭源项目分发我们的框架时遇到的挑战。 我希望这篇文章可以帮助某人节省时间并保持神经😄

让我们从列出我们正在做的事情开始:

  1. 我们正在构建一个简单的框架(本例中为付款结帐服务)。 现在,我们自己完成所有工作,这意味着我们的框架没有内部依赖性。 (好吧,如果您嵌套了依赖项,那么本文将不再涉及它们,因此,您将学到更多内容,但是请相信我,它们并不难。)
  2. 框架使用Objective-C编写,以支持两种语言。 尽管我们是Swift的粉丝,但出于某些考虑,我们还是选择了Obj-C。 (如果您拥有Swift框架,则可以像本文中一样应用所有内容,因此不用担心👊🏻)
  3. 我们希望将代码作为封闭源分发。 因此,我们将分发通用二进制文件(.framework文件)。 通用意味着该宝贝将在物理设备和模拟器的所有体系结构上工作。
  4. 我们正在使用Github作为我们框架的宿主。

我听说在进行聊天之前已经足够了,在我们开始之前,我假设您都已经在Mac上安装了CocoaPods和Carthage并熟悉它们和一些终端命令(实际上,我确定,因为您要分发您的框架以及一些依赖项管理器😄)。

迦太基

https://github.com/Carthage/Carthage/pull/1760,直到出现该拉取请求,您才能将框架发布为封闭源。 它相对较新,因为它已于今年2月14日❤️推送回购。 (编码code真是糟糕的一天)

迦太基手册将这一过程命名为将预先构建的框架归档到一个zip文件中 ,该文件缺少有关如何读取日志的信息,等等。我们现在将进行遍历。

如果Carthage附加到项目存储库上的GitHub Release或通过二进制项目定义文件,它们可以自动使用预构建的框架,而不是从头开始构建。

要为特定标签提供预构建的框架,应将所有受支持平台的二进制文件一起压缩到一个存档中,并且该存档应附加到与该标签相对应的已发布发行版中。 附件名称中应包含.framework (例如ReactiveCocoa.framework.zip ),以向Carthage指示其包含二进制文件。

您可以使用carthage archive命令执行上述归档操作,如下所示:

 迦太基建造-无漏电流 
迦太基档案YourFrameworkName
  • 开始之前,请在Xcode上打开框架项目,然后通过Command + Option + Shift + K干净地构建项目。 (清洁文件夹会在大多数情况下将您从恶魔中拯救出来)
  • 打开一个终端并导航到您的项目文件夹。
  • carthage build --no-skip-current到终端。 (首先,我将显示失败的构建和处理方法。然后,我们将继续)