【问题标题】:Linking a framework depending on 'Build' or 'Debug' mode in Xcode5?在 Xcode5 中根据“构建”或“调试”模式链接框架?
【发布时间】:2014-07-31 18:23:45
【问题描述】:

我正在 10.9.2 上使用 Xcode5 构建 Mac 应用程序。我的项目使用了第三方框架——为了简单起见,我们称之为 XYZ.framework。

提供了两个版本的 XYZ.framework:调试版本和发布版本。框架的调试版本要大得多,但它带有重要的调试功能,例如向控制台打印警告、断言等。框架的发布版本更小、更快,并且用于生产。调试版本位于 debug/XYZ.framework,发布版本位于 release/XYZ.framework。

我的问题是:如何根据我的构建配置包含正确版本的框架? IE、Xcode 在我的构建配置为 Debug 或包含发布时应包含 debug/XYZ.framework /XYZ.framework 当我的构建配置为 Release 时。

【问题讨论】:

    标签: objective-c xcode macos frameworks xcode5


    【解决方案1】:

    一种可能性是,创建单独的文件夹来保存框架的调试版本和框架的发布版本。下一步根据构建配置指定框架搜索路径。以下是自定义框架搜索路径的步骤:

    1. 转到构建设置。
    2. 在构建设置中搜索“框架搜索路径”。
    3. 根据您的配置编辑框架搜索路径。

    另外这个thread may also help you.

    【讨论】:

    • 我还需要在 Fastlane 中添加一个步骤,用发布版本覆盖框架的开发版本,并且不在任何目标中包含发布版本。否则苹果拒绝发布
    【解决方案2】:

    为您的调试应用创建一个单独的构建目标:

    Target > Debug.app
    

    在构建阶段:

    将二进制文件与库链接

    Click + Then Add Your Debugging Framework
    Remove the Release one by clicking -
    

    【讨论】:

    • 不幸的是,这意味着我必须从现在开始维护两个目标。 Xcode 已经支持 Debug 和 Release 构建,所以我不应该仅仅为此目的而制作一个完全独立的目标。
    • @jerzy,可以在方案下根据需要定义调试构建选项。当您在调试与发布中包含不同的库时,您的目标本质上是不一样的。如果您不想要另一个目标,请创建一个构建脚本,以在构建阶段按照您定义的标准隔离框架。
    猜你喜欢
    • 1970-01-01
    • 2011-02-04
    • 2021-05-30
    • 1970-01-01
    • 2014-08-12
    • 2020-11-25
    • 2010-09-22
    • 1970-01-01
    • 2020-07-07
    相关资源
    最近更新 更多