Dans mon application iPhone, je souhaite fournir un gestionnaire de terminaison d'application qui effectuera un travail final (suppression de données sensibles) avant la fin de l'application.iphone - comment gérer correctement des situations exceptionnelles (signaux?)
Je veux gérer autant des situations de résiliation possible:
1) L'utilisateur met fin à l'application
2) L'appareil fonctionne sur batterie
3) Le système met fin à l'application pour une raison quelconque (par exemple mémoire insuffisante ou gel de l'application)
4) Crash d'application (EXC_BAD_ACCESS ou SIGSEGV)
Une autre situation exceptionnelle?
Quelle est la meilleure façon d'y parvenir (par exemple, la méthode applicationWillTerminate est-elle appelée dans la situation 2)?
Est-il possible de faire le nettoyage dans un gestionnaire de signal (y compris les appels d'infrastructure de l'iPhone Security)?
concernant
Vos données sensibles sont écrites dans un stockage persistant? Y a-t-il un moyen de le créer en mémoire? Si vous utilisez SQLite, il prend en charge dans les bases de données de la mémoire. –
Non, mes données sont stockées dans le trousseau de clés :) Cependant, je travaille sur une application e-banking et mon client veut que je crypte manuellement toutes les données (y compris les clés) avant de les stocker dans le trousseau. Comme ce n'est pas supporté par le SDK, je dois faire une sorte de piratage concernant les clés et la signature des données (voir mon post précédent ici: http://stackoverflow.com/questions/2826090/iphone-data-signing-using- nsdata-de-la-clé privée). Donc, je garde la version décryptée des clés dans le trousseau pendant la durée de vie de l'application afin de pouvoir faire la signature, puis à la fin de l'application, je voudrais le supprimer. – pmilosev