Sto costruendo un'app mac che voglio distribuire nell'app store mac. Ho bisogno di questa app per avere una funzione di blocco schermo.Blocca lo schermo del MacBook da un'app sandbox
Ho 2 approcci diversi che funzionano, il problema è che, non appena abilito il sandboxing per l'app (che è richiesto per l'app store mac), nessuno di questi approcci funzionerà.
Sapete quale diritto devo richiedere? O conosci un terzo approccio che funzionerà con il sandboxing?
Grazie
Approccio 1, utilizzando CGSession (SWIFT):
var arguments = ["-suspend"]
var task = NSTask()
task.arguments = arguments
task.launchPath = "/System/Library/CoreServices/Menu Extras/User.menu/Contents/Resources/CGSession"
task.launch()
Approccio 2, utilizzando IORequestIdle (SWIFT):
var r = IORegistryEntryFromPath(kIOMasterPortDefault, "IOService:/IOResources/IODisplayWrangler")
if (r > 0) {
IORegistryEntrySetCFProperty(r, "IORequestIdle", kCFBooleanTrue)
IOObjectRelease(r)
}
Sono felice con una soluzione Objective-C dal modo in cui – saintmac
Qual è la necessità di blocco schermo? Trattamento dei dati personali? Protezione dati? Perché bloccare l'intero Mac e non solo la tua applicazione? Per bloccare l'intero Mac, chiedere all'utente di attivare Preferenze di Sistema> Sicurezza> "Richiedi password ... dopo il sonno o lo screen saver" e impostare un angolo attivo per inserire la sospensione dello schermo/salvaschermo. Dubito che questo possa essere fatto a livello di programmazione in quanto comporta diritti di amministratore. –
Perché l'obiettivo è bloccare il mac. Non l'app. L'obiettivo è quello di offrire un "pulsante di blocco", non un tutorial su come bloccare il mac (che stiamo già facendo nel frattempo) Può essere fatto a livello di programmazione perché lo abbiamo già fatto con l'app fuori da Sandbox modalità. La domanda è su come farlo in modalità sandbox (per distribuire l'app) – saintmac