我们写了一个应用程序,屏保忍者 https://screensaver.ninja,通过将屏幕保护程序复制到 ~/Library/Screen Savers 来为用户安装屏幕保护程序。这在我的机器和其他开发人员的机器上运行良好,但在我拥有的测试机器中,该文件就在那里,如果我让屏幕保护程序激活,它会选择它,但它不会出现在列表中:
这是我们用来安装它的代码:
func install() {
var err: NSError?
fileManager.copyItemAtURL(saverPackageUrl!, toURL: screensaversUrl!.URLByAppendingPathComponent("Ninja.saver"), error: &err)
if err != nil {
NSLog("Error installing Screensaver Ninja: \(err)")
}
}
这就是我们选择它作为默认值的方式:
func setAsDefault() {
var mutable: NSMutableDictionary
if let moduleDict = CFPreferencesCopyAppValue("moduleDict", "com.apple.screensaver") as? NSDictionary {
mutable = moduleDict.mutableCopy() as NSMutableDictionary
} else {
mutable = NSMutableDictionary()
}
mutable.removeObjectForKey("displayName")
mutable["moduleName"] = "Ninja"
mutable["path"] = saverPath
mutable["type"] = 0
CFPreferencesSetValue("moduleDict", mutable as CFPropertyList, "com.apple.screensaver", kCFPreferencesCurrentUser, kCFPreferencesCurrentHost)
CFPreferencesAppSynchronize("com.apple.screensaver")
}
这是运行该代码后在我自己的机器上的样子(我所期望的):
有什么想法为什么它不能在原始的 Mac 上运行吗?
测试用户(他们可以是非管理员吗?)与您和其他开发人员(我打赌管理员或根用户)的权限是什么?
使用 chmod 777 文件名可能会修复它。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)