此问题基于this。
TL; DR:我正在将我的代码分解为框架并创建了一个元框架,其中包含将在我的所有框架中使用的代码(主要是常量和字符串)。
现在,我需要构建框架,但我不想在每个框架上包含元框架,因为这会导致不必要的代码膨胀。如何让我的框架了解元框架,以便我可以快速测试它们?不要忘记它们都将被包含在最终的应用程序中,因此在我创建的每个框架中包含元框架的副本是没有意义的。
答案 0 :(得分:2)
只需将您的子框架仅链接添加到您的元框架,不将元架构添加到您的子框架的复制文件构建阶段。<登记/> 这样您最终会得到没有重复的代码或资源。
然后,将您的一个子框架包含到app(bundle,无论如何)中,执行以下操作:
这基本上就是我在 DLAppKit.framework 中所做的,它依赖于我的 DLFoundationKit.framework 以及所有使用 DLAppKit.framework的应用 EM>
答案 1 :(得分:0)
为了这个答案,我将假设你正在使用内置的Xcode目标构建标准的,普通的框架。如果是这种情况,那么您的框架包含动态库,很可能是.dylib文件。任何链接到这种框架的代码都不会在编译时包含来自包含库的代码,它将在运行时加载框架并解析符号。
这样做的结果是你不必担心代码膨胀;链接!如果您的子框架依赖于父框架中定义的符号,那么您需要将它们链接到父框架。在某些情况下,您可以以可怕的方式使用Objective-C元编程来直接包含框架,但如果您主要包含常量和字符串,则可能不会出现这种情况。