6

我对将我的项目转换为 lib 或框架以在另一个项目中使用它并隐藏我的代码犹豫不决。

我一直在网上寻找一些关于什么更好、框架或 lib 的材料。框架的种类很少(其中大部分不被 Apple 支持,通常需要一些“合法的技巧”来构建它们,例如假框架和动态框架..)。

有人可以推荐并解释什么是更好的选择吗?框架或库(.a 文件)。

4

2 回答 2

11

这开始是一个评论,但我的空间不足。H2CO3 所说的一切都是正确的,但值得更详细地了解两种静态库。将您的代码分发给其他人时,消费者需要两件事:您的公共标头和编译的目标文件。这两种方法在交付上述内容方面略有不同。

香草静态库 (libMyCoolCode.a)

这些具有易于构建的优点。Xcode 已经为您提供了一个项目模板。虽然它们的消费并不可怕,但它们也不是很好。你必须给出你的编译对象存档(.a 文件),你还必须以某种方式提供所有公共头文件。然后客户端必须链接到您的库手动告诉 Xcode 在哪里查找标头。

假框架(MyCoolCode.framework)

传统框架包含动态库。有些人已经想出了一种方法来围绕静态库制作相同的构造。.framework 只是一个具有确定性布局的目录结构。它旨在包含使用所需的所有头文件。这很容易消费。您只需拖放,Xcode 就会自动知道在哪里可以找到标题。它的缺点是更难生产。Xcode 没有用于此的项目模板,因此您需要在线查找有关该过程的文献并将您自己的构建脚本添加到 Xcode 以生成框架。

综上所述,由您决定如何使用您的库。这是易于构建但使用繁琐与难以构建但易于使用之间的简单权衡。

于 2013-06-28T16:47:18.437 回答
4

完全无动于衷。在 iOS 上,如果你打算做官方开发,你只能使用静态库。即使是第 3 方(非系统)框架(否则将是动态库)在 iOS 上也是静态的。所以你就不能拥有动态库的优势。选择你更习惯的那​​个。

于 2013-06-28T16:07:28.917 回答