【问题标题】:Library (.a file) or framework in iOS, what is a better choiceiOS中的库(.a文件)或框架,什么是更好的选择
【发布时间】:2013-06-26 11:33:55
【问题描述】:

我犹豫是否要将我的项目转换为 lib 或框架,以便在另一个项目中使用它并隐藏我的代码。

我一直在网上寻找一些关于框架或库更好的材料。框架的种类很少(大多数苹果不支持,通常需要一些“法律技巧”来构建它们,例如假框架和动态框架..)。

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

【问题讨论】:

标签: ios frameworks .a


【解决方案1】:

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

原版静态库 (libMyCoolCode.a)

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

假框架(MyCoolCode.framework)

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

话虽如此,您可以根据库的使用方式来决定。这是易于构建但使用繁琐与难以构建但易于使用之间的简单权衡。

【讨论】:

  • 感谢,假设我已经有一个假框架(A),我需要将一个项目(作为框架/lib)发布到-A-中,正如 H2CO3 提到的假框架已经不正式,用假框架换成另一个假框架有效吗?
  • 归根结底,“假框架”只是链接到另一个产品时的静态库。所以是的,当在其他静态库中使用时,它们就像常规静态库一样工作。
  • 这两个项目值得一提,它们将帮助您开始了解 .framework 文件(和 .bundle 文件):github.com/sammyd/RW-iOSFrameworkgithub.com/jverkoey/iOS-Framework
【解决方案2】:

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

【讨论】:

  • 我真的可以理解,我确实同意“正式”的东西,但是我已经看到了很多假框架的使用,它可能不是官方的,但它看起来是一个很好的解决方案,苹果批准了它,看起来开发人员喜欢它,它与“正式”方式的库(.a 文件)不同吗?
  • @Issa 两者。引用我自己的话:“完全无动于衷。”
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-03-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-12-26
  • 1970-01-01
  • 2014-06-01
相关资源
最近更新 更多