PostgresApp icon indicating copy to clipboard operation
PostgresApp copied to clipboard

"Jakob Egger" macos Allow in the Background

Open TianaMc opened this issue 3 years ago • 10 comments

When downloaded from the site, this app gives permission for an item titled Jakob Egger to run in the background. Turned it off immediately. I didn't realize this is the name of the creator at first. I'm still cautious about turning it on. Probably a good idea to change this.

TianaMc avatar Aug 11 '22 20:08 TianaMc

Can you add more details? Is this a new security prompt in macOS Ventura?

If it shows my name somewhere, that's probably because I signed the app with my personal developer account.

jakob avatar Aug 11 '22 21:08 jakob

This was likely on Ventura beta? I also noticed that and have it on my list for discussion how we can improve this display for the next maintainer meeting. Thanks for reporting, anyhow!

tbussmann avatar Aug 11 '22 21:08 tbussmann

This is very much a new security warning in Ventura. See here for more info. The popup will only give the publisher’s name, not the name of the app or any other context as to what it is talking about. If you deny this permission, then Postgres.app won’t be able to start your server and you’ll never know it (it only prompts once, and I don’t know if it is possible for me to override a denial later in Settings).

This is a very bad UI choice by Apple. The advice given in that article I linked was to file radars and ask for it to be changed, but we all know there’s bugger-all chance of Apple actually doing anything no matter how much we complain. 😭

wjk avatar Aug 12 '22 00:08 wjk

Yes! I almost forgot that I'm using the beta Ventura. - Thanks for clarifying

TianaMc avatar Aug 12 '22 01:08 TianaMc

I'm also on the Ventura beta, and got this popup today and panicked not recognising the name.

image

ahaverty avatar Aug 14 '22 21:08 ahaverty

Please use feedback assistant to tell Apple about this problem! I really don't see a way to fix this aside from creating a pointless "Postgres App GmbH" which would cost thousands of Euros a year in legal fees.

jakob avatar Aug 15 '22 06:08 jakob

@tbussmann found some docs about this feature (https://developer.apple.com/documentation/servicemanagement/updating_helper_executables_from_earlier_versions_of_macos/). It seems that adding a AssociatedBundleIdentifiers entry to the launch Agent file should fix it. We made a test build, and unfortunately that doesn't work. It now at least shows the Postgres.app icon in System Preferences, but it still says "Jakob Egger" instead of the app name. As far as I can tell, this is a bug in macOS. We're now trying different approaches, but ultimately Apple needs to fix this dialog.

We think that the warning itself is a good thing: users should see what's running on their computers. But it needs to be accurate and useful information. If the dialog doesn't show the app name, it is useless.

@TianaMc and @ahaverty: Since you are running the Ventura Beta, please use Feedback Assistant to report this issue to Apple. Apple doesn't always listen to feedback, but sometimes they do, especially if they get the feedback multiple times.

jakob avatar Aug 25 '22 12:08 jakob

I've tested with macOS 13 Beta 7. The behaviour is unchanged, Apple still shows the developer name instead of the app name, despite what the documentation says.

However, I've found that when registering a login item using the new APIs in macOS 13, then it does show the app name.

I've created a test release of Postgres.app (only with PG 15 Beta) with these changes here: https://github.com/PostgresApp/PostgresApp/releases/tag/v2.5.10d

Unfortunately, Apple has dropped support for macOS 10.12, so in order to fix this issue, I've had to raise the minimum supported macOS version to 10.13

jakob avatar Sep 15 '22 08:09 jakob

I've tried what happens when updating from macOS 12 to 13 (tested with Postgres.app 2.5.1):

  • macOS does not show a warning for the existing launch agent
  • the launch agent shows up as "Jakob Egger" with no icon in System Setting
  • when installing the test build Postgres.app 2.5.10d, the warning is shown (using the correct name). When opening System Settings, the item titled "Jakob Egger" disappears and is replaced by an item titled "Postgres" with the correct icon

jakob avatar Sep 15 '22 16:09 jakob

I've just released Postgres.app 2.5.10 which hopefully fixes the issue on macOS Ventura. The alert now shows the app name and hopefully won't scare people as much anymore.

The only problem is that the warning is shown as soon as users open the app for the first time, which could still rub some users the wrong way. Maybe there's a better way to do that, I've started a new issue to track this in #681

jakob avatar Sep 22 '22 07:09 jakob

Jacob, as a fellow developer, I wonder if you could tell us what you did to achieve showing the app name? Is it based on @tbussmann's link (Hallo Tobias!)? What was the trick to make it work, while your first attempt didn't work?

tempelmann avatar Nov 12 '22 11:11 tempelmann

@tempelmann I could not get it to work with launch agents. Unfortunately macOS Ventura does not behave as documented and Apple doesn't care.

The only way that I managed to get it to work is by using a login item instead of a launch agent. On macOS Ventura, Postgres.app just calls SMAppService.loginItem(identifier:).register() on launch. That works and shows the correct icon.

We had to drop 10.12 support for that, though.

jakob avatar Nov 12 '22 19:11 jakob

Why don't you keep the old method in the code as well, with an #if #else wrap so that one could still build for 10.12 by providing the preprocessor symbol.

tempelmann avatar Nov 13 '22 11:11 tempelmann

Why don't you keep the old method in the code as well, with an #if #else wrap so that one could still build for 10.12 by providing the preprocessor symbol.

The old code is still there. The new code runs only on macOS 13 and later. We had to drop 10.12 support because the macOS 13 SDK no longer supports it, and we don't care enough about 10.12 support to make multiple builds of Postgres.app.

jakob avatar Nov 13 '22 13:11 jakob