Understand how Xcode workspaces, projects, schemes, and targets work together.

Paul O'Neill
5 min readOct 25, 2022

Ever since I started doing development on Apple platforms, I understood the structures of Xcode and how everything fits together in a very surface-level way. So, I decided to dig into the documentation and understand in a deeper way how everything works together. These are tools at our disposal, and if we know how to use them properly (and understand what happens behind the scenes) we will become much better builders on Apple’s many platforms.

In this article, I’m going to define and explain the following: Workspaces, Projects, Schemes, and Targets. I also hope to add insight into how best to use them and how they work together as well.

Targets

A target is a single “product” that you build that has its own build configurations and settings. It’s its own module that builds something specific like an extension to your app. If you think about an extension, like a widget, it needs specific instructions on how to build and is separate from your main app.

A target has its own build settings and build phases that you can individually edit and modify in Xcode. Each target will use the settings from the project or workspace by default, but you can override those settings for your specific target.

--

--