0

J'ai lu ci-dessous la page github et utilisé le code pour le partage coredata entre mon extension de clavier ios et l'application.Coredata dans l'extension de clavier ios

https://github.com/maximbilan/iOS-Shared-CoreData-Storage-for-App-Groups

Le code fonctionne bien sur le simulateur, mais il ne fonctionne pas, mais addPersistentStore ne fonctionne pas sur l'appareil réel:

lazy var persistentStoreCoordinator: NSPersistentStoreCoordinator? = { 
    // The persistent store coordinator for the application. This implementation creates and return a coordinator, having added the store for the application to it. This property is optional since there are legitimate error conditions that could cause the creation of the store to fail. 
    // Create the coordinator and store 
    var coordinator: NSPersistentStoreCoordinator? = NSPersistentStoreCoordinator(managedObjectModel: self.managedObjectModel) 

    let directory = FileManager.default.containerURL(forSecurityApplicationGroupIdentifier:"group.testKeyboard.asanpardakht.ir")! 

    let url = directory.appendingPathComponent("AsanPardakhtSharedData.sqlite") 

    do { 
     try coordinator!.addPersistentStore(ofType: NSSQLiteStoreType, configurationName: nil, at: url, options: nil) 
    } catch var error as NSError { 
     coordinator = nil 
     NSLog("Unresolved error \(error), \(error.userInfo)") 
     abort() 
    } catch { 
     fatalError() 
    } 
    print("\(String(describing: coordinator?.persistentStores))") 
    return coordinator 
}() 

Je reçois ci-dessous erreurs:

domaine NSError : "NSCocoaErrorDomain" - code: 512

"raison": "La création du fichier a échoué; code = 1"

J'ai essayé de mettre RequestOpenAccess à YES dans mon dossier info.plist mais il ne fonctionne pas encore. Est-ce que quelqu'un a une idead au sujet du problème?

+0

Avez-vous la configuration des droits pour le groupe d'applications "group.testKeyboard.asanpardakht.ir"? –

+0

Oui, à la fois pour la cible du clavier et la cible de l'application –

Répondre

0

je me suis dit que ci-dessous après fonctionne bien pour le clavier l'extension aussi:

https://github.com/maximbilan/iOS-Shared-CoreData-Storage-for-App-Groups

Le seul problème est que, pour l'extension du clavier, nous devons également mettre RequestOpenAccess à info.plist à YES. Dans le réglage du clavier, une option apparaît pour le Full Access lorsque vous le réglez sur YES. Nous devons l'activer, puis le code fonctionne également sur le périphérique réel.

Les développeurs doivent s'assurer qu'avant d'appeler la méthode dans la quête, demandez à l'utilisateur d'activer l'option.