Как найти несколько приложений с одинаковым идентификатором пакета?

Кто-нибудь знает хороший способ найти (в файловой системе) каждое приложение с заданным идентификатором пакета? NSWorkspace и Launch Services позволяют искать приложения по идентификатору пакета, но возвращают только один результат. Я подозреваю, что Spotlight (NSMetadataQuery) может помочь, но я немного не понимаю его API, поэтому не уверен, есть ли соответствующий ключ.

Существует инструмент командной строки lsregister (внутри LaunchServices.framework), который можно попросить (пере)зарегистрировать все в системе, а затем выдать отчет обо всем, о чем он знает. Полагаться на этот инструмент кажется менее чем идеальным, поскольку он недокументирован, и разбор его результатов может стать проблемой.

(Предыстория: Я создаю приложение для моддинга игр и хочу предоставить пользовательский интерфейс для быстрого выбора из короткого списка поддерживаемых игр, а не требовать от пользователя копаться во всей файловой системе на панели Open. Однако я полагаю, что у пользователя может быть установлено несколько копий игры: релиз и бета, дополнительные копии для моддинга и т.д.)

6
задан Chris Page 11 May 2016 в 06:05
поделиться