116

Xcode Build Settings

 2 years ago
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.

    Type string
  • 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.

    Type StringList
  • Alternate Install Group ALTERNATE_GROUP

    The group name or gid for the files listed under the Alternate Permissions Files (ALTERNATE_PERMISSIONS_FILES) setting.

    Type String Default Value $(INSTALL_GROUP)
  • Alternate Install Permissions ALTERNATE_MODE

    Permissions used for the files listed under the Alternate Permissions Files (ALTERNATE_PERMISSIONS_FILES) setting.

    Type String Default Value $(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.

    Type String Default Value $(INSTALL_OWNER)
  • Alternate Permissions Files ALTERNATE_PERMISSIONS_FILES

    List of files to which the alternate owner, group and permissions are applied.

    Type StringList
  • 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 own String.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.

    Type Boolean Default Value 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.

    Type bool Default Value 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.

    Type Boolean Default Value 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 passed SCRIPT_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.

    Type Boolean Default Value 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.

    Type StringList Default Value $(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 the AssetPackManifest.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 the AssetPackManifest.plist file — it does not affect where asset packs are built in the local file system.

    Type String
  • Bitcode Generation Mode BITCODE_GENERATION_MODE
    Type Enumeration Values
    • marker
    • bitcode
    Default Value marker
  • Build Active Resources Only BUILD_ACTIVE_RESOURCES_ONLY
    Type Boolean Default Value NO
  • Active Build Components BUILD_COMPONENTS

    A list of components being built during this action.

    Type stringlist
  • 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.

    Type Boolean Default Value 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 include debug and profile.

    Type StringList Default Value 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 to YES.

    Type Path Default Value $(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 Values
    • deep
    • shallow
    Default Value 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.

    Type String
  • 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 Value NO
  • Code Signing Allowed CODE_SIGNING_ALLOWED
    Type bool Default Value NO
  • Code Signing Entitlements CODE_SIGN_ENTITLEMENTS

    The path to a file specifying code-signing entitlements.

    Type String
  • 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.

    Type CodeSignIdentity
  • 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.

    Type Boolean Default Value YES
  • Code Sign Local Execution Identity CODE_SIGN_LOCAL_EXECUTION_IDENTITY
    Type Enumeration Values
    • Ad 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. Choose Manual to create and update these yourself on the developer website.

    Type CodeSignStyle Values
    • Automatic
    • Manual
  • Color Diagnostics COLOR_DIAGNOSTICS
    Type bool Default Value NO
  • Enable Index-While-Building Functionality COMPILER_INDEX_STORE_ENABLE

    Control whether the compiler should emit index data while building.

    Type Enumeration Values
    • Default
    • YES
    • NO
    Default Value Default
  • Configuration CONFIGURATION

    Identifies the build configuration, such as Debug or Release, that the target uses to generate the product.

    Type String
  • 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).

    Type Path Default Value $(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).

    Type Path Default Value $(PROJECT_TEMP_DIR)
  • Preserve HFS Data COPYING_PRESERVES_HFS_DATA

    Causes the copying of resources to preserve resource forks and Finder info.

    Type Boolean Default Value 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.

    Type Boolean Default Value 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.

    Type StringList
  • 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.

    Type Boolean Default Value 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.

    Type Boolean Default Value 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 or 365.8.

    Type String
  • Current Version CURRENT_VERSION
    Type string
  • Dead Code Stripping DEAD_CODE_STRIPPING

    Activating this setting causes the -dead_strip flag to be passed to ld(1) via cc(1) to turn on dead code stripping.

    Type Boolean Default Value NO
  • Debugging Symbols DEBUGGING_SYMBOLS
    Type Boolean Default Value YES
  • Debug Information Format DEBUG_INFORMATION_FORMAT

    The type of debug information to produce.

    Type Enumeration Values
    • dwarf
    • dwarf-with-dsym
    Default Value 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.

    Type Boolean Default Value NO
  • Deployment Location DEPLOYMENT_LOCATION

    If enabled, built products are placed in their installed locations in addition to the built products folder.

    Type Boolean Default Value 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.

    Type Boolean Default Value 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.

    Type StringList
  • Development Team DEVELOPMENT_TEAM

    The team ID of a development team to use for signing certificates and provisioning profiles.

    Type DevelopmentTeam
  • 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.

    Type Boolean Default Value NO
  • Do Header Scanning In Jam DO_HEADER_SCANNING_IN_JAM
    Type Boolean Default Value NO
  • 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.

    Type Path Default Value /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 Value NO
  • 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.

    Type String
  • 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 or 365.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.

    Type String
  • 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.

    Type String
  • 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.

    Type Boolean Default Value 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.

    Type Boolean Default Value NO
  • Enable Default Header Search Paths ENABLE_DEFAULT_HEADER_SEARCH_PATHS
    Type bool Default Value YES
  • Enable Hardened Runtime ENABLE_HARDENED_RUNTIME

    Enable hardened runtime restrictions.

    Type Boolean Default Value NO
  • Enable Header Dependencies ENABLE_HEADER_DEPENDENCIES

    Specifies whether to automatically track dependencies on included header files.

    Type Boolean Default Value 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.

    Type Boolean Default Value NO
  • Enable Previews ENABLE_PREVIEWS

    If enabled, the product will be built with options appropriate for supporting previews.

    Type Boolean
  • 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.

    Type Boolean Default Value 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.

    Type Boolean Default Value NO
  • Entitlements Destination ENTITLEMENTS_DESTINATION
    Type Enumeration Values
    • Signature
    • __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.

    Type StringList Default Value *.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.

    Type StringList
  • 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.

    Type String
  • 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.

    Type String
  • 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.

    Type String
  • 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.

    Type PathList
  • 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.

    Type String Default Value 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.

    Type CompilerVersion
  • 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.

    Type Boolean Default Value 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.

    Type Boolean Default Value 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).

    Type Boolean Default Value NO
  • Enable Text-Based Stubs Generation GENERATE_TEXT_BASED_STUBS

    Enables the generation of Text-Based stubs for dynamic libraries and frameworks.

    Type bool Default Value 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.

    Type Boolean Default Value 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.

    Type Boolean Default Value 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.

    Type Boolean Default Value YES
  • Headermap Uses Framework Prefix Entries HEADERMAP_USES_FRAMEWORK_PREFIX_ENTRIES
    Type Boolean Default Value YES
  • 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.

    Type PathList
  • Hide Bitcode Symbols HIDE_BITCODE_SYMBOLS
    Type Boolean Default Value YES
  • 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).

    Type StringList
  • 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.

    Type StringList
  • Expand Build Settings in Info.plist File INFOPLIST_EXPAND_BUILD_SETTINGS

    Expand build settings in the Info.plist file.

    Type Boolean Default Value 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.

    Type Path
  • Info.plist Other Preprocessor Flags INFOPLIST_OTHER_PREPROCESSOR_FLAGS

    Other flags to pass to the C preprocessor when preprocessing the Info.plist file.

    Type StringList
  • Info.plist Output Encoding INFOPLIST_OUTPUT_FORMAT

    Specifies the output encoding for the output Info.plist. The output encodings can be binary or XML. By default, the output encoding will be unchanged from the input.

    Type Enumeration Values
    • same-as-input
    • XML
    • binary
    Default Value 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.

    Type String
  • Preprocess Info.plist File INFOPLIST_PREPROCESS

    Preprocess the Info.plist file using the C Preprocessor.

    Type Boolean Default Value NO
  • Info.plist Preprocessor Definitions INFOPLIST_PREPROCESSOR_DEFINITIONS

    Space-separated list of preprocessor macros of the form foo or foo=bar. These macros are used when preprocessing the Info.plist file.

    Type StringList
  • Initialization Routine INIT_ROUTINE

    This is the name of the routine to use for initialization.

    Type String
  • Enable Text-Based Stubs Inlining INLINE_PRIVATE_FRAMEWORKS

    Enables private framework inlining for Text-Based Stubs.

    Type bool Default Value NO
  • Perform Copy Files Phases During `installhdrs` INSTALLHDRS_COPY_PHASE

    Specifies whether the target’s Copy Files build phases are executed in installhdr builds.

    Type Boolean Default Value 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 on installhdr builds.

    Type Boolean Default Value NO
  • Install Dir INSTALL_DIR

    Identifies the directory in the developer’s filesystem into which the installed product is placed.

    Type Path Default Value $(DSTROOT)$(INSTALL_PATH)
  • Install Group INSTALL_GROUP

    The group name or gid for installed products.

    Type String Default Value $(GROUP)
  • Install Permissions INSTALL_MODE_FLAG

    Permissions used for installed product files.

    Type String Default Value u+w,go-w,a+rX
  • Install Owner INSTALL_OWNER

    The owner name or uid for installed products.

    Type String Default Value $(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).

    Type String
  • 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 Value YES
  • Java Archive Type JAVA_ARCHIVE_TYPE
    Type String Default Value JAR
  • 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 Value Resources
  • Java Jar Flags JAVA_JAR_FLAGS
    Type StringList Default Value cv
  • Java Source Subdir JAVA_SOURCE_SUBDIR
    Type Path Default Value .
  • Java Use Dependencies JAVA_USE_DEPENDENCIES
    Type Boolean Default Value YES
  • 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.

    Type Boolean Default Value 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.

    Type Path Default Value $(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.

    Type StringList
  • 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 way dyld 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.

    Type Path
  • 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.

    Type Boolean Default Value 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.

    Type Path Default Value $(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.

    Type bool Default Value 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 the LD setting to the path to another linker) and that alternate linker does not recognize -Xlinker.

    Type Boolean Default Value 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 the runpath when searching for dylibs whose load path begins with @rpath/. See Dynamic Library Programming Topics.

    Type StringList
  • 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 Value YES
  • 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.

    Type PathList
  • 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.

    Type Boolean Default Value 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).

    Type Boolean Default Value 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 Value apple
  • 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.

    Type StringList Default Value 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.

    Type Boolean Default Value 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.

    Type Enumeration Values
    • 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.

    Type String
  • Metal Library File Base METAL_LIBRARY_FILE_BASE
    Type string Default Value default
  • 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.

    Type String
  • 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.

    Type String
  • Module Cache Dir MODULE_CACHE_DIR

    Absolute path of folder in which compiler stores its cached modules—this cache is a performance improvement.

    Type Path Default Value $(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.

    Type String
  • Module Start Routine MODULE_START

    This defines the name of the kernel module start routine. This is only used when building kernel extensions.

    Type String
  • Module Stop Routine MODULE_STOP

    This defines the name of the kernel module stop routine. This is only used when building kernel extensions.

    Type String
  • 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.

    Type String
  • Native Arch NATIVE_ARCH

    Identifies the architecture on which the build is being performed.

    Type String
  • 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.

    Type Path Default Value $(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.

    Type Boolean Default Value 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.

    Type StringList
  • 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.

    Type StringList
  • 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 or ppc: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.

    Type String
  • 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.

    Type StringList
  • Other Code Signing Flags OTHER_CODE_SIGN_FLAGS

    A list of additional options to pass to codesign(1).

    Type StringList
  • 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.

    Type StringList Default Value $(OTHER_CFLAGS)
  • Other Linker Flags OTHER_LDFLAGS

    Options defined in this setting are passed to invocations of the linker.

    Type StringList
  • 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.

    Type StringList
  • Other Text-Based InstallAPI Flags OTHER_TAPI_FLAGS

    Options defined in this setting are passed to invocations of the Text-Based InstallAPI tool.

    Type StringList
  • 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 be binary or XML. By default, the output encoding will be unchanged from the input.

    Type Enumeration Values
    • same-as-input
    • XML
    • binary
    Default Value 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 to YES to avoid unintended sharing that may result in build failures.

    Type Boolean Default Value 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.

    Type StringList
  • Prelink libraries PRELINK_LIBS

    Additional libraries to pass when performing a single-object prelink.

    Type StringList
  • 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 to ld(1) via cc(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.

    Type Boolean Default Value 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.

    Type Path
  • 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 the CFBundleIdentifier in the Info.plist of the built bundle.

    Type String
  • 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.

    Type String Default Value $(PRODUCT_NAME:c99extidentifier)
  • Product Name PRODUCT_NAME

    This is the basename of the product generated by the target.

    Type String
  • Profiling Code PROFILING_CODE
    Type Boolean Default Value NO
  • 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.

    Type string
  • 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.

    Type Path Default Value $(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.

    Type ProvisioningProfileSpecifier
  • Public Headers Folder Path PUBLIC_HEADERS_FOLDER_PATH

    The location to copy the public headers to during building, relative to the built products folder.

    Type Path
  • 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.

    Type StringList
  • 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.

    Type StringList
  • Re-Exported Library Paths REEXPORTED_LIBRARY_PATHS

    List of library paths that should have their symbols be reexported from the built library.

    Type PathList
  • Remove Cvs From Resources REMOVE_CVS_FROM_RESOURCES

    Specifies whether to remove CVS directories from bundle resources when they are copied.

    Type Boolean Default Value YES
  • Remove Git From Resources REMOVE_GIT_FROM_RESOURCES

    Specifies whether to remove .git directories from bundle resources when they are copied.

    Type Boolean Default Value YES
  • Remove Headers From Embedded Bundles REMOVE_HEADERS_FROM_EMBEDDED_BUNDLES
    Type Boolean Default Value YES
  • Remove Hg From Resources REMOVE_HG_FROM_RESOURCES

    Specifies whether to remove .hg directories from bundle resources when they are copied.

    Type Boolean Default Value YES
  • Remove Svn From Resources REMOVE_SVN_FROM_RESOURCES

    Specifies whether to remove SVN directories from bundle resources when they are copied.

    Type Boolean Default Value 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.

    Type StringList
  • 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.

    Type PathList
  • 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.

    Type Boolean Default Value 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.

    Type Path
  • Symbol Ordering Flags SECTORDER_FLAGS

    These flags are typically used to specify options for ordering symbols within segments, for example the -sectorder option to ld.

    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.

    Type StringList
  • Separate Strip SEPARATE_STRIP
    Type Boolean Default Value NO
  • 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.

    Type Boolean Default Value 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.

    Type Path Default Value $(OBJROOT)/SharedPrecompiledHeaders
  • Shell SHELL
    Type path
  • Skip Install SKIP_INSTALL

    If enabled, don’t install built products even if deployment locations are active.

    Type Boolean Default Value NO
  • Source Root SOURCE_ROOT
    Type Path Default Value $(SRCROOT)
  • Srcroot SRCROOT

    Identifies the directory containing the target’s source files.

    Type Path Default Value .
  • 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 by NSString, or it can be an IANA character set name as understood by CFString. The operation will fail if the file cannot be converted to the specified encoding.

    Type Enumeration Values
    • UTF-16
    • UTF-8
    • binary
    Default Value UTF-16
  • Additional Strip Flags STRIPFLAGS

    Additional flags to be passed when stripping the linked product of the build.

    Type StringList
  • Strip Bitcode From Copied Files STRIP_BITCODE_FROM_COPIED_FILES
    Type Boolean Default Value NO
  • Strip Linked Product STRIP_INSTALLED_PRODUCT

    If enabled, the linked product of the build will be stripped of symbols when performing deployment postprocessing.

    Type Boolean
  • 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.

    Type Enumeration Values
    • all
    • non-global
    • debugging
    Default Value 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.

    Type Boolean Default Value 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.

    Type stringlist
  • Supports Text-Based InstallAPI SUPPORTS_TEXT_BASED_API

    Enable to indicate that the target supports Text-Based InstallAPI, which will enable its generation during install builds.

    Type Boolean Default Value 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.

    Type Path Default Value 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”.

    Type PathList
  • 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”.

    Type PathList
  • 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.

    Type Enumeration Values
    • ErrorsOnly
    • ErrorsAndWarnings
    • Pedantic
    Default Value 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.

    Type Path Default Value $(CONFIGURATION_BUILD_DIR)$(TARGET_BUILD_SUBPATH)
  • Target Build Subpath TARGET_BUILD_SUBPATH
    Type Path
  • Target Name TARGET_NAME

    The name of the current target.

    Type string
  • 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.

    Type Path Default Value $(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.

    Type String
  • 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.

    Type Boolean Default Value 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.

    Type String
  • 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).

    Type PathList
  • 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.

    Type Boolean Default Value YES
  • Use Header Symlinks USE_HEADER_SYMLINKS
    Type Boolean Default Value NO
  • Use Llvm Target Triples USE_LLVM_TARGET_TRIPLES
    Type Boolean Default Value YES
  • 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.

    Type Enumeration Values
    • YES
    • NO
    • YES_ERROR
    Default Value 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.

    Type StringList
  • 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.

    Type StringList
  • Versioning System VERSIONING_SYSTEM

    Selects the process used for version-stamping generated files.

    Type Enumeration Values
    • 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.

    Type String Default Value $(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.

    Type String
  • 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.

    Type String Default Value $(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.

    Type String
  • 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.

    Type String
  • 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.

    Type StringList
  • Wrapper Extension WRAPPER_EXTENSION

    The extension used for product wrappers, which has a default value based on the product type.

    Type String
  • Wrap Asset Packs In Separate Directories WRAP_ASSET_PACKS_IN_SEPARATE_DIRECTORIES
    Type Boolean Default Value NO
  • Xcode Developer Dir Path XCODE_DEVELOPER_DIR_PATH
    Type path
Back to top

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK