动态框架的依赖性问题 iOS
Dependency issues with Dynamic Framework iOS
在我的项目中,我使用 cocoa pods 作为依赖项管理器。我添加了一个静态框架作为我的 pod 依赖项(比如框架 A)。
我的项目中嵌入了另一个框架(比如框架 B),它是动态框架。(它不是 pod 依赖项,直接链接并嵌入到 Xcode 项目中。)框架 B 具有 pod 依赖项框架 A,它是一个静态框架,也作为依赖项添加到我的主项目中。
在我的框架B项目中,我没有选择嵌入框架A库。
即使框架 A 没有嵌入到框架 B,所有对框架 A 方法的调用都不会定向到主项目的依赖项,而是定向为框架 A 是框架 B 的一部分并且不会命中断点到作为 pod 依赖项添加的 Framework A 方法。
我的问题是,由于框架A是静态框架,即使没有嵌入,在构建框架B时是否会在编译时将其作为依赖复制?
当您构建具有静态依赖项的应用程序或动态框架时,静态依赖项的所有代码都链接到包中的二进制文件中。无需将静态框架作为将在运行时加载的资源也包括在内。
这是我对你的理解
App
- Framework A (statically linked)
- Framework B (dynamic)
- Framework A (statically linked)
如果是这样,B 有自己的 A 副本。应用程序和框架 B 都不会在运行时在应用程序包中查找框架,因为它们在自己的二进制文件中有所需部分的副本。
在我的项目中,我使用 cocoa pods 作为依赖项管理器。我添加了一个静态框架作为我的 pod 依赖项(比如框架 A)。
我的项目中嵌入了另一个框架(比如框架 B),它是动态框架。(它不是 pod 依赖项,直接链接并嵌入到 Xcode 项目中。)框架 B 具有 pod 依赖项框架 A,它是一个静态框架,也作为依赖项添加到我的主项目中。
在我的框架B项目中,我没有选择嵌入框架A库。
即使框架 A 没有嵌入到框架 B,所有对框架 A 方法的调用都不会定向到主项目的依赖项,而是定向为框架 A 是框架 B 的一部分并且不会命中断点到作为 pod 依赖项添加的 Framework A 方法。
我的问题是,由于框架A是静态框架,即使没有嵌入,在构建框架B时是否会在编译时将其作为依赖复制?
当您构建具有静态依赖项的应用程序或动态框架时,静态依赖项的所有代码都链接到包中的二进制文件中。无需将静态框架作为将在运行时加载的资源也包括在内。
这是我对你的理解
App
- Framework A (statically linked)
- Framework B (dynamic)
- Framework A (statically linked)
如果是这样,B 有自己的 A 副本。应用程序和框架 B 都不会在运行时在应用程序包中查找框架,因为它们在自己的二进制文件中有所需部分的副本。