Re: Stupid question for build schemes.

Alex Zavatone

These things.  When you open a target’s Scheme editor, these term for all of the things on the left that the scheme can change the settings for.

I hope this helps.
Alex Zavatone

On Nov 12, 2020, at 2:33 PM, Fritz Anderson <anderson.fritz@...> wrote:

I'm easily confused. Therefore I should confuse everybody else. It doesn't help that I don't have the full thread before me.

My understanding is that someone wants to know terms for the Xcode build and execution contexts; but that can't be because well-defined terms are already there. Possibly what's wanted is to unpack the jargon. I'll offer what I know, in the hope it's relevant.


Schemes, build settings, and build configurations  are different things. There's a potential confusion in the names, so some care is needed.


Build settings are options that configure the tools used in the build process. Each setting may be conditioned on platform, OS version, build configuration, etc. They may be set per-target or left to the last in a stack of defaults. They are held in the project file itself.


Build configurations are external files to inject a layer of build defaults. The canonical use is to provide a uniform build practice for a developer or organization. They reside in external files and are catalogued in the project file.


Schemes set the runtime environment for one target x platform configuration. The environment is set per-action (the verbs in the Product menu or the popup anchored at what people think of as the Run button). This includes the configuration to be injected into the settings.

The Build tab sets non-default dependencies. (Example, though defaulted: Test depends mot just on the selected product target but the corresponding test targets.)

With one exception I can think of, schemes have no effect on the deliverable product. Schemes set only the environment into which Xcode itself launches a target. The exception is that you can set the build configuration for the archived product.

affect targets only the runtime environment only when the ptoduct is launched by Xcode.

Schemes are kept in a directory tree in the project bundle, but are particular to (in short) one developer unless explicitly marked Shsred.


If you need to talk about these together, I'd go with "Xcode build and execution context," or reasonable subsets. I think all four nouns are necessary.

    — F

Join to automatically receive all group messages.