Xcode Build System & xcconfig Guide

Xcode Build Settings & Deployment Target Lookup

Quickly look up essential Xcode build settings, understand default behaviors, inspect recommended production values, and copy .xcconfig configuration lines.

IPHONEOS_DEPLOYMENT_TARGET(iOS Deployment Target)
Deployment

The minimum operating system version that the app can run on. Setting to 17.0 allows SwiftData and modern SwiftUI animations.

Default Value: 17.0
Recommended: 16.0 or 17.0
IPHONEOS_DEPLOYMENT_TARGET = 16.0 or 17.0
SWIFT_VERSION(Swift Language Version)
Swift

Specifies which version of the Swift language compiler is utilized to build Swift code in your targets.

Default Value: 5.0
Recommended: 6.0 (Xcode 16) or 5.9
SWIFT_VERSION = 6.0 (Xcode 16) or 5.9
ENABLE_USER_SCRIPT_SANDBOXING(User Script Sandboxing)
Packaging

Enforces App Sandbox restrictions on Run Script phases to prevent scripts from modifying files outside of declared output dependencies.

Default Value: YES
Recommended: YES (NO only if legacy CocoaPods fail)
ENABLE_USER_SCRIPT_SANDBOXING = YES (NO only if legacy CocoaPods fail)
CODE_SIGN_STYLE(Code Signing Style)
Signing

Whether Xcode manages provisioning profiles and signing certificates automatically via Apple Developer Account.

Default Value: Automatic
Recommended: Automatic
CODE_SIGN_STYLE = Automatic
GENERATE_INFOPLIST_FILE(Generate Info.plist File)
Packaging

When enabled, Xcode dynamically synthesizes the Info.plist at build time from build settings and project properties.

Default Value: YES
Recommended: YES
GENERATE_INFOPLIST_FILE = YES
DEAD_CODE_STRIPPING(Dead Code Stripping)
Linking

Removes unreferenced functions, classes, and global symbols from the compiled binary, reducing app download size.

Default Value: YES
Recommended: YES (Release)
DEAD_CODE_STRIPPING = YES (Release)
ASSETCATALOG_COMPILER_APPICON_NAME(Primary App Icon Name)
Packaging

The name of the asset catalog image set that contains the application icon for iPhone and iPad.

Default Value: AppIcon
Recommended: AppIcon
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon
ENABLE_BITCODE(Enable Bitcode (Deprecated))
Deployment

Deprecated by Apple. App Store submissions no longer accept or process Bitcode. Should remain NO.

Default Value: NO
Recommended: NO (Deprecated in Xcode 14)
ENABLE_BITCODE = NO (Deprecated in Xcode 14)
SWIFT_STRICT_CONCURRENCY(Strict Concurrency Checking)
Swift

Controls the level of data-race safety checking enforced by the compiler for async/await, actors, and Sendable types.

Default Value: minimal
Recommended: complete (Swift 6 migration)
SWIFT_STRICT_CONCURRENCY = complete (Swift 6 migration)

Why use .xcconfig files instead of project file settings?

Zero Git Merge Conflicts

The binary project.pbxproj file frequently causes disastrous git merge conflicts when multiple developers change build settings. Plain-text xcconfig files resolve cleanly.

Shared Configurations

Share identical compiler flags, warnings, and Swift strict concurrency configurations across multiple targets and extensions with #include "Base.xcconfig".

CI/CD Automation

Easily swap staging vs production bundle IDs and provisioning profiles during Xcode Cloud or GitHub Actions pipeline runs without scripting Xcode project models.

Thorous icon

Build full iPhone apps without touching Xcode

Enjoying this free Xcode Build Settings Lookup? Thorous turns your natural language prompts into compiled native SwiftUI apps, with real-time iOS simulator streaming and visual on-screen editing.

Native Mac app · macOS 14 Sonoma or later · Apple silicon & Intel