iOS Cocoa Touch Framework 中的依赖管理器

iOS Dependency manager in Cocoa Touch Framework

我研究了一段时间,但没有成功构建 cocoa 触摸框架,为 3rd 方库添加依赖管理器,最后将框架添加到应用程序项目中。

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

理想情况下,我整个项目的结构看起来像这样

查找器:

项目

这样工作好吗?

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

我试过"Carthage"和"Cocoapods"

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

有谁知道在没有应用程序项目配置的 cocoa 触摸框架中集成依赖项管理器的方法?

谢谢。

由于不公平的否决票,删除了编辑的部分

Carthage 是我最喜欢的经理,所以我可以谈论它而不是 Cocoapods。

当您构建一个框架时,您希望 link 反对 Carthage 管理的任何依赖项,但不将它们包含在框架中。这做起来相对简单。只需转到您的框架目标并添加来自 <project-dir>/Carthage/Build/<platform> 的 Carthage 构建的框架。 Carthage 目录也应该出现在您的框架搜索路径中。

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

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

我怀疑你找不到框架的崩溃原因是这个阶段没有添加到你的应用程序目标中。因此,当应用 运行 时,它无法找到框架。

打开编辑和建议!待 Swift 包管理器发布 iOS

后继续

另外,如有不妥之处,敬请见谅

答案:

经过一段时间尝试不同的方式和方法并通过 drekka 的回答,我找到了如何使用 Carthage 作为我的 cocoa 触摸框架的依赖管理器。

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

因为我的framework里面有public个依赖frameworks导入的变量,所以在App项目中使用的时候Xcode可以找到

所以在我的应用程序目标中 "TheApp - General - Linked frameworks and libraries" 我拖放了迦太基框架参考:

而且,确实,位置被添加到 "TheApp - Build settings - Search path - Framework search path"

此时,应用程序在模拟器中编译了一个 运行s,但在真实设备中编译了 运行s,如问题中所示。为了解决这个问题,我在 "TheApp - Build phases"

中添加了 Carthage scrips

完成任务!

我期待像 android 中的 gradle 那样更简单的集成,但到目前为止,我认为这是最好的方法。