lazbuild now creates .app bundle and general uselessness of .app bundle it and IDE create
Original Reporter info from Mantis: Phil
-
Reporter name:
Original Reporter info from Mantis: Phil
- Reporter name:
Description:
Previously lazbuild did not create an .app bundle. Now it does - not sure if this is a good thing, but I suppose it is consistent with the IDE's creation of an .app bundle when the "Use Application Bundle for running..." box is checked.
Unchecking this box sort of solves my lazbuild problem (I never compile from IDE) but reveals other problems: No way to associate the project with a specific app bundle. It's typical to have the executable named one way (lower case, no spaces) and the app bundle named another way (mixed case, space if app's name is two words).
Examining the .app bundle's Info.plist reveals that it's rudimentary and pretty useless. It doesn't even use any of the useful version info to set keys in Info.plist!
Suggestion: Map some of the obvious things in the project's version info to keys in Info.plist (examples: version number to CFBundleShortVersionString, copyright to NSHumanReadableCopyright) and just add the others to the bottom of the file using the bundle identifier to avoid any name collisions. Example:
<key>com.mycompany.myapp.CompanyName</key>
<string>Company name goes here</string>
Now app can easily retrieve these things at runtime.
Some thought also needs to be put into the deriving of CFBundleIdentifier. Currently all projects named project1 get a CFBundleIdentifier of com.company.project1. That means they're all sharing the same com.company.project1.plist preferences file in ~/Library/Preferences.
IDE really needs to prompt for a proper bundle ID and app bundle name before saving a new project - as it is, it's using the project name for .lpi, .lpr, executable, .app bundle, bundle identifier, bundle name, probably other things as well. Probably not a great idea.
Mantis conversion info:
- Mantis ID: 17855
- OS: OS X
- OS Build: 10.6
- Build: 28107
- Platform: Mac
- Version: 0.9.29 (SVN)
- Monitored by: » cringer0 (Scott)