Glossary
LaunchServices
The macOS framework that answers 'which app handles this?' — bundle ID lookups, URL scheme handlers, file-type associations. The first stop on every app launch.
LaunchServices is the macOS framework that owns the "which app handles this?" decision. It maintains a per-user database mapping:
- Bundle IDs → app bundle locations.
- URL schemes (
mailto:,https:, custom schemes) → handler apps. - File UTIs (
public.html,com.adobe.pdf) → handler apps. - Document types per app.
LaunchServices is exposed via the LSOpenApplicationAtURL family of APIs and the older LaunchServices.framework. It runs as a userspace daemon (lsd) — your Finder calls into lsd over XPC; lsd then asks launchd to spawn the app.
The database is rebuilt by lsregister, which scans known app locations on disk (the Applications folder, ~/Applications, /System/Library/CoreServices) and updates the bundle ID → location index. If you see "I dragged an app to /Applications but it doesn't show up", the answer is usually "LaunchServices hasn't rescanned" — lsregister -kill -r -domain local -domain system -domain user forces a rebuild.
LaunchServices is the first actor in the app launch flow — every "open with" decision, every URL click, every double-click in Finder goes through it.
See also: launchd, the app launch article.