A good way to do this would be with assembly configurations and C macros. This avoids the need to create a separate goal for each configuration, which is not really the right use of goals.
First you want to configure configurations at the project level:

You can create various configurations for debugging, corporate distribution, and any other type of custom build you want.
Next, you can define several macros for each configuration that will be passed to the compiler. You can then check these flags at compile time. Locate the "Preprocessor flags" assembly setting at the target level:

If you expand the triangle, you can define different values for each of your configurations. Here you can define macros KEY=VALUE or just KEY .

In your code, you can check for the presence of these macros or their value (if any). For example:
#ifdef DISABLE_FEATURE_X featureXButton.hidden = YES; #endif // ... #if FOOBAR_VISIBLE == 0 foobarView.hidden = YES; #elif FOOBAR_VISIBLE == 1 foorbarView.hidden = NO; #else #error Invalid value for FOOBAR_VISIBLE #endif
You can also pass string values that should be wrapped in single quotes in the assembly setup, for example. DEFAULT_LOCALIZATION_NAME='@"en"' .
You can also configure which configuration is used during Debug and Archive time using the Schemes editor. If you select Run or Archive in the schematic editor, you can select the appropriate configuration.

If you need to parameterize the entries in the Info.plist file, you can determine their value using the custom assembly setting. Add custom build customization for your purpose:

And then give it the appropriate value for the different configurations:

Then in the Info.plist file you can refer to this parameter:

Note that one limitation of this approach is that you cannot change the following elements:
In addition, in older versions of Xcode without directory support, you cannot change the following items:
They cannot be explicitly defined in the Info.plist file or elsewhere, which means you need different goals to change them.
Hope this helps.