当前位置: 首页 > 知识库问答 >
问题:

iOS静态与动态框架说明

裴昕
2023-03-14

我不得不承认,随着iOS8的发布,我对iOS中的动态和静态框架有点困惑。

我正在寻找一种方法来分发我创建的库,我需要支持iOS7和更高版本。(注意:这将是一个专有的框架。我不能使用可可荚,我也不能分发源代码)。下面是我已经知道的:

  • iOS 8为iOS引入了“嵌入式框架”,但据我所知,它们不适用于iOS 7,仅适用于iOS 8及以上版本。
  • 我可以选择将我的库作为静态库(.a文件)分发,还可以分发头。我知道这是处理这种情况的常用方法,但我想找到一些比这更简单的方法(如果可能的话,也可以与之捆绑一些资源)。
  • 我还发现iOS7不支持动态.Framework库(只支持静态),因为它不支持动态链接。但iOS 8和静态链接一样。

下面是我对这些信息的问题:

  • 我看到我可以创建一个.framework目标,并通过将Mach-O类型更改为“静态库”来使其静态化。这样就足够了吗,以便毫无问题地支持iOS 7,并且将我的库作为.framework包分发?如果是这样,为什么iOS 8中的“嵌入式框架”如此重要,就像internet上的许多资源所建议的那样?我遗漏了什么吗?
  • 是否有必要像处理其他应用程序一样共同设计.framework?
  • 如果我需要在.framework文件中包含其他资源(如核心数据或图像),该怎么办?我需要为此创建一个单独的.bundle文件吗?

共有1个答案

暨弘毅
2023-03-14

在iOS8之前,Xcode只允许为iOS创建静态库的选项。常见的问题是我们必须分别发送二进制文件和头文件。

后来,一些开发人员产生了创建“静态框架”的想法。[.framework只是一个文件夹,带有指向lib和头的符号链接]。其中一个例子是https://github.com/jverkoey/ios-framework

此选项将适用于iOS 7或8或之前的版本。因为它们只是静态库,可以方便地捆绑头文件。

但是,如果您使用Swift,上述选项将不会对您起作用。Xcode不支持构建包含swift代码的静态库。

如果有快速的使用,您必须使用动态框架。理论上,动态框架在iOS7中工作。但是,我认为iTunes Connect会拒绝如果应用程序针对iOS7并且使用动态框架:-)。

希望这有帮助

 类似资料:
  • 问题内容: 在我的数据库的多个地方,开发人员使用了动态sql而不是静态sql。他们说这是为了提高性能。有人可以告诉我动态sql是否真的可以提高存储过程或plsql块的性能吗? 哪个执行速度更快,为什么? 1。 2。 问题答案: 您的示例代码非常简单,几乎没有什么区别,但是在那种情况下,静态版本最有可能执行得更好。 使用动态SQL来提高性能的主要原因是,当SQL语句发生重大变化时- 例如,您可以根据

  • 本文向大家介绍IOS 静态方法与动态方法详解,包括了IOS 静态方法与动态方法详解的使用技巧和注意事项,需要的朋友参考一下 IOS 静态方法与动态方法详解 1、问题提出      iOS中有静态方法与动态方法,那么两种方法的异同是什么? 2、问题分析      因为每个对象都由相应的数据结构与方法相构成,一个程序可能有多个属于同一个类的对象,而每个对象的数据结构应该是不一的,但方法是相同的,若为每

  • 问题内容: 直到几周前,我还以为我知道何时创建字段和方法或。例如,当一个字段(例如另一个类的对象)对于该类的任意数量的对象是唯一的时,应将其设置为。 但是几周后,我读到了有关JVM垃圾收集的信息。 我知道字段永远不会被垃圾收集,并且始终保持在内存中,除非类加载器本身是垃圾收集的。 但是,如果我不创建该字段,至少它将被垃圾回收。 因此,在使字段/方法静态化与否之间似乎有一条 很细的界限 。 有人可以

  • 本文向大家介绍实例详解BootStrap的动态模态框及静态模态框,包括了实例详解BootStrap的动态模态框及静态模态框的使用技巧和注意事项,需要的朋友参考一下 1.要用bootStrap这个框架就必须要重载它的class类,也就是说class要一样 代码如下: 有疑问的可以在下面留言,欢迎大家一起交流 1.1动态模态框 1.2静态模态框 总结 以上所述是小编给大家介绍的BootStrap的动态

  • 静态绑定还是动态绑定? 这显示了什么样的多态性?

  • 本文向大家介绍请你说一说C+进程状态转换图,动态就绪,静态就绪,动态阻塞,静态阻塞相关面试题,主要包含被问及请你说一说C+进程状态转换图,动态就绪,静态就绪,动态阻塞,静态阻塞时的应答技巧和注意事项,需要的朋友参考一下 参考回答: 1、进程的五种基本状态: 1)创建状态:进程正在被创建 2)就绪状态:进程被加入到就绪队列中等待CPU调度运行 3)执行状态:进程正在被运行 4)等待阻塞状态:进程因为