6

如何根据当前方案使测试主机/捆绑加载器动态化?现在该值设置为:

$(BUILT_PRODUCTS_DIR)/MyApp1.app/MyApp1

问题是我在工作区中有 4 个应用程序,我想为所有这些应用程序使用相同的单元测试套件。如何根据当前方案动态更改“MyApp1”部分?它是在构建期间基于环境变量吗?我尝试将其设置为 $(PROJECT_NAME) 之类的东西,但它们似乎得到了测试套件的名称。

4

1 回答 1

7

为此,您需要在构建设置中有一个变量——这看起来很简单,但事实并非如此。如果您通过应用程序或测试方案中的 Pre- 或 Post- 步骤设置环境变量,它似乎不会在这里被选中。毕竟,构建设置发生在构建之前。预处理器宏也是如此,尽管使用 xcodebuild 执行此操作并传入自定义选项可能会起作用。

我知道的唯一方法是使用 xcconfig 文件。创建一个并将其应用于(至少)您的测试目标。内容应包括以下内容: THINGUNDERTEST=FooBar

现在在您的项目设置中,无论是在 xcconfig 还是项目文件中,将 BUNDLER_LOADER 设置为: $(BUILT_PRODUCTS_DIR)/$(THINGUNDERTEST).app/$(THINGUNDERTEST)

那可行。现在您可以通过各种方式更改 THINGUNDERTEST 并获得至少一些动态行为。这可能适合您,也可能不适合您,具体取决于您的需求 - 但这可能只是一个起点。

于 2013-07-24T21:21:21.747 回答