De temps en temps, mais pas toujours (cela fait un moment que cela fonctionne), l'application/extension se met dans un état où je ne peux pas lire un drapeau défini dans mon App Group entre mon application compagnon et mon extension d'application. Je ne sais pas comment il se met dans cet état ni pourquoi les valeurs diffèrent, mais c'est critique à mon application, ceux-ci sont toujours synchronisés.
Application compagnon viewDidLoad :
NSUserDefaults *myAppSettings = [[NSUserDefaults alloc] initWithSuiteName:@"group.myapp"];
.....
[myAppSettings setBool:true forKey:@"myBool"];
[myAppSettings synchronize];
NSLog([myAppSettings boolForKey:@"myBool"] ? @"Companion app - bool TRUE" : @"Companion app - bool FALSE");
Extension de l'application viewDidLoad
NSUserDefaults *myAppSettings = [[NSUserDefaults alloc] initWithSuiteName:@"group.myapp"];
[myAppSettings synchronize];
NSLog([myAppSettings boolForKey:@"myBool"] ? @"App extension app - bool TRUE" : @"App extension - bool FALSE");
Sortie console
Companion app - bool TRUE
App extension - bool FALSE
Je synchronise également avant que mon application compagnon ne passe en arrière-plan. J'ai configuré mon groupe d'applications dans le portail, etc.
Qu'est-ce que je fais de travers ?
EDITAR
Apparemment, d'autres personnes ont également ce problème : https://devforums.apple.com/message/977151#977151
"Je pense qu'il y a actuellement beaucoup de problèmes.
Parfois le partage de données fonctionne, puis un changement et tout d'un coup le widget ne peut plus voir les données partagées (à la fois sur le simulateur et sur l'appareil).
C'est ennuyeux et j'espère qu'il sera un peu plus fiable dans la prochaine version bêta !"
EDITAR 2 Il semble qu'une autre personne ait également signalé ce problème :
"J'ai également remarqué la même chose. NSUserDefaults, mais aussi à tous les fichiers du dossier conteneur. Les l'extension clavier perd soudain l'autorisation de lecture/écriture dans le dossier après avoir utilisé le clavier pendant un certain temps."
EDIT 3 Plus de preuves : https://devforums.apple.com/message/1028078#1028078
Après la mise à jour vers la version bêta 3, j'ai remarqué que, parfois, le clavier n'arrivait pas à ouvrir la base de données parce qu'il ne parvenait pas à . Le clavier était capable d'accéder au fichier auparavant.
EDIT 4
Il semblerait que cela soit dû au fait que le clavier perd la fonction RequestsOpenAccess
drapeau. Mais je ne peux pas le reproduire et je n'ai aucun moyen d'en être sûr.
EDIT 5
Il semble que d'autres personnes signalent ce problème dans la version GM d'iOS8 :
Ce problème persiste pour moi dans le GM. Il semble lié à un clavier mais il semble aussi qu'il y ait une certaine contention entre le entre le clavier et l'application contenante pour savoir qui crée la suite dans quel ordre. l'ordre. Je pense que ce problème est du côté d'Apple. Croyez-moi, je VEUX que ce soit que ce soit ma faute mais j'ai passé d'innombrables heures à faire des essais et des erreurs. Non Quoi que je fasse dans le code et que je vérifie avec NSLog, cela finira toujours dans cet état. dans cet état un jour ou l'autre. J'espère que quelqu'un trouvera une pilule magique :S
Quelqu'un a-t-il déjà résolu ce problème ?