How to Make an App Appear in macOS “Recommended Applications” for a File Type

Published June 27, 2026, 10:18 a.m. by james

Adding Okular or Xournal++ to macOS “Recommended Applications” for PDF Files

```

On macOS, Finder decides which programs appear under Recommended Applications based on what each application declares in its Info.plist file. If a PDF reader such as Okular or Xournal++ does not advertise support for PDF files, Finder may hide it unless you manually choose Other... and then switch from Recommended Applications to All Applications.

This guide shows how to add PDF support to the application bundle so the program appears as an option for PDF files without making it the default PDF viewer.

This does not set Okular or Xournal++ as the default app. It only makes the app appear as a valid option in Finder’s Open With menu.

1. Find the Application Bundle

On macOS, application names are case-sensitive in paths. For example, Okular may be installed as /Applications/okular.app instead of /Applications/Okular.app.

OKULAR_APP="$(mdfind "kMDItemFSName == 'okular.app'" | head -n 1)"
```

echo "$OKULAR_APP"
```

If the output is:

/Applications/okular.app

then use that exact path in the commands below.

2. Back Up and Open the Info.plist File

Go into the application bundle and back up the original plist file.

cd "/Applications/okular.app/Contents"
```

cp Info.plist Info.plist.backup
plutil -convert xml1 Info.plist
vim Info.plist
```

For Xournal++, the path is usually:

cd "/Applications/Xournal++.app/Contents"
```

cp Info.plist Info.plist.backup
plutil -convert xml1 Info.plist
vim Info.plist
```

3. Add PDF Support Inside the Main dict

The important part is that the PDF block must be inside the main <dict> ... </dict> section. A valid plist has only one root object inside <plist>.

The beginning of the file should look like this:

<?xml version="1.0" encoding="UTF-8"?>
```



```

Add the following block immediately after the opening <dict> line:

    <key>CFBundleDocumentTypes</key>
<array>
    <dict>
        <key>CFBundleTypeName</key>
        <string>PDF Document</string>

        <key>CFBundleTypeExtensions</key>
        <array>
            <string>pdf</string>
        </array>

        <key>CFBundleTypeRole</key>
        <string>Viewer</string>

        <key>LSItemContentTypes</key>
        <array>
            <string>com.adobe.pdf</string>
            <string>public.pdf</string>
        </array>
    </dict>
</array>

The corrected beginning of the file should look like this:

<?xml version="1.0" encoding="UTF-8"?>
```




CFBundleDocumentTypes


CFBundleTypeName
PDF Document

```
        <key>CFBundleTypeExtensions</key>
        <array>
            <string>pdf</string>
        </array>

        <key>CFBundleTypeRole</key>
        <string>Viewer</string>

        <key>LSItemContentTypes</key>
        <array>
            <string>com.adobe.pdf</string>
            <string>public.pdf</string>
        </array>
    </dict>
</array>

<key>CFBundleDevelopmentRegion</key>
<string>English</string>
Do not place <key>CFBundleDocumentTypes</key> before the opening <dict>. That will break the plist and produce an error such as:

plist can only include one object

4. Validate the plist

After saving the file in vim, check that the plist is valid:

plutil -lint Info.plist

The expected output is:

Info.plist: OK

5. Re-sign and Re-register the Application

Because the application bundle was modified, macOS may require the app to be re-signed locally.

codesign --force --deep --sign - "/Applications/okular.app"

Then register the application again with LaunchServices:

/System/Library/Frameworks/CoreServices.framework/Frameworks/LaunchServices.framework/Support/lsregister -f "/Applications/okular.app"
```

killall Finder
```

For Xournal++, use:

codesign --force --deep --sign - "/Applications/Xournal++.app"
```

/System/Library/Frameworks/CoreServices.framework/Frameworks/LaunchServices.framework/Support/lsregister -f "/Applications/Xournal++.app"
killall Finder
```

6. Rebuild LaunchServices Cache if Needed

If Finder still does not show the app under Recommended Applications, rebuild the LaunchServices database:

/System/Library/Frameworks/CoreServices.framework/Frameworks/LaunchServices.framework/Support/lsregister -kill -r -domain local -domain system -domain user
```

killall Finder
```

7. Check Finder

Now right-click a PDF file and choose:

Open With

Okular or Xournal++ should now appear as a recommended application for PDF files.

Common Mistake

The most common mistake is placing the new block outside the main dictionary. This is invalid:

<plist version="1.0">
<key>CFBundleDocumentTypes</key>
...
<dict>
    ...
</dict>
```

```

The correct structure is:

<plist version="1.0">
```


CFBundleDocumentTypes
...

```

Final Notes

This method only changes which apps macOS considers compatible with PDF files. It does not change your default PDF viewer.

If you update Okular or Xournal++, the application bundle may be replaced, and you may need to repeat this process.

```

Share this post

Similar posts

There are no similar posts yet.

comment

There are no comments yet.

Add a new comment