2015-05-02 15 views
11

Ho un database sqlite memorizzato nel contenitore del gruppo di app per registrare il collegamento personalizzato.Scrittura in un database archiviato nel contenitore del gruppo di app dall'estensione

Posso leggere/scrivere dall'app, ma non dall'estensione della tastiera. Sembra che il database sia in modalità di sola lettura da estensioni.

Sto utilizzando il seguente codice per accedervi:

let appGroupDirectoryPath = NSFileManager.defaultManager().containerURLForSecurityApplicationGroupIdentifier(appGroupId) 
let dataBaseURL = appGroupDirectoryPath!.URLByAppendingPathComponent("database.sqlite") 

Esiste una soluzione per essere in grado di scrivere nel database dalla tastiera di estensione, o è del tutto impossibile?

Il database è scrivibile dal simulatore ma non con dispositivi reali. Immagino sia perché le autorizzazioni sono gestite in modo diverso su MacOS X e iOS.

risposta

8

Capito.

Per le tastiere, esiste una proprietà nel file Info.plist chiamato RequestsOpenAccess. È possibile attivare questa opzione su abilitare l'accesso in scrittura al contenitore condiviso.

Tuttavia, l'utente finale dovrà attivare "accesso completo" nelle impostazioni per questa tastiera e verrà visualizzato un messaggio spaventoso su come è possibile registrare le sequenze di tasti.

Ecco l'articolo di Apple che lo spiega:

Designing for User Trust for Custom Keyboard