向macOS包中添加自定义插件时,如何使其遵循操作系统的外观设置?

When adding a custom plugin to a macOS package, how to make it follow the appearance setting of the operating System?

多年后,我重新打开了 this 遗留的 Apple 示例代码,它是自定义安装程序插件的示例。该项目太旧了,附带了一个旧版 (Bundle) 格式的测试包,其资源文件是旧版 .nib,Xcode 12 无法打开和编辑。在上面的存储库中,我已经用在 Xcode 7 中打开 nib 并重新保存它获得的副本替换了这个原始 nib。该插件现在可以使用,并且可以编辑其 UI,但我遇到了问题。在任何情况下,使用此安装程序插件创建的包都会使整个包始终以浅色模式显示。我的系统总是处于深色模式,但是当安装程序有插件时,整个包显示为浅色模式。我试过:

  1. 示例(Bundle)测试包是最简单的测试方法:您可以使用显示包内容打开它并创建一个层次结构,如自述文件中所述。生成的包使插件正常工作,但始终以浅色模式显示。

  2. 我尝试使用现代工具,如 packagebuild 和 productbuild,将插件嵌入到平面包中。生成的包使插件正常工作,但始终以浅色模式显示。

非常感谢任何帮助。谢谢

编辑:

我刚刚尝试从头开始创建一个新的安装程序插件。相同的行为,仅在浅色模式下显示。谢谢

我开了一个开发者代码级别的支持工单,很高兴收到回复,可以做到!伟大的。答案如下:

In response to your finding, the solution is to implement the “NSRequiresAquaSystemAppearance” plist key inside the Installer plugin bundle. Set this key to YES to enable the current Aqua setting and NO to disable Aqua matching.

一开始没看懂。在info.plist中的plugin bundle中需要添加相关的key,而且默认是YES,按照我的理解就是force light appearance。我已将其设置为“否”,现在需要时带有插件的包可以正确显示为暗色。感谢您的关注。