xcode info.plist build variable ${PRODUCT_NAME:rfc1034identifier} seems completely undocumented?

By using strings I also dug out the following things that look like they’re related to :rfc1034identifier:

  • :quote – adds backslashes before whitespaces (and more), for use in shell scripts
  • :identifier – replaces whitespace, slashes (and more) with underscores
  • :rfc1034identifier – replaces whitespace, slashes (and more) with dashes
  • :dir – don’t know, observed replace with ./ in some cases
  • :abs – don’t know

Exact command:

strings /Developer/Library/PrivateFrameworks/DevToolsCore.framework/Versions/A/DevToolsCore|grep '^:'

There are more things that look like interesting modifiers (for example, :char-range=%@), but I couldn’t get these to work. There’s only one example of :char-range on the net, and it’s from a crash log for Xcode.

Someone asked how do we know it’s a modifier specification. Well, we know because it works on multiple variables in build settings. Plist preprocessor probably uses the same mechanisms to resolve build variables as does the build system.

Hack Saw, if you get a response via that bug report, don’t forget to keep us informed 🙂

Leave a Comment