You cant open the application because it is not supported on this type of Mac

I have an application which is designed to launch only with root user. It has permission 0555 for all the users. Owner is root and group is wheel. Also, the app is signed and notarized properly. We install this app on user machine using pkg installer. I dont see any gatekeeper issues or quarantine flag. Apps works fine as intened but still we get app error as "You cant open the application because it is not supported on this type of Mac".

The same app stops displaying that error in the following scenarios:

  1. App is copied and pasted. In this case the app owner is changed to user context.
  2. App permission are changed

Please suggest.

Answered by PremsApp in 705878022

It was permission related issue on the app.

I have an application which is designed to launch only with root user.

Really? Can you expand on that? Specifically:

  • By “application” do you mean a GUI app that the user launches by double clicking an icon in the Finder?

  • If so, how is the root user doing that? Do you require the user to enable the root account on their machine [1]?

Share and Enjoy

Quinn “The Eskimo!” @ Developer Technical Support @ Apple
let myEmail = "eskimo" + "1" + "@" + "apple.com"

[1] Via the process described in How to enable the root user on your Mac.

Thanks for reply.

No, its not GUI app but its and kind of System Extension bundled as application. It does not display UI. This app is loaded as a launch deamon using a plist. The app is launched in root context.

This app is loaded as a launch deamon using a plist.

In that case this is a launchd daemon rather than an “app”.

Coming back to your original email, you wrote:

Apps works fine as intened but still we get app error as "You cant open the application because it is not supported on this type of Mac".

How do you trigger that message?

A launchd daemon runs in a global context and thus has no access to the UI, so you’ll never get this message out of launchd. You must be doing something else to trigger it. What is that?

Share and Enjoy

Quinn “The Eskimo!” @ Developer Technical Support @ Apple
let myEmail = "eskimo" + "1" + "@" + "apple.com"

Yes, I get this message when I try to launch the app through finder double click. My main concern is that Finder shows this app as unsupported i.e. the logo of the app comes with blocked mark on it.

So, lemme see if I’ve got this straight:

  1. You have a launchd daemon.

  2. You’ve placed it in an app-like wrapper for some reason.

  3. Your daemon is normally launched by launchd via a property list installed in /Library/LaunchDaemons.

  4. However, it’s possible for the user to navigate to the directory containing your daemon’s app-like wrapper and then double click it in the Finder.

  5. When the user does so, the user experience is sub-optimal.

Is that right?

If so, let’s start with step 2: Why is your daemon in an app-like wrapper? Is it because it uses a restricted entitlement and hence needs a provisioning profile (as discussed in Signing a Daemon with a Restricted Entitlement).

Share and Enjoy

Quinn “The Eskimo!” @ Developer Technical Support @ Apple
let myEmail = "eskimo" + "1" + "@" + "apple.com"

Yes, the daemon uses restricted entitlement and hence needs a provisioning profile.

My issue is on step 4: User can navigate to the directory which contains daemon app. Here, in finder,

  1. App logo is shown with blocked symbol on it which basically means unsupported.
  2. When the user tries to launch it then it throws error as app unsupported.

My issue is on step 4

There are two ways you might tackle this:

  • Put the daemon in a location where the user isn’t likely to stumble across it. Many products like yours install their components into /usr/local (so /usr/local/YourProductName or perhaps /usr/local/YourCompanyName/YourProductName) where users rarely go.

  • Leave enough of the app-like wrapper for the daemon to function as an app, and then have the app display a message telling the user what to do. If you read though Signing a Daemon with a Restricted Entitlement you’ll see a lot of it involves removing app stuff. If you leave that app stuff in place the daemon will function as an app. You can then configure your launchd property list to pass a --daemon argument to the executable, which gets it to run in daemon mode.

I much prefer the first approach. To start, it’s much simpler. Also, if you take the second approach then you end up linking to AppKit, and that’s not daemon safe (per the discussion in TN2083). You can get around this by putting the AppKit code into a shared library and then having your main executable load and run the shared library, but that just makes a complex solution even more complex.

Share and Enjoy

Quinn “The Eskimo!” @ Developer Technical Support @ Apple
let myEmail = "eskimo" + "1" + "@" + "apple.com"

Thanks Eskimo for reply and suggestions.

Can you help me to understand Why the application icon is shown with blocked mark in finder? This blocked mark on application icon is removed when the application permission changes.

Why the application icon is shown with blocked mark in finder?

Probably because of the app’s packaging. The Finder (well, various frameworks underlying the Finder) look at the app’s package to see if it’s appropriate for this Mac, displaying the ‘no entry’ symbol if it’s not. The key point here is the Info.plist, and the various properties it contains that describe what platform this app supports and what version it runs on. If you want that symbol to go away, you have to add back these properties.

It’s hard to say exactly which properties are missing from your setup. My approach, as illustrated by Signing a Daemon with a Restricted Entitlement, is to use Xcode to create the app wrapper and then crib from there.

Share and Enjoy

Quinn “The Eskimo!” @ Developer Technical Support @ Apple
let myEmail = "eskimo" + "1" + "@" + "apple.com"

Accepted Answer

It was permission related issue on the app.

You cant open the application because it is not supported on this type of Mac
 
 
Q