我有一个犹豫不决的关于将我的项目转换为lib或框架,以便在另一个项目中使用它并隐藏我的代码。
我一直在网上寻找关于什么是更好,框架或lib的一些材料。有几种框架(大多数框架都不受Apple支持,通常需要一些“法律黑客”来构建它们,例如假框架和动态框架......)。
有人可以推荐并解释什么是更好的选择吗?框架或库(.a文件)。
答案 0 :(得分:11)
这开头是一个评论,但我的空间不足。 H2CO3所说的一切都是正确的,但值得深入研究两种静态库的细节。在将代码分发给其他人时,消费者需要两件事:公共标题和编译的目标文件。这两种方法在交付上述方面略有不同。
这些具有易于构建的优点。 Xcode已经有了一个项目模板。虽然它们的消费并不可怕,但它们也不是很好。您必须提供编译对象存档(.a文件),并且还必须以某种方式提供所有公共标头。然后客户端必须链接到您的库和手动告诉Xcode在哪里查找标题。
传统框架包含动态库。有些人已经想出了一种围绕静态库制作相同结构的方法。 .framework只是一个具有确定性布局的目录结构。它旨在包含使用所需的所有头文件。这很容易消费。您只需拖放即可,Xcode会自动知道在哪里找到标题。它的缺点是难以生产。 Xcode没有这方面的项目模板,因此您需要在线查找有关该过程的文献,并将自己的构建脚本添加到Xcode以生成框架。
所有这一切都取决于你根据你的图书馆的使用方式来决定。这是一个简单的权衡,易于构建,但消费乏味,难以构建,但易于消费。
答案 1 :(得分:4)
绝对无动于衷。在iOS上,如果您计划进行官方开发,则只能使用静态库。甚至第三方(非系统)框架(否则将是动态库)在iOS上是静态的。所以你不能拥有动态库的优势。选择你更习惯的人。