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?