Adding a build configuration in Xcode

ConfigurationBuildXcode5

Configuration Problem Overview


I'd like to add a new build configuration in Xcode 5, "QA", to the other three we currently have (Debug, Distribution, Release). However, when I click "Editor > Add Configuration", everything is grayed out. I'm not very familiar with Xcode in the first place, so I'm not sure how to go about doing this.

Is there a reason it's grayed out? Is this this process to add a build configuration? Thanks.

Configuration Solutions


Solution 1 - Configuration

I ran into this same problem and figured it out. Here is a screenshot of the problem. I want to duplicate my "Release" configuration, but the option to do so is disabled. Why?

enter image description here

The answer is hiding behind this little button here (circled in red)...

enter image description here

This menu will open to reveal that you currently have a build target selected. Build targets don't have their own configurations.

Configurations are project-wide. If you select the project file, the menu will work, as shown here.

You also have to make sure that the 'Info' tab is selected, the options are still greyed out if you are on the 'Build Settings' page

enter image description here

Solution 2 - Configuration

For Xcode 11 + , you can add your custom configuration here:

enter image description here

Solution 3 - Configuration

Build Configuration and Build Configuration File(.xcconfig)

It allows you to manage Build Settings. It is actually what you see when reviewing Build Settings and it's mirrors(like Signing in Signing & Capabilities)

enter image description here

Build Configuration(e.g. Release/Debug) -> Build Configuration File(.xcconfig) or some default config file

[Xcode structure]

Build Configuration

Actually Debug/Release Build Configurations are created by default

Create Build Configuration

You are able to create a new Build Configuration via duplicating an existing(Debug/Release) in Configurations

Editor -> Add Configuration -> Duplicate <configuration_name> Configuration -> Click plus button under configuration list
//Set a name - Experiments for example

enter image description here

Select Build Configuration

Scheme -> Info -> Build Configuration

Build Configuration File(.xcconfig)

Much more powerful feature is build configuration file which you can assign for your configuration

File -> New -> File... -> Configuration Settings File
//Do not include it to any target

Project -> Info -> Configurations -> Build Configuration -> Target -> Build Configuration File

enter image description here

Please note that you are able to set Build Configuration File for Project and for Target. Depends on it Resolved variable will be set, also $(inherited)[About] will be different

For example add name into Build Configuration File

PRODUCT_NAME = THE BEST NAME

The result you can find on Build Settings

enter image description here CocoaPods and Build Configuration File

project '<project_name>', '<scheme_name_1>' => :<build_congiguration_file_name_1>
//For example
project 'MyProject', 'debug' => :conf1, 'release' => :conf2

Build Configuration File(.xcconfig). You can use next syntax to add or override the parent parameters

#include "<path_to_xcconfig>"

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionDaniel MillerView Question on Stackoverflow
Solution 1 - ConfigurationakshaunView Answer on Stackoverflow
Solution 2 - ConfigurationJader YangView Answer on Stackoverflow
Solution 3 - ConfigurationyoAlex5View Answer on Stackoverflow