Как добавить программу в меню «Открыть с помощью» на Mac?

Как добавить программу в меню «Открыть с помощью» на Mac?

Как добавить программу в меню «Открыть с помощью» на Mac?

решение1

Вы имеете в виду подменю, которое вы получаете, щелкнув правой кнопкой мыши по документу? Если так, то оно автоматически генерируется Launch Services на основе типов документов, которые, как утверждается, ваши приложения могут обрабатывать. Если вы посмотрите внутрь пакета приложения (щелкните правой кнопкой мыши по приложению и выберите Показать содержимое пакета), внутри папки Contents вы увидите файл Info.plist с различной информацией о приложении, включая массив типов документов, которые оно может открыть (см. документацию разработчика Appleздесь).

Короче говоря, если приложение обрабатывает этот тип документов, то он уже должен быть в списке; если нет, то я не знаю, как добавить его вручную.

решение2

Если вы открываете окно "Get Info" для типа файла, который вы хотите изменить (Ctrl-клик + "Get Info" или ⌘ command+ Iпри выбранном файле), вы можете изменить программу на нужную и нажать "Change All". Я обнаружил, что это затем изменяет меню "Open With", так что если вы Ctrl-кликнете и перейдете в "Open With", то теперь оно покажет это приложение, потому что это новое приложение по умолчанию. Единственный недостаток в том, что вам придется сделать его приложением по умолчанию (я пробовал вернуть его обратно после этого, но это не сработало).

Это не совсем идеальное решение, но оно достаточно хорошо работает в моем конкретном случае и может быть полезным для других, и оно должно быть проще/стабильнее, чем решение с plist.

Получить информацию скриншот

macOS High Sierra 10.13.5 (17F77)

решение3

Если вы использовали Script Editor или Automator для создания дроплета для приложения, когда вы хотите добавить дроплет в список «Открыть с помощью», вы можете сделать следующее:

  1. Как всегда,сохраняйте резервную копию всех файлов приложений/системы, которые вы планируете изменить! -- just in case anything goes wrong

  2. Скопируйте массив расширений целевого файла из приложения, котороеявляетсяперечисленных в списке "Открыть с помощью" из файла info.plist приложения, и вставьте его в массив CFBundleDocumentTypes в файле info.plist вашего целевого приложения (щелкните правой кнопкой мыши по приложению, выберите "Показать содержимое пакета"). В этом примере я показываю файл info до/после VLC droplet.appзамены данных с подстановочным расширением (" *") на несколько типов файлов из VLC.appфайла info:

"/Applications/VLC droplet.app/Contents/Info.plist":

До:

<key>CFBundleDocumentTypes</key>
<array>
    <dict>
        <key>CFBundleTypeExtensions</key>
        <array>
            <string>*</string>
        </array>
        <key>CFBundleTypeOSTypes</key>
        <array>
            <string>****</string>
        </array>
        <key>CFBundleTypeRole</key>
        <string>Viewer</string>
    </dict>
</array>

ПОСЛЕ:

<key>CFBundleDocumentTypes</key>
<array>
    <dict>
        <key>CFBundleTypeIconFile</key>
        <string>aiff.icns</string>
        <key>CFBundleTypeName</key>
        <string>AIFF file</string>
        <key>CFBundleTypeRole</key>
        <string>Viewer</string>
        <key>LSItemContentTypes</key>
        <array>
            <string>public.aiff-audio</string>
            <string>public.aifc-audio</string>
        </array>
    </dict>
    <dict>
        <key>CFBundleTypeExtensions</key>
        <array>
            <string>divx</string>
        </array>
        <key>CFBundleTypeIconFile</key>
        <string>movie.icns</string>
        <key>CFBundleTypeName</key>
        <string>DivX file</string>
        <key>CFBundleTypeRole</key>
        <string>Viewer</string>
    </dict>
    <dict>
        <key>CFBundleTypeIconFile</key>
        <string>m4v.icns</string>
        <key>CFBundleTypeName</key>
        <string>MPEG-4 File</string>
        <key>CFBundleTypeRole</key>
        <string>Viewer</string>
        <key>LSItemContentTypes</key>
        <array>
            <string>public.mpeg-4-audio</string>
            <string>com.apple.m4v-video</string>
            <string>public.mpeg-4</string>
        </array>
    </dict>
</array>
  1. Откройте терминал и введите следующую команду, изменив ее <TARGET_APP>на имя приложения, для которого вы редактируете info.plist, чтобы добавить его в список «Открыть с помощью»:

/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/LaunchServices.framework/Versions/A/Support/lsregister -f "/Applications/<TARGET_APP>.app/"

  1. Введите команду killall Finderдля принудительного перезапуска Finder.

Если приложение подписано, изменение Info.plistделает подпись кода недействительной. Это также приводит к сбою некоторых приложений, таких как TextEdit и WriteRoom, при запуске в 10.8.

ПРИМЕЧАНИЕ: Я взял часть информации для этого ответа и отредактировал ее, чтобы обновить ее с немного более подробной информацией/объяснением. Исходная ветка находитсяздесь.

Связанный контент