Cocoa Touch Framework中的iOS依赖管理器

时间:2018-09-09 15:19:26

标签: ios swift ios-frameworks carthage

我一直在研究如何构建可可触摸框架,添加第三方库的依赖项管理器以及最终将该框架添加到应用程序项目中,但均未取得成功。

首先,我想说的是,我计划使用的框架将在编写应用程序时进行开发和测试,它将是主要git项目的git子模块。

理想情况下,我整个项目的结构都是这样

查找器: enter image description here

项目

enter image description here

这是一种很好的工作方式吗?

第二,我面临的主要问题是如何在框架中添加依赖项管理器

我尝试过“迦太基”和“可可足类动物”

使用 Carthage 时,主项目崩溃,因为它找不到框架,而使用“ Cocoapods”,因为它创建了一个工作区,因此我无法导入该框架,或者至少,我不知道该怎么做。

有人知道没有应用程序项目配置的将依赖管理器集成到可可触摸框架中的方法吗?

谢谢。

由于不公正的投票而删除了编辑部分

2 个答案:

答案 0 :(得分:1)

迦太基是我最喜欢的经理,所以我可以说的比Cocoapods还多。

在构建框架时,您想要链接到迦太基管理的任何依赖项,但不将其包括在框架中。这是相对简单的。只需转到您的框架目标,然后从<project-dir>/Carthage/Build/<platform>添加Carthage构建的框架。迦太基目录也应该最终出现在您的框架搜索路径中。

在主应用程序项目中,您需要做同样的事情,即。从Carthage构建目录中添加框架,并确保框架搜索路径中的目录也是如此。

然后,您需要再执行一步。您需要添加一个运行脚本阶段,并告诉它执行carthage copy-frameworks,然后将每个迦太基构建的框架文件添加到该阶段。原因是Apple构建框架的方式需要一些额外的工作,然后才能将它们复制到您的应用程序包中。

我怀疑您崩溃的原因是找不到该阶段的原因是未将此阶段添加到您的应用目标中。因此,当应用程序运行时,它无法找到框架。

答案 1 :(得分:1)

打开以编辑和建议!在iOS上发布Swift Package Manager时将继续

此外,如果有什么不对劲的话,我也要道歉。

答案:

在尝试了不同的方式和方法并给出了drekka答案之后,我想出了如何使用Carthage作为可可触摸框架的依赖项管理器。

我的框架具有所有的迦太基文件和文件夹,包括框架,但没有运行脚本。

enter image description here

因为我的框架包含依赖于导入框架的公共变量,所以当我在App项目中使用它们时,Xcode可以找到它们。

enter image description here

因此,在我的应用程序目标“ TheApp-常规-链接框架和库”中,我拖放了迦太基框架参考:

enter image description here

实际上,该位置已添加到“ TheApp-构建设置-搜索路径-框架搜索路径”

enter image description here

这时,应用程序在模拟器中编译了一个运行,但在实际设备中运行时崩溃,如问题所示。为了解决此问题,我在“ TheApp-Build phases”中添加了迦太基脚本。

enter image description here

工作完成了!

我期待一种更轻松的集成,就像您在android中使用gradle获得的集成一样,但到目前为止,我认为这是最好的方法。