Dynamic configuration is a convenient way to adjust the properties of your executable without recompiling your code. Rather than relying on hardcoded information, your application implements slightly different behaviors based on external settings. There are several ways to record these settings, ranging from user preferences to property lists stored with your bundle.
Bundles use property lists extensively to store information about the bundle and its contents. macOS and iOS use the information in these property lists to determine an application properties such as its icon and whether to show the status bar (for iPhone applications).
You should read this document to learn about the properties you can use to configure application behavior and specify how macOS or iOS handle your application.
Organization of This Document
This document contains the following articles:
Information Property List Files provides an introduction to information property list files and how they are used by the system.
The Preferences System discusses the role and scope of user preferences and describes the use of the
defaultstool for accessing preferences.
Environment Variables discusses the role of environment variables in configuring applications. This section also covers some of the ways you can establish environment variables for a given user session or process.
Additional Configuration Tips lists the required and recommended configuration options for applications. This article also describes additional ways to configure both bundled and non-bundled applications.
For information about the keys and values you can include in an information property list file, see Information Property List Key Reference.
For additional information about the preferences system, see Preferences and Settings Programming Guide or Preferences Programming Topics for Core Foundation.