An Xcode project is a repository for all the files, resources, and information required to build one or more software products. A project contains all the elements used to build your products and maintains the relationships between those elements. It contains one or more targets, which specify how to build products. A project defines default build settings for all the targets in the project (each target can also specify its own build settings, which override the project build settings).
An Xcode project file contains the following information:
References to source files:
Source code, including header files and implementation files
Libraries and frameworks, internal and external
Interface Builder (nib) files
Groups used to organize the source files in the structure navigator
Project-level build configurations. You can specify more than one build configuration for a project; for example, you might have debug and release build settings for a project.
Targets, where each target specifies:
A reference to one product built by the project
References to the source files needed to build that product
The build configurations that can be used to build that product, including dependencies on other targets and other settings; the project-level build settings are used when the targets’ build configurations do not override them
The executable environments that can be used to debug or test the program, where each executable environment specifies:
What executable to launch when you run or debug from Xcode
Command-line arguments to be passed to the executable, if any
Environmental variables to be set when the program runs, if any
A project can stand alone or can be included in a workspace.
You use Xcode schemes to specify which target, build configuration, and executable configuration is active at a given time.