The Finder shows file names (sometimes without extensions), not bundle names; if you want the finder to show it as "My Application", you have to name the bundle folder "My Application.app". Spaces in the name shouldn't be a problem if you quote it properly:
pkgbuild --component "My Application.app" --version 1 --install-location /Applications component.pkg
If the qmake/make/macdeployqt tools can't cope with spaces in filenames, then either
- Fix the tools. Spaces in filenames aren't that hard to deal with, you just have to use proper shell quoting, like wrap all variable references in double-quotes.
- Or, create the app bundle without spaces, then rename it before packaging it for distribution.
EDIT: The purpose of the CFBundleDisplayName key is to allow language localization of the displayed application name. Essentially, if you set it equal to the actual folder name and then include localizations for it in the Contents/Resources/somelanguage.lproj/InfoPlist.strings files, it'll display that localized name instead of the real filename. BUT, if the user renames it (which is a completely reasonable thing to do), the Finder will see the mismatch between the CFBundleDisplayName and the actual name, ignore the localization, and display the user's chosen name. See the Apple docs on CFBundleDisplayName for their explanation.