【发布时间】:2013-03-21 20:27:37
【问题描述】:
我有一个想要分发的 Cocoa 框架。对于不想将其作为子模块引入并自己构建的人,我想提供一个预构建版本:ECLogging.framework。
问题在于,该框架的 Debug/Release 变体具有不同的行为(不仅仅是不同的编译器选项,还可能实际执行不同的代码)。
什么是最惯用的分发方式以及人们设置他们的 Xcode 项目的方式?
我希望人们能够执行 #import ,因此我无法将框架的调试版本重命名为 ECLoggingDebug.framework(例如)。
所以我可以在这样的文件夹中给他们框架: ECLogging/ 调试/ ECLogging.framework 释放/ ECLogging.framework
然后人们可以很容易地设置一个框架搜索路径 ECLogging/$(CONFIGURATION)/,它将选择正确的路径。
这在编译和链接期间工作正常,但您还需要将正确的版本嵌入到构建的应用中。
在 Copy Files 阶段(进行嵌入的正常方式),Xcode 想知道它的真正位置,我认为我无法以某种方式使用环境变量来告诉它。
当然,我可以编写一个脚本,它只是复制它。我对此很好,但必须要求框架的用户这样做似乎很笨拙。
有没有更好的办法?
【问题讨论】:
-
调试和发布版本是否需要具有不同的编译器设置(当您构建它们时),或者不同的行为是必不可少的吗?
-
一般来说,唯一的编译器选项差异是正常的符号/优化设置。让预构建版本仅使用发布设置可能是可以接受的。
标签: objective-c xcode cocoa frameworks