Ma première application mise à jour est juste allé vivre la nuit dernière et j'ai reçu une plainte que la mise à jour a causé les données créés par l'utilisateur (en partie) à disparaître. J'ai été en mesure de reproduire le problème, mais ne peut pas dire pourquoi.
Dans le répertoire Documents, j'ai enregistré un fichier de clé qui me dit que le "titre" de tous les fichiers de l'utilisateur et leurs noms de fichiers (chemin complet). Ensuite, tous les fichiers de l'utilisateur sont également dans le répertoire Documents.
Lorsque la mise à jour se produit, le fichier de clé est toujours là (au moins, je pense que c'est parce que les données s'affiche dans le premier écran de l'app - applications pleinement de quitter et de relancer après la mise à jour, non?), mais, lorsque l'utilisateur essaie de naviguer dans les fichiers, il n'y a pas de données et de toutes les nouvelles données saisies par l'utilisateur dans n'est jamais enregistré.
Il agit exactement comme il l'a fait dans le débogage lorsque j'ai été accidentellement à l'aide d'un nom de fichier non valide (avec une mauvaise caractères) - il n'a jamais sauvé. Mais avec la mise à jour, ces fichiers ont été enregistrés correctement dans l'ancienne version, mais sont en quelque sorte échoué dans la nouvelle version.
C'est ma première application et mon premier jour et je suis tout à fait à une perte ici. J'ai tiré de l'application de la vente pour le moment (il ne savait pas que tu ne pouvais pas tout simplement revenir à une ancienne version! oups!) et apprécierait vivement toutes les idées quant à l'endroit où/comment faire pour trouver le problème et comment écrire une BONNE mise à jour qui ne perdrez pas les données. (Jusqu'ici, tout ce que j'ai trouvé est "enregistrer les données dans le répertoire Documents", qui est ce que je faisais déjà.)
J'ai de l'application d'origine enregistré dans son propre projet et je peux revenir et de travailler à partir de cette à nouveau. J'ai copié l'ensemble de répertoire lorsque j'ai commencé à travailler sur la mise à jour et je me demande si cela pourrait en quelque sorte être le problème? J'ai fait changer le nom du répertoire qui contient tous les XCode fichiers et utilisé le Projet>fonction Renommer. Que cela pourrait avoir cet effet en quelque sorte?
L'application (à la fois originale et mise à jour) est en cours d'exécution sur 4.2 et au-dessus, si ce qui compte.
RÉSOLUTION:
Je crois que j'ai compris ce problème. Comme je l'ai dit au début de ma question, j'essayais de sauver le CHEMIN d'accès COMPLET de l'utilisateur des fichiers de ma clé de fichiers. Apparemment, le chemin d'accès complet n'est PAS garanti d'être le même après une mise à jour (je suis sûr que c'est documenté quelque part, mais je n'avais pas courir à travers elle).
Ainsi, les fichiers de l'utilisateur A été transporté à la mise à jour du nouveau répertoire Documents, mais j'ai été à la recherche pour eux sur le vieux chemin d'accès absolu, c'est à dire pas dans mon bac à sable.
Fixe en mettant une boucle en application de l'didFinishLaunching de sortir de la délinquance fichier de filepaths (QUE j'avais toujours cherché localement et il était encore de travail) et les couper vers le bas, juste les noms de fichiers. Le chemin d'accès de Documents doit être trouvé et ajouté par programme fichier à chaque fois que les opérations sont effectuées.
Pour ce que ça vaut, c'était vraiment bon pour moi qu'il n'y a aucun moyen de revenir à une ancienne binaire dans le magasin parce que la ré-installation de la version d'origine n'aurait pas fixe de l'utilisateur problème, mais j'aurais cru qu'il avait, au moins initialement. Je ne souhaite qu'il y avait un moyen d'avoir rejeté les MISES à jour, mais toujours permis à de nouveaux achats (puisque le problème n'a pas d'incidence sur les nouveaux achats). Probablement pas assez communs situation le justifie, si.