Wir haben eine Anwendung geschrieben, Screensaver Ninja, die einen Bildschirmschoner für den Benutzer installiert, indem Sie es in ~/Library/Screen Savers kopieren. Das funktioniert gut in meiner Maschine und der anderen Entwickler-Maschine, aber in einem Testgerät, das ich habe, ist die Datei vorhanden, wenn ich den Bildschirmschoner aktivieren lasse, wählt er es aus, aber es erscheint nicht in der Liste:Warum zeigt ein neuer Mac meinen Bildschirmschoner nicht an?
Dies ist der Code, den wir es installieren verwenden:
func install() {
var err: NSError?
fileManager.copyItemAtURL(saverPackageUrl!, toURL: screensaversUrl!.URLByAppendingPathComponent("Ninja.saver"), error: &err)
if err != nil {
NSLog("Error installing Screensaver Ninja: \(err)")
}
}
und das ist, wie wir es als Standard auswählen:
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")
}
Dies ist, wie es aussieht, ist in meine eigene Maschine (was ich erwartet hatte) nach, dass Code ausgeführt wird:
Irgendwelche Ideen, warum wäre es nicht an einem unberührten Mac?
Wo wird in dieser Frage programmiert? – riodoro1
@ riodoro1 wir haben die App geschrieben, die Ninja.saver installiert, indem man sie in ~/Library/Screen Savers kopiert. Wir untersuchen, welche weiteren Aktionen wir ausführen müssen, um einen Bildschirmschoner auf MacOSX (auf einer fehlerfreien Maschine) zu installieren. – Pablo
@ riodoro1 Ich kann den Code kopieren und einfügen, den wir verwenden, um die Datei zu kopieren, wenn das glücklich macht, aber ein sehr trivialer Code ist. – Pablo