2012-03-06 6 views
0

J'ai parcouru environ 2 douzaines d'articles ici et ailleurs à la recherche d'une réponse. Personne ne semble avoir résolu ce problème -Directives de stockage de données iOS catch 22

Nous avons une application qui a assez grande base de données (de l'ordre de 5 Mo). L'application a besoin de la base de données lorsque vous travaillez hors connexion. La base de données peut être recréée en téléchargeant depuis notre serveur en ligne.

Nous ne pouvons pas utiliser les données de base au lieu de notre propre base de données car les données doivent être chiffrées pour respecter les normes de confidentialité du gouvernement. L'application ne peut pas fonctionner hors ligne sans cette base de données, elle ne peut donc pas entrer dans Bibliothèque/Caches.

Nous pouvons placer les données dans Documents et les marquer comme "ne pas sauvegarder" pour iOS 5, mais cela ne fonctionne pas pour iOS 4 puisque cet attribut n'est pas reconnu. Alors que pouvons-nous faire avec la base de données dans iOS 4?

+0

Ainsi, vos exigences stipulent que non seulement il doit être crypté sur l'appareil, mais qu'il ne peut pas être sauvegardé sur l'ordinateur lorsque l'appareil est synchronisé? – QED

+0

@psoft - Rien n'est stipulé à propos de la sauvegarde, si ce n'est que les données à recréer sont déjà sauvegardées sur notre serveur. –

+0

@HotLicks Pouvez-vous développer «chiffré pour répondre aux normes de confidentialité du gouvernement»? Y a-t-il une norme que vous pouvez indiquer? –

Répondre

0

Juste du haut de ma tête.

Je suppose que vous pourriez sous-classer NSManagedObject afin qu'il crypte toutes les données qui sont enregistrées dans les données de base et les décrypte lorsque vous les lisez. Cependant, il y aura beaucoup de frais généraux sur le processeur. Il pourrait y avoir une certaine façon de l'optimiser.

Check this out: AES Encryption for an NSString on the iPhone

+1

Chiffrer chaîne par chaîne est incroyablement compliqué et sujet aux erreurs, très inefficace et gravement non sécurisé. –

0

Mettez-le dans (sandbox)/Library/Application Support. Voici comment Apple décrit le dossier Application Support:

Fichiers de ressources et de données que votre application crée et gère pour l'utilisateur. Vous pouvez utiliser ce répertoire pour stocker des informations sur l'état de l'application, des données calculées ou téléchargées ou même des données créées par l'utilisateur que vous gérez au nom de l'utilisateur.

Cité à partir de Apple's File System Programming Guide for iOS.

+0

Bizarre que la prise en charge des applications ne soit mentionnée dans aucune des instructions de stockage de données. Compte tenu du temps et des coûts associés à la nouvelle soumission (surtout pour nous, étant donné que notre client insiste pour faire les soumissions), il serait bon de savoir avec certitude si cette solution serait acceptée. –

Questions connexes