Apple deprecated launch service calls like LSCopyAllRoleHandlersForContentType
, referring to -[NSWorkspace URLsForApplicationsToOpenContentType:]
instead.
However all those new NSWorkspace
methods do not have the crucial LSRolesMask
the launch service calls have.
For example, I have code that looks up all alternative shells, and with LSCopyAllRoleHandlersForContentType
I could simply provide LSRoleMask.shell
to restrict the returned bundle identifiers to shells only.
This is not the first time Apple deprecates stuff without a proper replacement and I don't really get it.
Every OS update is basically a downgrade.
Or is there another way to replicate the old launch service call behavior?