BuildSettingExtractor icon

BuildSettingExtractor

The fastest way to extract Xcode build settings.

BuildSettingExtractor is a free, open-source utility that extracts build settings from an Xcode project into a set of xcconfig files.

When you’re moving Xcode build settings out of your project file and into xcconfig files, this handy utility makes that initial move a lot easier. It’s also an easy way for the curious to take a look at the build settings in a project without fear of accidentally changing them.

Download BuildSettingExtractor

It’s Free! Requires macOS 10.14 or later

Updated for Big Sur
Runs native on Apple Silicon

Easy

Just drag an Xcode project file to the window or right to the app icon itself.

Pick a destination and BuildSettingExtractor generates xcconfig files for each target in the project, plus the project itself.

Project file dragged to app window

Safe

Nobody wants a corrupted Xcode project file. That’s why BuildSettingExtractor doesn’t make any changes. It reads the project file and extracts the settings, but never edits the project file itself.

Informative

There are hundreds of build settings and it’s not always obvious what they mean. BuildSettingExtractor annotates each setting with an explanatory comment gleaned directly from Xcode. Information about each build setting is available wherever you are looking at the xcconfig file—in GitHub, text editors, diff tools. You don’t need a trip to a reference webpage or Xcode help.

Of course if you prefer, you can turn these comments off in the Preferences window for a much more pithy xcconfig file.

// 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 need // to be properly quoted. // [-F] FRAMEWORK_SEARCH_PATHS = $(DEVELOPER_FRAMEWORKS_DIR) $(inherited) // Info.plist File // // This is the project-relative path to the plist file that // contains the Info.plist information used by bundles. INFOPLIST_FILE = MyApp/MyApp-Info.plist

Flexible

Every developer has their own way of working. BuildSettingExtractor gives you a lot of options for how you want your xcconfig files generated.

Flexible File Layout

Customize the file names of the project and shared build setting files. Customize the word separator for camel case, kebab case, snake case, or whatever you’d like. Customize the name of the folder that will contain all the generated files. Customize how you want the files organized.

A handy preview displays an example of how files will be organized and named.

By default BuildSettingExtractor will open the generated folder in Finder so it’s easy to inspect the files you just generated.

You can even have BuildSettingExtractor automatically save the generated files right next to the source project file, where you would typically add a folder of xcconfig files.

File layout preferences pane of BuildSettingExtractor app

Flexible Contents

Have BuildSettingExtractor generate xcconfig files with rich, informative build setting comments. Or generate a concise file containing just the settings.

Adjust the lines between settings to give each setting more or less breathing room for readability. Have the generated files align the setting values.

The preference pane shows example output so you don’t have to figure out what you want by trial and error.

Contents preferences pane of BuildSettingExtractor app

Open

BuildSettingExtractor is a free, open-source utility. The project was created and is maintained by James Dempsey.

You can find the code as well as past releases in the project repository on GitHub.

Your feedback is welcome. Please report any issues or feature requests using the project issue tracker.