andybee
andybee

Reputation: 1142

Using info.plist for storing target-specific values for a multi-target app

I have a multi-target iPhone app which currently includes a header file with constant definitions that are conditionally included at build time depending on which target is being built.

However, I was wondering if it might be better to instead include this information in the info.plist for the build, as this generally holds target-specific meta, so logically seems more appropriate.

Therefore, my questions are:

  1. Is it acceptable to include custom (non-Apple defined) keys in the info.plist file?
  2. Is this a suitable place to include meta for the app which differ between targets?

Upvotes: 18

Views: 7368

Answers (1)

pgb
pgb

Reputation: 25001

It is acceptable and suitable.

The Info.plist file is preprocessed (must be enabled in project settings by setting Packaging / Preprocess Info.plist File to Yes) by the C pre-processor, so you can have variables (in the form of ${VARIABLE_NAME}). These variables can be defined in the User Defined section in Xcode's target info, making it very easy to switch their value from one target to another.

Upvotes: 17

Related Questions