screenBloom icon indicating copy to clipboard operation
screenBloom copied to clipboard

Wrong version, executable, and bundle identifier in Mac app Info.plist

Open ryandesign opened this issue 2 years ago • 0 comments

When I download the Mac version of screenBloom 2.2 and Get Info on it in the Finder, it says its version is "0.0.0". This is because in the Info.plist file (inside the Contents folder inside the application bundle) it says:

<key>CFBundleShortVersionString</key>
<string>0.0.0</string>

I'm not sure how this Info.plist was generated (I don't see it in this repository) so I don't know how to fix your build process to ensure that the next version gets a correct CFBundleShortVersionString.

While I was looking at the Info.plist I also saw:

<key>CFBundleExecutable</key>
<string>MacOS/screenBloom</string>

which is wrong because CFBundleExecutable should be the path to the executable relative to the MacOS directory. In other words, remove the MacOS/ prefix from this plist key. (Given this mistake, I'm surprised the app launches at all...)

I also saw this:

<dict><key>CFBundleIdentifier</key>
<string>screenBloom</string>

which is not a valid bundle identifier. A bundle identifier is a unique string identifying your application constructed in reverse-DNS format. For example, since the app name is "screenBloom" and since you use the domain name screenbloom.com, a good value might be com.screenbloom.screenBloom.

I also see:

<key>LSBackgroundOnly</key>
<string>1</string>

which is wrong because LSBackgroundOnly is documented to be a Boolean, not a string, so it should be:

<key>LSBackgroundOnly</key>
<true/>

This is a less serious problem because many other apps make this same mistake. Also, since your app icon is still appearing in the Dock, obviously the system is not getting the message that you want this to be a background-only app, so something else must be wrong too.

ryandesign avatar Dec 07 '21 03:12 ryandesign