Xcode Build Settings
source link: https://xcodebuildsettings.com/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
Core Build System
- Active Build Action
ACTION
A string identifying the build system action being performed.
- Additional SDKs
ADDITIONAL_SDKS
The locations of any sparse SDKs that should be layered on top of the one specified by Base SDK (SDKROOT). If more than one SDK is listed, the first one has highest precedence. Every SDK specified in this setting should be a “sparse” SDK, for example, not an SDK for an entire macOS release.
- Alternate Install Group
ALTERNATE_GROUP
The group name or gid for the files listed under the Alternate Permissions Files (ALTERNATE_PERMISSIONS_FILES) setting.
$(INSTALL_GROUP)
- Alternate Install Permissions
ALTERNATE_MODE
Permissions used for the files listed under the Alternate Permissions Files (ALTERNATE_PERMISSIONS_FILES) setting.
$(INSTALL_MODE_FLAG)
- Alternate Install Owner
ALTERNATE_OWNER
The owner name or uid for the files listed under the Alternate Permissions Files (ALTERNATE_PERMISSIONS_FILES) setting.
$(INSTALL_OWNER)
- Alternate Permissions Files
ALTERNATE_PERMISSIONS_FILES
List of files to which the alternate owner, group and permissions are applied.
- Always Search User Paths (Deprecated)
ALWAYS_SEARCH_USER_PATHS
This setting is deprecated as of Xcode 8.3 and may not be supported in future versions. It is recommended that you disable the setting.
If enabled, both
#include <header.h>
-style and#include "header.h"
-style directives search the paths in User Header Search Paths (USER_HEADER_SEARCH_PATHS) before Header Search Paths (HEADER_SEARCH_PATHS). As a consequence, user headers, such as your ownString.h
header, have precedence over system headers when using#include <header.h>
. This is done using the-iquote
flag for the paths provided in User Header Search Paths (USER_HEADER_SEARCH_PATHS). If disabled and your compiler fully supports separate user paths, user headers are only accessible with#include "header.h"
-style preprocessor directives.For backwards compatibility reasons, this setting is enabled by default. Disabling it is strongly recommended.
YES
- Require Only App-Extension-Safe API
APPLICATION_EXTENSION_API_ONLY
When enabled, this causes the compiler and linker to disallow use of APIs that are not available to app extensions and to disallow linking to frameworks that have not been built with this setting enabled.
NO
- Convert Copied Files
APPLY_RULES_IN_COPY_FILES
Enabling this setting will cause files in the target’s Copy Files build phases to be processed by build rules. For example, property list files (
.plist
) and strings files will be converted as specified by Property List Output Encoding (PLIST_FILE_OUTPUT_FORMAT) and Strings File Output Encoding (STRINGS_FILE_OUTPUT_ENCODING), respectively.NO
- Process Header Files
APPLY_RULES_IN_COPY_HEADERS
Enabling this setting will cause all Public and Private headers in the target’s Copy Headers build phase to be processed by build rules. This allows custom build rules to be defined to process these headers. Custom script rules can define their outputs relative to
HEADER_OUTPUT_DIR
, which will be provided to that script, taking the header visibility into account. The scripts are also passedSCRIPT_HEADER_VISIBILITY
(“public” or “private”). Files that should not be processed by build rules may need to be moved to a Copy Files build phase when this setting is enabled.NO
- Architectures
ARCHS
A list of the architectures for which the product will be built. This is usually set to a predefined build setting provided by the platform. If more than one architecture is specified, a universal binary will be produced.
$(ARCHS_STANDARD)
- Asset Pack Manifest URL Prefix
ASSET_PACK_MANIFEST_URL_PREFIX
If set to anything other than the empty string, every URL in the
AssetPackManifest.plist
file will consist of this string with the name of the asset pack appended. If not set, the URLs in theAssetPackManifest.plist
will be formed as appropriate for the build location of the asset packs. The prefix string is not escaped or quoted in any way, so any necessary escaping must be part of the URL string. This setting affects only URLs in theAssetPackManifest.plist
file — it does not affect where asset packs are built in the local file system. - Bitcode Generation Mode
BITCODE_GENERATION_MODE
Type Enumeration Valuesmarker
bitcode
marker
- Build Active Resources Only
BUILD_ACTIVE_RESOURCES_ONLY
Type Boolean Default ValueNO
- Active Build Components
BUILD_COMPONENTS
A list of components being built during this action.
- Build Dir
BUILD_DIR
Type Path Default Value$(SYMROOT)
- Build Libraries for Distribution
BUILD_LIBRARY_FOR_DISTRIBUTION
Ensures that your libraries are built for distribution. For Swift, this enables support for library evolution and generation of a module interface file.
NO
- Build Root
BUILD_ROOT
Type Path Default Value$(SYMROOT)
- Build Style
BUILD_STYLE
Type String - Build Variants
BUILD_VARIANTS
A list of the build variants of the linked binary that will be produced. By default, only the
normal
variant is produced. Other common values includedebug
andprofile
.normal
- Built Products Dir
BUILT_PRODUCTS_DIR
Identifies the directory under which all the product’s files can be found. This directory contains either product files or symbolic links to them. Run Script build phases can use the value of this build setting as a convenient way to refer to the product files built by one or more targets even when these files are scattered throughout a directory hierarchy (for example, when
DEPLOYMENT_LOCATION
is set toYES
.$(CONFIGURATION_BUILD_DIR)
- Bundle Contents Folder Path
BUNDLE_CONTENTS_FOLDER_PATH
Type String Default Value$(BUNDLE_CONTENTS_FOLDER_PATH_$(BUNDLE_FORMAT))
- Bundle Executable Folder Path
BUNDLE_EXECUTABLE_FOLDER_PATH
Type String Default Value$(BUNDLE_CONTENTS_FOLDER_PATH)$(BUNDLE_EXECUTABLE_FOLDER_NAME_$(BUNDLE_FORMAT))
- Bundle Format
BUNDLE_FORMAT
Type Enumeration Valuesdeep
shallow
shallow
- Bundle Frameworks Folder Path
BUNDLE_FRAMEWORKS_FOLDER_PATH
Type String Default Value$(BUNDLE_CONTENTS_FOLDER_PATH)Frameworks
- Bundle Loader
BUNDLE_LOADER
Specifies the executable that will load the bundle output file being linked. Undefined symbols from the bundle are checked against the specified executable as if it is one of the dynamic libraries the bundle was linked with.
- Bundle Plugins Folder Path
BUNDLE_PLUGINS_FOLDER_PATH
Type String Default Value$(BUNDLE_CONTENTS_FOLDER_PATH)PlugIns
- Bundle Private Headers Folder Path
BUNDLE_PRIVATE_HEADERS_FOLDER_PATH
Type String Default Value$(BUNDLE_CONTENTS_FOLDER_PATH)PrivateHeaders
- Bundle Public Headers Folder Path
BUNDLE_PUBLIC_HEADERS_FOLDER_PATH
Type String Default Value$(BUNDLE_CONTENTS_FOLDER_PATH)Headers
- Cc
CC
Type Path - Class File Dir
CLASS_FILE_DIR
Type Path Default Value$(TARGET_TEMP_DIR)/JavaClasses
- Clone Headers
CLONE_HEADERS
Type Boolean Default ValueNO
- Code Signing Allowed
CODE_SIGNING_ALLOWED
Type bool Default ValueNO
- Code Signing Entitlements
CODE_SIGN_ENTITLEMENTS
The path to a file specifying code-signing entitlements.
- Code Signing Identity
CODE_SIGN_IDENTITY
The name, also known as the common name, of a valid code-signing certificate in a keychain within your keychain path. A missing or invalid certificate will cause a build error.
- Code Signing Inject Base Entitlements
CODE_SIGN_INJECT_BASE_ENTITLEMENTS
Automatically inject entitlements from the platform’s BaseEntitlements.plist into the code signatures of executables.
YES
- Code Sign Local Execution Identity
CODE_SIGN_LOCAL_EXECUTION_IDENTITY
Type Enumeration ValuesAd Hoc
Local Certificate
- Code Sign Style
CODE_SIGN_STYLE
This setting specifies the method used to acquire and locate signing assets. Choose
Automatic
to let Xcode automatically create and update profiles, app IDs, and certificates. ChooseManual
to create and update these yourself on the developer website.Automatic
Manual
- Color Diagnostics
COLOR_DIAGNOSTICS
Type bool Default ValueNO
- Enable Index-While-Building Functionality
COMPILER_INDEX_STORE_ENABLE
Control whether the compiler should emit index data while building.
Default
YES
NO
Default
- Configuration
CONFIGURATION
Identifies the build configuration, such as
Debug
orRelease
, that the target uses to generate the product. - Per-configuration Build Products Path
CONFIGURATION_BUILD_DIR
The base path where build products will be placed during a build for a given configuration. By default, this is set to
$(BUILD_DIR)/$(CONFIGURATION)
.$(BUILD_DIR)
- Per-configuration Intermediate Build Files Path
CONFIGURATION_TEMP_DIR
The base path where intermediates will be placed during a build for a given configuration. By default, this is set to
$(PROJECT_TEMP_DIR)/$(CONFIGURATION)
.$(PROJECT_TEMP_DIR)
- Preserve HFS Data
COPYING_PRESERVES_HFS_DATA
Causes the copying of resources to preserve resource forks and Finder info.
NO
- Run unifdef on Product Headers
COPY_HEADERS_RUN_UNIFDEF
If enabled, headers are run through the
unifdef(1)
tool when copied to the product.NO
- Unifdef Flags for Product Headers
COPY_HEADERS_UNIFDEF_FLAGS
Specifies the flags to pass to
unifdef(1)
when invoking that tool to copy headers. This setting has no effect unless Run unifdef on Product Headers (COPY_HEADERS_RUN_UNIFDEF) is enabled. - Strip Debug Symbols During Copy
COPY_PHASE_STRIP
Specifies whether binary files that are copied during the build, such as in a Copy Bundle Resources or Copy Files build phase, should be stripped of debugging symbols. It does not cause the linked product of a target to be stripped—use Strip Linked Product (STRIP_INSTALLED_PRODUCT) for that.
YES
- Create Info.plist Section in Binary
CREATE_INFOPLIST_SECTION_IN_BINARY
Enabling this setting will create a section in the product’s linked binary containing the processed
Info.plist
file for the target. This setting only applies to command-line tool targets.NO
- Current Project Version
CURRENT_PROJECT_VERSION
This setting defines the current version of the project. The value must be a integer or floating point number, such as
57
or365.8
. - Current Version
CURRENT_VERSION
Type string - Dead Code Stripping
DEAD_CODE_STRIPPING
Activating this setting causes the
-dead_strip
flag to be passed told(1)
viacc(1)
to turn on dead code stripping.NO
- Debugging Symbols
DEBUGGING_SYMBOLS
Type Boolean Default ValueYES
- Debug Information Format
DEBUG_INFORMATION_FORMAT
The type of debug information to produce.
dwarf
dwarf-with-dsym
dwarf
- Default Compiler
DEFAULT_COMPILER
Type String - Default Dext Install Path
DEFAULT_DEXT_INSTALL_PATH
Type string Default Value$(SYSTEM_DEXT_INSTALL_PATH)
- Default Kext Install Path
DEFAULT_KEXT_INSTALL_PATH
Type string Default Value$(SYSTEM_KEXT_INSTALL_PATH)
- Defines Module
DEFINES_MODULE
If enabled, the product will be treated as defining its own module. This enables automatic production of LLVM module map files when appropriate, and allows the product to be imported as a module.
NO
- Deployment Location
DEPLOYMENT_LOCATION
If enabled, built products are placed in their installed locations in addition to the built products folder.
NO
- Deployment Postprocessing
DEPLOYMENT_POSTPROCESSING
If enabled, indicates that binaries should be stripped and file mode, owner, and group information should be set to standard values.
NO
- Derived File Dir
DERIVED_FILE_DIR
Type Path Default Value$(TARGET_TEMP_DIR)/DerivedSources
- Derived Sources Dir
DERIVED_SOURCES_DIR
Type Path Default Value$(DERIVED_FILE_DIR)
- Development Assets
DEVELOPMENT_ASSET_PATHS
Files and directories used only for development. Archive and install builds will exclude this content.
- Development Team
DEVELOPMENT_TEAM
The team ID of a development team to use for signing certificates and provisioning profiles.
- Don't Force Info.plist Generation
DONT_GENERATE_INFOPLIST_FILE
If enabled, don’t automatically generate an Info.plist file for wrapped products when the Info.plist File (INFOPLIST_FILE) build setting is empty.
NO
- Do Header Scanning In Jam
DO_HEADER_SCANNING_IN_JAM
Type Boolean Default ValueNO
- Installation Build Products Location
DSTROOT
The path at which all products will be rooted when performing an install build. For instance, to install your products on the system proper, set this path to
/
. Defaults to/tmp/$(PROJECT_NAME).dst
to prevent a test install build from accidentally overwriting valid and needed data in the ultimate install path.Typically this path is not set per target, but is provided as an option on the command line when performing an
xcodebuild install
. It may also be set in a build configuration in special circumstances./tmp/$(PROJECT_NAME).dst
- Dwarf Dsym File Name
DWARF_DSYM_FILE_NAME
Type String Default Value$(FULL_PRODUCT_NAME).dSYM
- Dwarf Dsym File Should Accompany Product
DWARF_DSYM_FILE_SHOULD_ACCOMPANY_PRODUCT
Type bool Default ValueNO
- Dwarf Dsym Folder Path
DWARF_DSYM_FOLDER_PATH
Type Path Default Value$(CONFIGURATION_BUILD_DIR)
- Compatibility Version
DYLIB_COMPATIBILITY_VERSION
Determines the compatibility version of the resulting library, bundle, or framework binary. See Dynamic Library Design Guidelines in Dynamic Library Programming Topics for details on assigning version numbers of dynamic libraries.
- Current Library Version
DYLIB_CURRENT_VERSION
This setting defines the current version of any framework built by the project. As with Current Project Version (CURRENT_PROJECT_VERSION), the value must be an integer or floating point number, such as
57
or365.8
. By default, it is set to$(CURRENT_PROJECT_VERSION)
. See Dynamic Library Design Guidelines in Dynamic Library Programming Topics for details on assigning version numbers of dynamic libraries. - Dynamic Library Install Name Base
DYLIB_INSTALL_NAME_BASE
Sets the base value for the internal
install path
(LC_ID_DYLIB
) in a dynamic library. This will be combined with the EXECUTABLE_PATH to form the full install path. Setting Dynamic Library Install Name (LD_DYLIB_INSTALL_NAME) directly will override this setting. This setting defaults to the target’s Installation Directory (INSTALL_PATH). It is ignored when building any product other than a dynamic library. - Embedded Profile Name
EMBEDDED_PROFILE_NAME
Type String - Embed Asset Packs In Product Bundle
EMBED_ASSET_PACKS_IN_PRODUCT_BUNDLE
Embed all the built asset packs inside the product bundle. Since this negates the performance benefits of the On Demand Resources feature, it is only useful for testing purposes when it isn’t practical to use an asset pack server.
NO
- Enable Bitcode
ENABLE_BITCODE
Activating this setting indicates that the target or project should generate bitcode during compilation for platforms and architectures that support it. For Archive builds, bitcode will be generated in the linked binary for submission to the App Store. For other builds, the compiler and linker will check whether the code complies with the requirements for bitcode generation, but will not generate actual bitcode.
NO
- Enable Default Header Search Paths
ENABLE_DEFAULT_HEADER_SEARCH_PATHS
Type bool Default ValueYES
- Enable Hardened Runtime
ENABLE_HARDENED_RUNTIME
Enable hardened runtime restrictions.
NO
- Enable Header Dependencies
ENABLE_HEADER_DEPENDENCIES
Specifies whether to automatically track dependencies on included header files.
YES
- Enable On Demand Resources
ENABLE_ON_DEMAND_RESOURCES
If enabled, tagged assets—files and asset catalog entries—are built into asset packs based on their combination of tags. Untagged resources are treated normally.
NO
- Enable Previews
ENABLE_PREVIEWS
If enabled, the product will be built with options appropriate for supporting previews.
- Enable Testability
ENABLE_TESTABILITY
When this setting is activated, the product will be built with options appropriate for running automated tests, such as making private interfaces accessible to the tests. This may result in tests running slower than they would without testability enabled.
NO
- Enable Testing Search Paths
ENABLE_TESTING_SEARCH_PATHS
Specifies whether the build system should add the search paths necessary for compiling and linking against XCTest. This setting is enabled by default if the target is a unit test target or if the target explicitly links to the XCTest framework.
NO
- Entitlements Destination
ENTITLEMENTS_DESTINATION
Type Enumeration ValuesSignature
__entitlements
- Excluded Archs
EXCLUDED_ARCHS
Type StringList - Excluded Installsrc Subdirectory Patterns
EXCLUDED_INSTALLSRC_SUBDIRECTORY_PATTERNS
Type stringlist Default Value.DS_Store .svn .git .hg CVS
- Sub-Directories to Exclude in Recursive Searches
EXCLUDED_RECURSIVE_SEARCH_PATH_SUBDIRECTORIES
This is a list of
fnmatch()
-style patterns of file or directory names to exclude when performing a recursive search. By default, this is set to*.nib *.lproj *.framework *.gch *.xcode (*) .DS_Store CVS .svn .git .hg
. Normally, if you override this value you should include the default values via the$(inherited)
macro.*.nib *.lproj *.framework *.gch *.xcode* *.xcassets (*) .DS_Store CVS .svn .git .hg *.pbproj *.pbxproj
- Excluded Source File Names
EXCLUDED_SOURCE_FILE_NAMES
A list of patterns (as defined by
fnmatch(3)
) specifying the names of source files to explicitly exclude when processing the files in the target’s build phases (see also Included Source File Names (INCLUDED_SOURCE_FILE_NAMES)). This setting can be used to define complex filters for which files from the phase should be built in response to other build settings; for example, a value of*.$(CURRENT_ARCH).c
could serve to exclude particular files based on the architecture being built. - Executable Extension
EXECUTABLE_EXTENSION
This is the extension used for the executable product generated by the target, which has a default value based on the product type.
- Executable Prefix
EXECUTABLE_PREFIX
The prefix used for the executable product generated by the target, which has a default value based on the product type.
- Exported Symbols File
EXPORTED_SYMBOLS_FILE
This is a project-relative path to a file that lists the symbols to export. See
ld -exported_symbols_list
for details on exporting symbols. - File List
FILE_LIST
Type Path Default Value$(OBJECT_FILE_DIR)/LinkFileList
- Framework Search Paths
FRAMEWORK_SEARCH_PATHS
This is a list of paths to folders containing frameworks to be searched by the compiler for both included or imported header files when compiling C, Objective-C, C++, or Objective-C++, and by the linker for frameworks used by the product. Paths are delimited by whitespace, so any paths with spaces in them must be properly quoted.
- Framework Version
FRAMEWORK_VERSION
Framework bundles are versioned by having contents in subfolders of a version folder that has links to the current version and its contents.
A
- Full Product Name
FULL_PRODUCT_NAME
Type String - Compiler for C/C++/Objective-C
GCC_VERSION
The compiler to use for C, C++, and Objective-C.
- Generated Modulemap Dir
GENERATED_MODULEMAP_DIR
Type string Default Value$(OBJROOT)/GeneratedModuleMaps$(EFFECTIVE_PLATFORM_NAME)
- Perform Single-Object Prelink
GENERATE_MASTER_OBJECT_FILE
Activating this setting will cause the object files built by a target to be prelinked using
ld -r
into a single object file, and that object file will then be linked into the final product. This is useful to force the linker to resolve symbols and link the object files into a single module before building a static library. Also, a separate set of link flags can be applied to the prelink allowing additional control over, for instance, exported symbols.NO
- Force Package Info Generation
GENERATE_PKGINFO_FILE
Forces the
PkgInfo
file to be written to wrapped products even if this file is not expected.NO
- Generate Profiling Code
GENERATE_PROFILING_CODE
Activating this setting will cause the compiler and linker to generate profiling code. For example, GCC will generate code suitable for use with
gprof(1)
.NO
- Enable Text-Based Stubs Generation
GENERATE_TEXT_BASED_STUBS
Enables the generation of Text-Based stubs for dynamic libraries and frameworks.
NO
- Headermap Includes Flat Entries For Target Being Built
HEADERMAP_INCLUDES_FLAT_ENTRIES_FOR_TARGET_BEING_BUILT
Specifies whether the header map contains a name/path entry for every header in the target being built.
YES
- Headermap Includes Framework Entries For All Product Types
HEADERMAP_INCLUDES_FRAMEWORK_ENTRIES_FOR_ALL_PRODUCT_TYPES
Specifies whether the header map contains a framework-name/path entry for every header in the target being built, including targets that do not build frameworks.
YES
- Headermap Includes Nonpublic Nonprivate Headers
HEADERMAP_INCLUDES_NONPUBLIC_NONPRIVATE_HEADERS
Type Boolean Default Value$(HEADERMAP_INCLUDES_PROJECT_HEADERS)
- Headermap Includes Project Headers
HEADERMAP_INCLUDES_PROJECT_HEADERS
Specifies whether the header map contains a name/path entry for every header in the project, regardless of the headers’ target membership.
YES
- Headermap Uses Framework Prefix Entries
HEADERMAP_USES_FRAMEWORK_PREFIX_ENTRIES
Type Boolean Default ValueYES
- Headermap Uses Vfs
HEADERMAP_USES_VFS
Type Boolean Default Value$(DEFINES_MODULE)
- Header Search Paths
HEADER_SEARCH_PATHS
This is a list of paths to folders to be searched by the compiler for included or imported header files when compiling C, Objective-C, C++, or Objective-C++. Paths are delimited by whitespace, so any paths with spaces in them need to be properly quoted.
- Hide Bitcode Symbols
HIDE_BITCODE_SYMBOLS
Type Boolean Default ValueYES
- Home
HOME
Type path - Sub-Directories to Include in Recursive Searches
INCLUDED_RECURSIVE_SEARCH_PATH_SUBDIRECTORIES
This is a list of
fnmatch()
-style patterns of file or directory names to include when performing a recursive search. By default, this is empty and is only customized when you want to provide exceptions to the list of filename patterns provided in Sub-Directories to Exclude in Recursive Searches (EXCLUDED_RECURSIVE_SEARCH_PATH_SUBDIRECTORIES). - Included Source File Names
INCLUDED_SOURCE_FILE_NAMES
A list of patterns (as defined by
fnmatch(3)
) specifying the names of source files to explicitly include when processing the files in the target’s build phases. This setting is only useful when combined with Excluded Source File Names (EXCLUDED_SOURCE_FILE_NAMES), and can be used to define complex filters for which files from the phase should be built in response to other build settings. - Expand Build Settings in Info.plist File
INFOPLIST_EXPAND_BUILD_SETTINGS
Expand build settings in the
Info.plist
file.YES
- Info.plist File
INFOPLIST_FILE
The project-relative path to the property list file that contains the
Info.plist
information used by bundles. For details on information property list files, see Information Property List Files in Runtime Configuration Guidelines. - Info.plist Other Preprocessor Flags
INFOPLIST_OTHER_PREPROCESSOR_FLAGS
Other flags to pass to the C preprocessor when preprocessing the
Info.plist
file. - Info.plist Output Encoding
INFOPLIST_OUTPUT_FORMAT
Specifies the output encoding for the output
Info.plist
. The output encodings can bebinary
orXML
. By default, the output encoding will be unchanged from the input.same-as-input
XML
binary
same-as-input
- Info.plist Preprocessor Prefix File
INFOPLIST_PREFIX_HEADER
Implicitly include the given file when preprocessing the
Info.plist
file. The path given should either be a project relative path or an absolute path. - Preprocess Info.plist File
INFOPLIST_PREPROCESS
Preprocess the
Info.plist
file using the C Preprocessor.NO
- Info.plist Preprocessor Definitions
INFOPLIST_PREPROCESSOR_DEFINITIONS
Space-separated list of preprocessor macros of the form
foo
orfoo=bar
. These macros are used when preprocessing theInfo.plist
file. - Initialization Routine
INIT_ROUTINE
This is the name of the routine to use for initialization.
- Enable Text-Based Stubs Inlining
INLINE_PRIVATE_FRAMEWORKS
Enables private framework inlining for Text-Based Stubs.
NO
- Perform Copy Files Phases During `installhdrs`
INSTALLHDRS_COPY_PHASE
Specifies whether the target’s Copy Files build phases are executed in
installhdr
builds.NO
- Perform Shell Script Phases During `installhdrs`
INSTALLHDRS_SCRIPT_PHASE
Specifies whether the target’s Run Script build phases are executed in
installhdr
builds. See Active Build Action (ACTION) for details oninstallhdr
builds.NO
- Install Dir
INSTALL_DIR
Identifies the directory in the developer’s filesystem into which the installed product is placed.
$(DSTROOT)$(INSTALL_PATH)
- Install Group
INSTALL_GROUP
The group name or
gid
for installed products.$(GROUP)
- Install Permissions
INSTALL_MODE_FLAG
Permissions used for installed product files.
u+w,go-w,a+rX
- Install Owner
INSTALL_OWNER
The owner name or
uid
for installed products.$(USER)
- Installation Directory
INSTALL_PATH
The directory in which to install the build products. This path is prepended by the Installation Build Products Location (DSTROOT).
- Install Root
INSTALL_ROOT
Type Path Default Value$(DSTROOT)
- Java App Stub
JAVA_APP_STUB
Type Path Default Value$(SYSTEM_LIBRARY_DIR)/Frameworks/JavaVM.framework/Resources/MacOS/JavaApplicationStub
- Java Archive Classes
JAVA_ARCHIVE_CLASSES
Type Boolean Default ValueYES
- Java Archive Type
JAVA_ARCHIVE_TYPE
Type String Default ValueJAR
- Java Compiler
JAVA_COMPILER
Type Path Default Value/usr/bin/javac
- Java Framework Jars
JAVA_FRAMEWORK_JARS
Type PathList - Java Framework Resources Dirs
JAVA_FRAMEWORK_RESOURCES_DIRS
Type PathList Default ValueResources
- Java Jar Flags
JAVA_JAR_FLAGS
Type StringList Default Valuecv
- Java Source Subdir
JAVA_SOURCE_SUBDIR
Type Path Default Value.
- Java Use Dependencies
JAVA_USE_DEPENDENCIES
Type Boolean Default ValueYES
- Java Zip Flags
JAVA_ZIP_FLAGS
Type StringList Default Value-urg
- Preserve Private External Symbols
KEEP_PRIVATE_EXTERNS
Activating this setting will preserve private external symbols, rather than turning them into static symbols. This setting is also respected when performing a single-object prelink.
NO
- Kext Cflags
KEXT_CFLAGS
Type StringList - Kext Cplusplusflags
KEXT_CPLUSPLUSFLAGS
Type StringList Default Value$(KEXT_CFLAGS)
- Path to Linker Dependency Info File
LD_DEPENDENCY_INFO_FILE
This setting defines the path to which the linker should emit information about what files it used as inputs and generated. Xcode uses this information for its dependency tracking. Setting the value of this setting to empty will disable passing this option to the linker.
$(OBJECT_FILE_DIR_$(CURRENT_VARIANT))/$(CURRENT_ARCH)/$(PRODUCT_NAME)_dependency_info.dat
- Dynamic Library Allowable Clients
LD_DYLIB_ALLOWABLE_CLIENTS
This setting restricts the clients allowed to link a dylib by passing
-allowable_client
to the linker for each supplied value. - Dynamic Library Install Name
LD_DYLIB_INSTALL_NAME
Sets an internal
install path
(LC_ID_DYLIB
) in a dynamic library. Any clients linked against the library will record that path as the waydyld
should locate this library. If this option is not specified, then the-o
path will be used. This setting is ignored when building any product other than a dynamic library. See Dynamic Library Programming Topics. - Write Link Map File
LD_GENERATE_MAP_FILE
Activating this setting will cause the linker to write a map file to disk, which details all symbols and their addresses in the output image. The path to the map file is defined by the Path to Link Map File (LD_MAP_FILE_PATH) setting.
NO
- Path to Link Map File
LD_MAP_FILE_PATH
This setting defines the path to the map file written by the linker when the Write Link Map File (LD_GENERATE_MAP_FILE) setting is activated. By default, a separate file will be written for each architecture and build variant, and these will be generated in the Intermediates directory for the target whose product is being linked.
$(TARGET_TEMP_DIR)/$(PRODUCT_NAME)-LinkMap-$(CURRENT_VARIANT)-$(CURRENT_ARCH).txt
- Generate Position-Dependent Executable
LD_NO_PIE
Activating this setting will prevent Xcode from building a main executable that is position independent (PIE). When targeting macOS 10.7 or later, PIE is the default for main executables, so activating this setting will change that behavior. When targeting OS X 10.6 or earlier, or when building for i386, PIE is not the default, so activating this setting does nothing.
You cannot create a PIE from
.o
files compiled with-mdynamic-no-pic
. Using PIE means the codegen is less optimal, but the address randomization adds some security.NO
- Quote Linker Arguments
LD_QUOTE_LINKER_ARGUMENTS_FOR_COMPILER_DRIVER
This setting controls whether arguments to the linker should be quoted using
-Xlinker
. By default, Xcode invokes the linker by invoking the driver of the compiler used to build the source files in the target, and passing-Xlinker
to quote arguments will cause the compiler driver to pass them through to the linker (rather than trying to evaluate them within the driver). By default, this setting is enabled. Disabling it will cause Xcode to not use-Xlinker
to pass arguments to the linker. Disabling this setting is useful if the target has instructed Xcode to use an alternate linker (for example, by setting theLD
setting to the path to another linker) and that alternate linker does not recognize-Xlinker
.YES
- Runpath Search Paths
LD_RUNPATH_SEARCH_PATHS
This is a list of paths to be added to the
runpath
search path list for the image being created. At runtime,dyld
uses therunpath
when searching for dylibs whose load path begins with@rpath/
. See Dynamic Library Programming Topics. - Library Dext Install Path
LIBRARY_DEXT_INSTALL_PATH
Type string Default Value$(LOCAL_LIBRARY_DIR)/DriverExtensions
- Library Flag Nospace
LIBRARY_FLAG_NOSPACE
Type bool Default ValueYES
- Library Flag Prefix
LIBRARY_FLAG_PREFIX
Type String - Library Kext Install Path
LIBRARY_KEXT_INSTALL_PATH
Type string Default Value$(LOCAL_LIBRARY_DIR)/Extensions
- Library Search Paths
LIBRARY_SEARCH_PATHS
This is a list of paths to folders to be searched by the linker for libraries used by the product. Paths are delimited by whitespace, so any paths with spaces in them need to be properly quoted.
- Display Mangled Names
LINKER_DISPLAYS_MANGLED_NAMES
Activating this setting causes the linker to display mangled names for C++ symbols. Normally, this is not recommended, but turning it on can help to diagnose and solve C++ link errors.
NO
- Link With Standard Libraries
LINK_WITH_STANDARD_LIBRARIES
When this setting is enabled, the compiler driver will automatically pass its standard libraries to the linker to use during linking. If desired, this flag can be used to disable linking with the standard libraries, and then individual libraries can be passed as Other Linker Flags (OTHER_LDFLAGS).
YES
- Llvm Target Triple Os Version
LLVM_TARGET_TRIPLE_OS_VERSION
Type String Default Value$(SWIFT_PLATFORM_TARGET_PREFIX)$($(DEPLOYMENT_TARGET_SETTING_NAME))
- Llvm Target Triple Suffix
LLVM_TARGET_TRIPLE_SUFFIX
Type String - Llvm Target Triple Vendor
LLVM_TARGET_TRIPLE_VENDOR
Type String Default Valueapple
- Localizable Content Dir
LOCALIZABLE_CONTENT_DIR
Type Path - Localized String Macro Names
LOCALIZED_STRING_MACRO_NAMES
The base names for NSLocalizedString-like macros or functions used to produce localized strings in source code. The default base names of NSLocalizedString and CFCopyLocalizedString are always considered, even if this setting is empty.
NSLocalizedString CFCopyLocalizedString
- Localized String Swift UI Support
LOCALIZED_STRING_SWIFTUI_SUPPORT
When enabled, literal strings passed to the Text() initializer from Swift UI will be extracted during localization export.
YES
- Locroot
LOCROOT
Type Path - Locsymroot
LOCSYMROOT
Type Path - Logname
LOGNAME
Type string - Mach-O Type
MACH_O_TYPE
This setting determines the format of the produced binary and how it can be linked when building other binaries. For information on binary types, see Building Mach-O Files in Mach-O Programming Topics.
mh_execute
mh_dylib
mh_bundle
staticlib
mh_object
- Mac Os X Version Max Allowed
MAC_OS_X_VERSION_MAX_ALLOWED
Type String - Mac Os X Version Min Required
MAC_OS_X_VERSION_MIN_REQUIRED
Type String - Marketing Version
MARKETING_VERSION
This setting defines the user-visible version of the project. The value corresponds to the
CFBundleShortVersionString
key in your app’s Info.plist. - Metal Library File Base
METAL_LIBRARY_FILE_BASE
Type string Default Valuedefault
- Metal Library Output Dir
METAL_LIBRARY_OUTPUT_DIR
Type string Default Value$(TARGET_BUILD_DIR)/$(UNLOCALIZED_RESOURCES_FOLDER_PATH)
- Module Map File
MODULEMAP_FILE
This is the project-relative path to the LLVM module map file that defines the module structure for the compiler. If empty, it will be automatically generated for appropriate products when Defines Module (DEFINES_MODULE) is enabled.
- Private Module Map File
MODULEMAP_PRIVATE_FILE
This is the project-relative path to the LLVM module map file that defines the module structure for private headers.
- Module Cache Dir
MODULE_CACHE_DIR
Absolute path of folder in which compiler stores its cached modules—this cache is a performance improvement.
$(DERIVED_DATA_DIR)/ModuleCache.noindex
- Module Identifier
MODULE_NAME
This is the identifier of the kernel module listed in the generated stub. This is only used when building kernel extensions.
- Module Start Routine
MODULE_START
This defines the name of the kernel module start routine. This is only used when building kernel extensions.
- Module Stop Routine
MODULE_STOP
This defines the name of the kernel module stop routine. This is only used when building kernel extensions.
- Module Version
MODULE_VERSION
This is the version of the kernel module listed in the generated stub. This is only used when building kernel extensions.
- Native Arch
NATIVE_ARCH
Identifies the architecture on which the build is being performed.
- Native Arch Actual
NATIVE_ARCH_ACTUAL
Type String - Object File Dir
OBJECT_FILE_DIR
Type Path Default Value$(TARGET_TEMP_DIR)/Objects
- Intermediate Build Files Path
OBJROOT
The path where intermediate files will be placed during a build. Intermediate files include generated sources, object files, etc. Shell script build phases can place and access files here, as well. Typically this path is not set per target, but is set per project or per user. By default, this is set to
$(PROJECT_DIR)/build
.$(SYMROOT)
- Build Active Architecture Only
ONLY_ACTIVE_ARCH
If enabled, only the active architecture is built. This setting will be ignored when building with a run destination which does not define a specific architecture, such as a ‘Generic Device’ run destination.
NO
- On Demand Resources Initial Install Tags
ON_DEMAND_RESOURCES_INITIAL_INSTALL_TAGS
Defined a set of initial On Demand Resources tags to be downloaded and installed with your application.
- On Demand Resources Prefetch Order
ON_DEMAND_RESOURCES_PREFETCH_ORDER
Once your app is installed, this defined a set of On Demand Resources tags that should be downloaded. These tags are downloaded after the initial installation of your application, and will be downloaded in the order the tags provided in the list from first to last.
- Order File
ORDER_FILE
The path to a file that alters the order in which functions and data are laid out.
For each section in the output file, any symbol in that section that are specified in the order file is moved to the start of its section and laid out in the same order as in the order file. Order files are text files with one symbol name per line. Lines starting with a
#
are comments. A symbol name may be optionally preceded with its object file leafname and a colon (for example,foo.o:_foo
). This is useful for static functions/data that occur in multiple files. A symbol name may also be optionally preceded with the architecture (for example,ppc:_foo
orppc:foo.o:_foo
). This enables you to have one order file that works for multiple architectures. Literal C-strings may be ordered by quoting the string in the order file (for example,"Hello, world\n"
).Generally you should not specify an order file in Debug or Development configurations, as this will make the linked binary less readable to the debugger. Use them only in Release or Deployment configurations.
- Other C Flags
OTHER_CFLAGS
Space-separated list of additional flags to pass to the compiler for C and Objective-C files. Be sure to backslash-escape any arguments that contain spaces or special characters, such as path names that may contain spaces. Use this setting if Xcode does not already provide UI for a particular C or Objective-C compiler flag.
- Other Code Signing Flags
OTHER_CODE_SIGN_FLAGS
A list of additional options to pass to
codesign(1)
. - Other C++ Flags
OTHER_CPLUSPLUSFLAGS
Space-separated list of additional flags to pass to the compiler for C++ and Objective-C++ files. Be sure to backslash-escape any arguments that contain spaces or special characters, such as path names that may contain spaces. Use this setting if Xcode does not already provide UI for a C++ or Objective-C++ compiler flag.
$(OTHER_CFLAGS)
- Other Linker Flags
OTHER_LDFLAGS
Options defined in this setting are passed to invocations of the linker.
- Other Librarian Flags
OTHER_LIBTOOLFLAGS
Options defined in this setting are passed to all invocations of the archive librarian, which is used to generate static libraries.
- Other Text-Based InstallAPI Flags
OTHER_TAPI_FLAGS
Options defined in this setting are passed to invocations of the
Text-Based InstallAPI
tool. - Path Prefixes Excluded From Header Dependencies
PATH_PREFIXES_EXCLUDED_FROM_HEADER_DEPENDENCIES
Type PathList Default Value/usr/include /usr/local/include /System/Library/Frameworks /System/Library/PrivateFrameworks $(SYSTEM_DEVELOPER_DIR)/Headers $(SYSTEM_DEVELOPER_DIR)/SDKs $(SYSTEM_DEVELOPER_DIR)/Platforms
- Property List Output Encoding
PLIST_FILE_OUTPUT_FORMAT
Specifies the output encoding for property list files (
.plist
). The output encodings can bebinary
orXML
. By default, the output encoding will be unchanged from the input.same-as-input
XML
binary
same-as-input
- Precompiled Header Uses Files From Build Directory
PRECOMPS_INCLUDE_HEADERS_FROM_BUILT_PRODUCTS_DIR
This setting allows for better control of sharing precompiled prefix header files between projects. By default, Xcode assumes that the prefix header file may include header files from the build directory if the build directory is outside of the project directory. Xcode cannot determine this ahead of time since other projects may not have been built into the shared build directory at the time the information is needed.
If your prefix file never includes files from the build directory you may set this to
NO
to improve sharing of precompiled headers. If the prefix does use files from a build directory that is inside your project directory, you may set this toYES
to avoid unintended sharing that may result in build failures.YES
- Precomp Destination Dir
PRECOMP_DESTINATION_DIR
Type Path Default Value$(TARGET_TEMP_DIR)/PrefixHeaders
- Single-Object Prelink Flags
PRELINK_FLAGS
Additional flags to pass when performing a single-object prelink.
- Prelink libraries
PRELINK_LIBS
Additional libraries to pass when performing a single-object prelink.
- Don't Dead-Strip Inits and Terms
PRESERVE_DEAD_CODE_INITS_AND_TERMS
Activating this setting, in combination with the Dead Code Stripping (DEAD_CODE_STRIPPING) (
-dead_strip
) option, causes the-no_dead_strip_inits_and_terms
flag to be passed told(1)
viacc(1)
to disable dead code stripping for initialization and termination routines. This option should not be used without the aforementioned Dead Code Stripping (DEAD_CODE_STRIPPING) option.NO
- Private Headers Folder Path
PRIVATE_HEADERS_FOLDER_PATH
The location to copy the private headers to during building, relative to the built products folder.
- Product Bundle Identifier
PRODUCT_BUNDLE_IDENTIFIER
A string that uniquely identifies the bundle. The string should be in reverse DNS format using only alphanumeric characters (
A-Z
,a-z
,0-9
), the dot (.
), and the hyphen (-
). This value is used as theCFBundleIdentifier
in theInfo.plist
of the built bundle. - Product Module Name
PRODUCT_MODULE_NAME
The name to use for the source code module constructed for this target, and which will be used to import the module in implementation source files. Must be a valid identifier.
$(PRODUCT_NAME:c99extidentifier)
- Product Name
PRODUCT_NAME
This is the basename of the product generated by the target.
- Profiling Code
PROFILING_CODE
Type Boolean Default ValueNO
- Project Derived File Dir
PROJECT_DERIVED_FILE_DIR
Type Path Default Value$(OBJROOT)/$(PROJECT_NAME).build/DerivedSources
- Project Dir
PROJECT_DIR
Type Path Default Value$(SRCROOT)
- Project Name
PROJECT_NAME
The name of the current project.
- Project Temp Dir
PROJECT_TEMP_DIR
Identifies the directory in which the project’s intermediate build files are placed. This directory is shared between all the targets defined by the project. Run Script build phases should generate intermediate build files in the directory identified by
DERIVED_FILE_DIR
, not the location this build setting specifies.$(PROJECT_TEMP_ROOT)/$(PROJECT_NAME).build
- Project Temp Root
PROJECT_TEMP_ROOT
Type Path Default Value$(OBJROOT)
- Provisioning Profile
PROVISIONING_PROFILE_SPECIFIER
Must contain a profile name (or UUID). A missing or invalid profile will cause a build error. Use in conjunction with Development Team (DEVELOPMENT_TEAM) to fully specify provisioning profile.
- Public Headers Folder Path
PUBLIC_HEADERS_FOLDER_PATH
The location to copy the public headers to during building, relative to the built products folder.
- Pwd
PWD
Type path - Reexported Framework Install Names
REEXPORTED_FRAMEWORK_INSTALL_NAMES
Type StringList - Re-Exported Framework Names
REEXPORTED_FRAMEWORK_NAMES
List of framework names that should have their symbols be reexported from the built library.
- Reexported Library Install Names
REEXPORTED_LIBRARY_INSTALL_NAMES
Type PathList - Re-Exported Library Names
REEXPORTED_LIBRARY_NAMES
List of library names that should have their symbols be reexported from the built library.
- Re-Exported Library Paths
REEXPORTED_LIBRARY_PATHS
List of library paths that should have their symbols be reexported from the built library.
- Remove Cvs From Resources
REMOVE_CVS_FROM_RESOURCES
Specifies whether to remove
CVS
directories from bundle resources when they are copied.YES
- Remove Git From Resources
REMOVE_GIT_FROM_RESOURCES
Specifies whether to remove
.git
directories from bundle resources when they are copied.YES
- Remove Headers From Embedded Bundles
REMOVE_HEADERS_FROM_EMBEDDED_BUNDLES
Type Boolean Default ValueYES
- Remove Hg From Resources
REMOVE_HG_FROM_RESOURCES
Specifies whether to remove
.hg
directories from bundle resources when they are copied.YES
- Remove Svn From Resources
REMOVE_SVN_FROM_RESOURCES
Specifies whether to remove
SVN
directories from bundle resources when they are copied.YES
- Resources Targeted Device Family
RESOURCES_TARGETED_DEVICE_FAMILY
Overrides Targeted Device Family (TARGETED_DEVICE_FAMILY) when the resource copying needs to differ from the default targeted device.
- Rez Executable
REZ_EXECUTABLE
Type String - Rez Search Paths
REZ_SEARCH_PATHS
This is a list of paths to search for files with resource manager resources. Paths are delimited by whitespace, so any paths with spaces in them need to be properly quoted.
- Scan All Source Files for Includes
SCAN_ALL_SOURCE_FILES_FOR_INCLUDES
Activating this setting will cause all source files to be scanned for includes (for example, of header files) when computing the dependency graph, in which case if an included file is changed then the including file will be rebuilt next time a target containing it is built. Normally only certain types of files, such as C-language source files, are scanned.
This setting is useful if your project contains files of unusual types, which are compiled using a custom build rule.
NO
- Base SDK
SDKROOT
The name or path of the base SDK being used during the build. The product will be built against the headers and libraries located inside the indicated SDK. This path will be prepended to all search paths, and will be passed through the environment to the compiler and linker. Additional SDKs can be specified in the Additional SDKs (ADDITIONAL_SDKS) setting.
- Symbol Ordering Flags
SECTORDER_FLAGS
These flags are typically used to specify options for ordering symbols within segments, for example the
-sectorder
option told
.Generally you should not specify symbol ordering options in Debug or Development configurations, as this will make the linked binary less readable to the debugger. Use them only in Release or Deployment configurations.
- Separate Strip
SEPARATE_STRIP
Type Boolean Default ValueNO
- Separately Edit Symbols
SEPARATE_SYMBOL_EDIT
Activating this setting when the linked product’s symbols are to be edited will cause editing to occur via a separate invocation of
nmedit(1)
. Otherwise editing will occur during linking, if possible.NO
- Shared Derived File Dir
SHARED_DERIVED_FILE_DIR
Type Path Default Value$(BUILT_PRODUCTS_DIR)/DerivedSources
- Precompiled Headers Cache Path
SHARED_PRECOMPS_DIR
The path where precompiled prefix header files are placed during a build. Defaults to
$(OBJROOT)/SharedPrecompiledHeaders
. Using a common location allows precompiled headers to be shared between multiple projects.$(OBJROOT)/SharedPrecompiledHeaders
- Shell
SHELL
Type path - Skip Install
SKIP_INSTALL
If enabled, don’t install built products even if deployment locations are active.
NO
- Source Root
SOURCE_ROOT
Type Path Default Value$(SRCROOT)
- Srcroot
SRCROOT
Identifies the directory containing the target’s source files.
.
- Strings File Output Encoding
STRINGS_FILE_OUTPUT_ENCODING
Specify the encoding to be used for Strings files (by default, the output encoding will be 16-bit Unicode). The value can be either an
NSStringEncoding
, such as one of the numeric values recognized byNSString
, or it can be an IANA character set name as understood byCFString
. The operation will fail if the file cannot be converted to the specified encoding.UTF-16
UTF-8
binary
UTF-16
- Additional Strip Flags
STRIPFLAGS
Additional flags to be passed when stripping the linked product of the build.
- Strip Bitcode From Copied Files
STRIP_BITCODE_FROM_COPIED_FILES
Type Boolean Default ValueNO
- Strip Linked Product
STRIP_INSTALLED_PRODUCT
If enabled, the linked product of the build will be stripped of symbols when performing deployment postprocessing.
- Strip Style
STRIP_STYLE
The level of symbol stripping to be performed on the linked product of the build. The default value is defined by the target’s product type.
all
non-global
debugging
all
- Strip Swift Symbols
STRIP_SWIFT_SYMBOLS
Adjust the level of symbol stripping specified by the STRIP_STYLE setting so that when the linked product of the build is stripped, all Swift symbols will be removed.
YES
- Supported Platforms
SUPPORTED_PLATFORMS
The list of supported platforms from which a base SDK can be used. This setting is used if the product can be built for multiple platforms using different SDKs.
- Supports Text-Based InstallAPI
SUPPORTS_TEXT_BASED_API
Enable to indicate that the target supports
Text-Based InstallAPI
, which will enable its generation duringinstall
builds.NO
- Swift Platform Target Prefix
SWIFT_PLATFORM_TARGET_PREFIX
Type String - Build Products Path
SYMROOT
The path at which all products will be placed when performing a build. Typically this path is not set per target, but is set per-project or per-user. By default, this is set to
$(PROJECT_DIR)/build
.build
- System Dext Install Path
SYSTEM_DEXT_INSTALL_PATH
Type string Default Value$(SYSTEM_LIBRARY_DIR)/DriverExtensions
- System Framework Search Paths
SYSTEM_FRAMEWORK_SEARCH_PATHS
This is a list of paths to folders containing system frameworks to be searched by the compiler for both included or imported header files when compiling C, Objective-C, C++, or Objective-C++, and by the linker for frameworks used by the product. The order is from highest to lowest precedence. Paths are delimited by whitespace, so any paths with spaces in them need to be properly quoted. This setting is very similar to “Framework Search Paths”, except that the search paths are passed to the compiler in a way that suppresses most warnings for headers found in system search paths. If the compiler doesn’t support the concept of system framework search paths, then the search paths are appended to any existing framework search paths defined in “Framework Search Paths”.
- System Header Search Paths
SYSTEM_HEADER_SEARCH_PATHS
This is a list of paths to folders to be searched by the compiler for included or imported system header files when compiling C, Objective-C, C++, or Objective-C++. The order is from highest to lowest precedence. Paths are delimited by whitespace, so any paths with spaces in them need to be properly quoted. This setting is very similar to “Header Search Paths”, except that headers are passed to the compiler in a way that suppresses most warnings for headers found in system search paths. If the compiler doesn’t support the concept of system header search paths, then the search paths are appended to any existing header search paths defined in “Header Search Paths”.
- System Kext Install Path
SYSTEM_KEXT_INSTALL_PATH
Type string Default Value$(SYSTEM_LIBRARY_DIR)/Extensions
- Text-Based InstallAPI Verification Mode
TAPI_VERIFY_MODE
Selects the level of warnings and errors to report when building
Text-Based InstallAPI
.ErrorsOnly
ErrorsAndWarnings
Pedantic
ErrorsOnly
- Target Build Dir
TARGET_BUILD_DIR
Identifies the root of the directory hierarchy that contains the product’s files (no intermediate build files). Run Script build phases that operate on product files of the target that defines them should use the value of this build setting, but Run Script build phases that operate on product files of other targets should use
BUILT_PRODUCTS_DIR
instead.$(CONFIGURATION_BUILD_DIR)$(TARGET_BUILD_SUBPATH)
- Target Build Subpath
TARGET_BUILD_SUBPATH
Type Path - Target Name
TARGET_NAME
The name of the current target.
- Target Temp Dir
TARGET_TEMP_DIR
Identifies the directory containing the target’s intermediate build files. Run Script build phases should place intermediate files at the location indicated by
DERIVED_FILE_DIR
, not the directory identified by this build setting.$(CONFIGURATION_TEMP_DIR)/$(TARGET_NAME).build
- Temp Dir
TEMP_DIR
Type Path Default Value$(TARGET_TEMP_DIR)
- Temp Files Dir
TEMP_FILES_DIR
Type Path Default Value$(TEMP_FILE_DIR)
- Temp File Dir
TEMP_FILE_DIR
Type Path Default Value$(TARGET_TEMP_DIR)
- Temp Root
TEMP_ROOT
Type Path Default Value$(OBJROOT)
- Test Host
TEST_HOST
Path to the executable into which a bundle of tests is injected. Only specify this setting if testing an application or other executable.
- Toolchains
TOOLCHAINS
Type StringList - Treat missing baselines as test failures
TREAT_MISSING_BASELINES_AS_TEST_FAILURES
When running tests that measure performance via
XCTestCase
, report missing baselines as test failures.NO
- Unexported Symbols File
UNEXPORTED_SYMBOLS_FILE
A project-relative path to a file that lists the symbols not to export. See
ld -exported_symbols_list
for details on exporting symbols. - User
USER
Type string - User Header Search Paths
USER_HEADER_SEARCH_PATHS
This is a list of paths to folders to be searched by the compiler for included or imported user header files (those headers listed in quotes) when compiling C, Objective-C, C++, or Objective-C++. Paths are delimited by whitespace, so any paths with spaces in them need to be properly quoted. See Always Search User Paths (Deprecated) (ALWAYS_SEARCH_USER_PATHS) for more details on how this setting is used. If the compiler doesn’t support the concept of user headers, then the search paths are prepended to the any existing header search paths defined in Header Search Paths (HEADER_SEARCH_PATHS).
- Use Header Maps
USE_HEADERMAP
Enable the use of Header Maps, which provide the compiler with a mapping from textual header names to their locations, bypassing the normal compiler header search path mechanisms. This allows source code to include headers from various locations in the file system without needing to update the header search path build settings.
YES
- Use Header Symlinks
USE_HEADER_SYMLINKS
Type Boolean Default ValueNO
- Use Llvm Target Triples
USE_LLVM_TARGET_TRIPLES
Type Boolean Default ValueYES
- Use Llvm Target Triples For Clang
USE_LLVM_TARGET_TRIPLES_FOR_CLANG
Type Boolean Default Value$(USE_LLVM_TARGET_TRIPLES)
- Use Llvm Target Triples For Ld
USE_LLVM_TARGET_TRIPLES_FOR_LD
Type Boolean Default Value$(USE_LLVM_TARGET_TRIPLES)
- Use Llvm Target Triples For Tapi
USE_LLVM_TARGET_TRIPLES_FOR_TAPI
Type Boolean Default Value$(USE_LLVM_TARGET_TRIPLES)
- Validate Workspace
VALIDATE_WORKSPACE
If enabled, perform validation checks on the workspace configuration as part of the build process.
YES
NO
YES_ERROR
NO
- Validate Workspace - Ignored Frameworks
VALIDATE_WORKSPACE_SKIPPED_SDK_FRAMEWORKS
List of framework names for which to suppress deprecation warnings and missing framework errors in the workspace validator.
- Valid Architectures
VALID_ARCHS
A space-separated list of architectures for which the target should actually be built. For each target, this is intersected with the list specified in Architectures (ARCHS), and the resulting set is built. This allows individual targets to opt out of building for particular architectures. If the resulting set of architectures is empty, no executable will be produced.
- Versioning System
VERSIONING_SYSTEM
Selects the process used for version-stamping generated files.
apple-generic
- Versions Folder Path
VERSIONS_FOLDER_PATH
Type string - Versioning Username
VERSION_INFO_BUILDER
This defines a reference to the user performing a build to be included in the generated Apple Generic Versioning stub. Defaults to the value of the
USER
environment variable.$(USER)
- Generated Versioning Variables
VERSION_INFO_EXPORT_DECL
This defines a prefix string for the version info symbol declaration in the generated Apple Generic Versioning stub. This can be used, for example, to add an optional
export
keyword to the version symbol declaration. This should rarely be changed. - Generated Versioning Source Filename
VERSION_INFO_FILE
Used to specify a name for the source file that will be generated by Apple Generic Versioning and compiled into your product. By default, this is set to
$(PRODUCT_NAME)_vers.c
.$(PRODUCT_NAME)_vers.c
- Versioning Name Prefix
VERSION_INFO_PREFIX
Used as a prefix for the name of the version info symbol in the generated versioning source file. If you prefix your exported symbols you will probably want to set this to the same prefix.
- Versioning Name Suffix
VERSION_INFO_SUFFIX
Used as a suffix for the name of the version info symbol in the generated versioning source file. This is rarely used.
- Warning Linker Flags
WARNING_LDFLAGS
These flags are passed with linker invocations, and by default give the
-no_arch_warnings
flag to the linker to avoid many warnings being generated during multi-architecture builds. - Wrapper Extension
WRAPPER_EXTENSION
The extension used for product wrappers, which has a default value based on the product type.
- Wrap Asset Packs In Separate Directories
WRAP_ASSET_PACKS_IN_SEPARATE_DIRECTORIES
Type Boolean Default ValueNO
- Xcode Developer Dir Path
XCODE_DEVELOPER_DIR_PATH
Type path
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK