我必须承认,随着iOS 8的发布,我对iOS中的动态和静态框架感到有点困惑。
我正在寻找一种方法来分发我创建的库,并且我需要支持iOS 7和更高版本。(注意:这将是一个专有框架。我不能使用可可豆荚,我也不能分发源代码)。这是我已经知道的:
支持iOS 8,也支持静态链接。
以下是我对这些信息的问题:
发布于 2015-07-03 00:32:10
在iOS8之前,Xcode只允许为iOS创建静态库。常见的问题是我们必须分别发布二进制文件和头部文件。
后来,一些开发人员产生了创建“静态框架”的想法。.framework只是一个带有指向库和头文件的符号链接的文件夹。https://github.com/jverkoey/iOS-Framework就是一个这样的例子
此选项适用于iOS 7或8或更早版本。因为它们只是静态库,可以方便地捆绑头文件。
至于您关于资源的问题,我们需要将它们捆绑在“.bundle”中。对于发货,我不确定我们是否可以将它们封装在.framework文件夹中。在过去,我常常把我的libs作为一个静态框架和捆绑包发布……
但是,如果您使用Swift,上述选项将不适用于您。Xcode不支持构建包含swift代码的静态库。
如果可以快速使用,您必须使用动态框架。从理论上讲,动态框架在iOS7中工作。但是,我认为如果应用程序针对iOS7并使用动态框架,iTunes连接将拒绝:-)。
希望这能有所帮助
发布于 2017-11-02 23:54:50
从Xcode9开始,您还可以为Swift创建静态框架。由于ABI源代码的兼容性,这是可能的。您只需更改框架目标的build设置下的Mach-O type
即可。该技术也适用于混合框架(包含Swift和Objective-C代码的框架)。
发布于 2015-04-21 10:49:08
我没有所有的答案,但我会试着在这里解决你的一些问题。
https://stackoverflow.com/questions/27899799
复制相似问题