While we're here, the default generated plist could do with some improvement. For example, under qmake it never sets CFBundleIdentifier correctly (and there's no way to set it from the pro file) meaning you effectively always have to specify a plist yourself for any 'real' applications.
Currently qmake makes use of TARGET, QMAKE_PKGINFO_TYPEINFO and ICON to set CFBundleExecutable, CFBundleSignature and CFBundleIconFile respectively in the autogenerated plist, but there needs to be equivalent mechanisms for at a minimum CFBundleIdentifier and CFBundleName too.
I use a custom plist currently (and a hacked up build step) so I can preprocess to dynamically set the version properties CFBundleGetInfoString, CFBundleShortVersionString and CFBundleVersion. I guess I can use a custom hpp product under qbs to produce the Info.plist, but a way to set these from the .qbs would mean I could either do away with the preprocess stage or maybe get rid of my custom plist entirely. If I could add custom keys with JSON syntax that'd be even better (or maybe the same mechanism as for RC_FILE (
QBS-52) could be employed).