您无法在此版本的OS X中使用屏幕保护程序

时间:2015-10-28 20:38:49

标签: xcode swift macos screensaver

所以这是我目前的问题。我试图创建一个屏幕保护程序,我所做的就是设置这样的背景颜色,

public override func drawRect(rect: NSRect) {

    super.drawRect(rect)

    let color = NSColor(red:0.33, green:0.78, blue:0.99, alpha:1)

    color.setFill()
    NSBezierPath.fillRect(rect)

}

相当直接。我还设置了EMBEDDED_CONTENT_CONTAINS_SWIFT = YES;

现在当我去安装.saver文件时,我收到了一条消息,上面写着

  

您无法在此版本的OS X中使用屏幕保护程序X

有什么想法吗?

2 个答案:

答案 0 :(得分:3)

如果您使用的是Mojave,则Principal类还需要包括模块名称(目标名称):

<key>NSPrincipalClass</key>
<string>[YourTarget].[YourClass]</string>

您可能还需要在Always Embed Swift Standard Libraries中将YES设置为Build Settings,并检查上述的Principles Class。

来源:

https://github.com/JohnCoates/Aerial/issues/464 https://blog.viacom.tech/2016/06/27/making-a-macos-screen-saver-in-swift-with-scenekit/

答案 1 :(得分:1)

如果Info.plist中的Principle Class设置不正确,或者即使它与实际类名不匹配,也会发生这种情况。 (如果类名是“MYCoolSaverView”但Info.plist认为类名是“mYCoolSaverView”,.saver包将正确编译,但是当您尝试在“系统偏好设置”下运行它时,您会看到此错误。)