2015-05-02 22 views
11

Mam bazę danych sqlite przechowywaną w kontenerze grupy aplikacji w celu zarejestrowania niestandardowego skrótu.Zapisywanie w bazie danych przechowywanej w kontenerze App Group z rozszerzenia

Mogę odczytać/zapisać w nim z poziomu aplikacji, ale nie z rozszerzenia klawiatury. Wygląda na to, że baza danych jest w trybie tylko do odczytu z rozszerzeń.

Używam następujący kod do niego dostęp:

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

Czy istnieje obejście, aby móc napisać do bazy danych z klawiatury przedłużacza, czy jest to całkowicie niemożliwe?

Baza danych jest zapisywalna z symulatora, ale nie dla prawdziwych urządzeń. Chyba dlatego, że uprawnienia są zarządzane inaczej na MacOS X i iOS.

Odpowiedz

8

Wyliczyłem to.

W przypadku klawiatury istnieje właściwość w pliku o nazwie ŻądaniaOpenAccess. Możesz włączyć tę opcję, aby włączyć dostęp do zapisu do udostępnionego kontenera.

Jednak użytkownik końcowy będzie musiał włączyć opcję "pełny dostęp" w ustawieniach dla tej klawiatury, a oni zostaną poproszeni o przerażającą wiadomość o tym, jak można rejestrować ich naciśnięcia klawiszy.

Oto artykuł, który wyjaśnia Jabłko go:

Designing for User Trust for Custom Keyboard