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