2015-03-31 2 views
8

Мы написали приложение, Screensaver Ninja, которое устанавливает заставку для пользователя, скопировав ее в ~/Library/Screen Savers. Это отлично работает на моей машине и на машине другого разработчика, но на тестовой машине у меня есть файл, если я разрешаю заставки активировать, он выбирает его, но он не отображается в списке:Почему новый Mac не отображает экранную заставку?

enter image description here

Это код, который мы используем для его установки:

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") 
} 

Вот как это выглядит в моя машина (что я ожидал) после выполнения этого кода:

enter image description here

Любые идеи, почему это не будет работать на нетронутых макинтош?

+0

Где программирование в этом вопросе? – riodoro1

+0

@ riodoro1 мы написали приложение, которое устанавливает Ninja.saver, скопировав его в ~/Library/Screen Savers. Мы изучаем, какие еще действия необходимо выполнить для правильной установки заставки на MacOSX (на нетронутой машине). – Pablo

+1

@ riodoro1 Я могу скопировать и вставить код, который мы используем, чтобы скопировать файл, если это вас радует, но очень тривиальный код. – Pablo

ответ

1

Каковы разрешения для пользователя-тестировщика (могут ли они быть не администраторами?) Против тех, которые для вас и других разработчиков (я ставлю администратору или root)?

Использование chmod 777 имя файла может исправить.

+0

... также проверьте наличие отличий GateKeeper. – Tommy

Смежные вопросы