【问题标题】:Create Custom Builds of an Xcode Project创建 Xcode 项目的自定义构建
【发布时间】:2011-02-09 11:26:02
【问题描述】:

我打算用 Xcode 构建一个用 Obj-C 编写的 Mac 应用程序。为了论证的缘故,假设它将有 10 个可选功能。我需要一种方法来启用或禁用这些功能来创建应用程序的自定义构建。这些构建将是自动化的(很可能通过 Mac OS X 终端),因此我需要一种方法来说明在构建时启用/禁用了哪些功能(配置文件或 CLI 参数是理想的。)

那么最好的方法是什么?我正在尝试在开始编码之前对此进行计划,以便在我的代码库中进行适当的分离,以允许这些功能来来去去。理想情况下,自定义构建只包含它应该具有的功能的编译代码。换句话说,我不想总是编译所有功能并在运行时调整它们。

【问题讨论】:

    标签: objective-c xcode command-line build-process compilation


    【解决方案1】:

    您可以为此目的使用 Xcode 配置;例如,对于每个配置,您可以包含不同的前缀标头。然后你可以通过xcodebuild从命令行触发构建。

    如果您更喜欢配置文件方法,则可以使用 .xcconfig 文件来定义任何 Xcode 构建设置。

    Xcode 构建系统指南describes 这两种方法。

    【讨论】:

    • 我不认为为每个组合手动创建配置是非常合理的:wolframalpha.com/input/?i=combinations+of+10 我不想制作 1,024 个配置 :-) 但我会研究 .xcconfig 文件的想法.谢谢!
    • @macinjosh 你找到方法了吗?
    【解决方案2】:

    使用#ifdef 和编译器标志下的-D 标志来控制东西是编译进还是编译出。如果需要,您可以通过这种方式设置许多不同的配置,并且只需让 xcode 构建配置正常工作。

    #include <stdio.h>
    
    int
    main (void)
    {
    #ifdef TEST
      printf ("Test mode\n");
    #endif
      printf ("Running...\n");
      return 0;
    }
    

    输出 1:

    $ gcc -Wall -DTEST dtest.c
    $ ./a.out
    Test mode
    Running...
    

    输出 2:

    $ gcc -Wall dtest.c
    $ ./a.out
    Running...
    

    来源:http://www.network-theory.co.uk/docs/gccintro/gccintro_34.html

    【讨论】:

      猜你喜欢
      • 2014-03-11
      • 1970-01-01
      • 2011-03-27
      • 2012-02-27
      • 2013-01-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-06-17
      相关资源
      最近更新 更多