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?
Avez-vous la configuration des droits pour le groupe d'applications "group.testKeyboard.asanpardakht.ir"? –
Oui, à la fois pour la cible du clavier et la cible de l'application –