Как сделать так, чтобы при добавлении настраиваемого плагина в пакет macOS он соответствовал настройкам внешнего вида операционной системы?

Спустя много лет я снова открыл этот устаревший образец кода Apple, который является примером настраиваемого плагина установщика. Проект настолько стар, что поставляется с тестовым пакетом в устаревшем формате (Bundle), а его файл ресурсов был устаревшим .nib, что Xcode 12 не мог открыть и отредактировать. В указанном выше репозитории я заменил этот исходный наконечник копией, полученной путем открытия наконечника в Xcode 7 и его повторного сохранения. Плагин теперь работает, и его пользовательский интерфейс можно редактировать, но я столкнулся с проблемой. При любых условиях пакет, созданный с помощью этого плагина установщика, всегда отображает весь пакет в облегченном режиме. Моя система всегда находится в темном режиме, но когда в установщике есть плагин, весь пакет отображается в светлом режиме. Я пытался:

  1. Образец (Bundle) тестового пакета - это самый простой способ тестирования: вы можете просто открыть его с помощью show package content и создать иерархию, как описано в файле readme. В полученном пакете плагин работает правильно, но всегда отображается в светлом режиме.

  2. Я пробовал использовать современные инструменты, такие как packagebuild и productbuild, чтобы встроить плагин в плоский пакет. В полученном пакете плагин работает правильно, но всегда отображается в светлом режиме.

Любая помощь приветствуется. Спасибо.

РЕДАКТИРОВАТЬ:

Я только что попытался создать новый плагин установщика с нуля. Такое же поведение, только отображается в светлом режиме. Спасибо

1 ответ

Решение

Я открыл тикет поддержки на уровне кода разработчика по этому поводу, и я был рад получить ответ, и это можно сделать! Отлично. Вот ответ:

В ответ на ваш вывод, решение состоит в том, чтобы реализовать ключ списка «NSRequiresAquaSystemAppearance» внутри пакета подключаемого модуля установщика. Установите эту кнопку в положение «ДА», чтобы включить текущую настройку «Аква», и «НЕТ», чтобы отключить согласование «Аква».

Вначале я не очень хорошо понимал. Соответствующий ключ должен быть добавлен в пакет плагинов в info.plist, и по умолчанию он имеет значение YES, что, как я понимаю, означает принудительное появление света. Я установил для него значение НЕТ, и теперь пакет с плагином корректно отображается в темноте при необходимости. Спасибо за внимание.

Другие вопросы по тегам