为什么Xcode不使用我的xcconfig文件中的构建配置设置?

时间:2015-09-22 23:40:15

标签: ios xcode6 xcconfig

编辑:我认为任何构建配置设置都可能出现此问题,而不只是OTHER_LDFLAGS而且我已相应更改了标题,并从问题中删除了无关的详细信息。

我有一个简单的Xcode项目MyApp。 MyApp.xcconfig设置为Debug版本的配置文件。它有一行:

OTHER_LDFLAGS = -force_load /foo/bar

虽然它知道MyApp.xcconfig设置OTHER_LDFLAGS Xcode不想使用该设置。在构建设置中,空白区域(而不是MyApp.xcconfig中的值)以绿色突出显示(请参阅标记为“其他链接器标志”的底部行):

enter image description here

为什么会这样?根据我的阅读,似乎解析的设置应该是.xcconfig文件中的设置。有没有办法让它如此?

我还发现xcconfig中的其他设置确实解决了。但不是OTHER_LDFLAGS

1 个答案:

答案 0 :(得分:4)

问题构建设置(在本例中为OTHER_LDFLAGS)在MyApp的""文件中被分配了一个空字符串project.pbxproj。 Xcode看到该分配而不是忽略它,覆盖你的xcconfig设置。解决方案是删除project.pbxproj中的行。

•在命令行中,在文本编辑器中打开MyApp.xcodeproj/project.pbxproj,例如Vim的。在其中,您将看到Xcode保留了构建MyApp所需的大量信息,包括您在Xcode的UI中设置的构建配置设置。

•滚动至XCBuildConfiguration section。在那里,您将看到您的问题构建设置(在这种情况下为OTHER_LDFLAGS)被分配了一个空字符串。删除该行并保存文件。

/* Begin XCBuildConfiguration section */
            .
            .
            .
            3729FD9E18B776ECB0A1990 /* Debug */ = {
                    isa = XCBuildConfiguration;
                    baseConfigurationReference = 4820F7A08BBB17C8164733A /* MyApp.xcconfig */;
                    buildSettings = {

                       /// delete this line ///
                         OTHER_LDFLAGS = "";

                    };
                    name = Debug;
            };
            .
            .
            .
/* End XCBuildConfiguration section */