在 Sonoma 14.0 上,当我尝试启动 JMeter 或将 Intellij 与 OpenJdk@11、@17 或 @21 一起使用时,我收到以下信息。我需要一些帮助来解决这个问题:警告:安全编码会自动启用以实现可恢复状态!但是,并非在此应用程序的所有受支持的 macOS 版本上。通过实现 NSApplicationDelegate.applicationSupportsSecureRestorableState:.
选择显式保护编码如果您没有自定义应用程序保存/恢复状态的方式,则应该实现此方法并返回
true
。
macOS 记录和恢复应用程序“已保存状态”的方式存在漏洞。默认情况下,此保存/恢复过程不使用
NSSecureCoding
,因为该过程是在安全编码存在之前添加到 macOS 的。
Apple 无法简单地将进程切换为使用
NSSecureCoding
,因为第三方开发人员可能会自定义其应用程序保存状态的方式,而这些自定义可能不会使用安全编码,因此强制 切换会破坏应用程序。
Apple 能做的最好的事情就是提供这个新的 API:允许开发人员明确告诉 AppKit,“您可以使用安全编码来保存和恢复状态;在此过程中我不会做任何与
NSSecureCoding
不兼容的自定义操作。”