ios 8: Bundle changements de chemin d'accès

J'ai une application iOS qui stocke le chemin absolu des fichiers dans une base de données et généré des documents html. J'ai récemment mis à jour mon iPhone pour iOS 8 et maintenant, lorsque j'ai jamais exécuter l'application, il semble que l'application est installée dans un répertoire différent de tous les re-compiler. Par exemple le premier build/run [[NSBundle mainBundle] bundlePath] renvoie quelque chose de différent sur la prochaine build/run. Ce qui se passe? Est-ce une nouvelle fonctionnalité d'Apple?

Mise à jour: Un rapport de bug a été créé

Exemple de Code:

Si j'exécute la ligne suivante au cours de plusieurs build/pistes, puis je vais obtenir un résultat différent à chaque fois.

#define kOLD_PATH @"oldPath"
NSString* newPath = [NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES) lastObject];
NSString* oldPath = [[NSUserDefaults standardUserDefaults] objectForKey:kOLD_PATH];

NSLog(@"New Path: %@", newPath);
NSLog(@"Old Path: %@", oldPath);
NSLog(@"Result: %@", [oldPath isEqualToString:newPath] ? @"Same" : @"Changed");

[[NSUserDefaults standardUserDefaults] setObject:newPath forKey:kOLD_PATH];
[[NSUserDefaults standardUserDefaults] synchronize];

La sortie ressemble à ceci sur plusieurs pistes

New Path: /var/mobile/Containers/Data/Application/4FFCE2CB-580D-409A-90CB-EF2B8A1FB653/Library
Old Path: /var/mobile/Containers/Data/Application/B038B2DA-F85D-4E18-A5F1-8635834EC454/Library
Result: Changed

Divulgation complète: Dans mon application à l'utilisateur d'importer une page web (ePub) qui a des ressources. Les ressources sont stockées avec la page web. La page web accède également à des ressources qui font partie de l'app bundle. Pour atteindre cet quand je charge la page web à l'url de base est définie sur le répertoire que la page web est en et le bundle de ressources sont accessibles via absolue chemins d'accès aux fichiers. Maintenant que les chemins de fichiers changer à chaque mise à jour c'est cassé. J'ai essayé de créer des liens symboliques vers les ressources de module, mais qui ne l'onu mises à jour subséquentes.

OriginalL'auteur datinc | 2014-09-17