cso*_*iou 107 frameworks static-libraries static-linking ios ios-frameworks
我不得不承认,随着iOS 8的发布,我对iOS中的动态和静态框架感到有些困惑.
我正在寻找一种方法来分发我创建的库,我需要支持iOS 7及更高版本.(注意:这将是一个专有框架.我不能使用可可豆荚,我也不能分发来源).这是我已经知道的:
以下是关于此信息的问题:
Sub*_*bbu 66
在iOS8之前,Xcode只允许为iOS创建静态库.与此相关的常见问题是我们必须单独发送二进制文件和标题.
后来,一些开发人员提出了创建"静态框架"的想法.[.framework只是一个带有符号链接到lib和标题的文件夹].一个这样的例子是https://github.com/jverkoey/iOS-Framework
此选项适用于iOS 7或8或之前.因为它们只是静态库,便于捆绑头文件.
至于你对资源的问题,我们需要将它们捆绑在'.bundle'中.为了运送它们,我不确定我们是否可以将它们包含在.framework文件夹中.过去我曾经将我的库发送为静态框架和包...
但是,如果您使用Swift,上述选项将不适用于您.Xcode不支持构建包含swift代码的静态库.
如果有快速使用,你必须使用动态框架.从理论上讲,动态框架可以在iOS7中运行.但是,我认为如果应用程序针对iOS7并使用动态框架,iTunes Connect会拒绝:-).
希望这可以帮助
Avi*_*tta 15
使用Xcode 9,您也可以为Swift创建静态框架.由于ABI源兼容性,这是可能的.您只需更改Mach-O type框架目标的底层构建设置即可.此技术也适用于混合框架(具有Swift和Objective-C代码的框架).
yoA*_*ex5 14
静态与动态链接
staticor dynamicin name 通常指向Linking[About]类型
框架可以是static或dynamic[检查静态或动态]
您可以Linker通过将Framework target -> Build Settings -> Mach-O Type[About]更改为Static Library或来更改将对 a 产生影响的库的格式Dynamic Library。默认情况下,Xcode 具有Dynamic Library价值。
取决于此设置,将生成不同类型的二进制文件
成功配置消费者后[Link vs Embed]
Static Linker ld:在编译时将包含所有代码从static library到可执行目标文件中。
Dynamic Linker dyld:在加载/运行时将尝试使用@rpath[About]查找嵌入式框架并链接它
| 归档时间: |
|
| 查看次数: |
32505 次 |
| 最近记录: |