Achats InApp - Sauvegarde du statut des achats

Bonjour tout le monde,

Je me pose une petite question: je viens d’implémenter les achats in-app (qui fonctionnent, youpii), cependant, pour “brider” mon application, il faut que je sauvegarde le statut de l’achat (si la personne a acheté la version pro par exemple).

Je pensais le faire avec les UserDefaults, mais est-ce la bonne façon de faire ?
Comment faites-vous ?

Bonne journée,

Alexandre

Bonjour @Alexandre

Je fais une réponse théorique, je n’en suis pas encore aux achats in-app…

Personnellement je stockerais les données sensibles via le keychain. Un peu plus de code, mais il y a des bons wrappers (cf. cours de maitre Maxime sur la sécurité).

Cela a néanmoins certains impacts fonctionnels à considérer, tels que :

  • Les données sont conservées si on supprime ou réinstalle l’application (ce n’est pas forcément mauvais dans ton cas)
  • Le trousseau varie en fonction du provisionning profile, donc quand on passe de testflight en distribution par exemple.

Un article pour étayer mes propos (même un peu ancien, je trouve que ça reste pertinent) : How secure is UserDefaults ?

Bonne journée,
Yves

1 « J'aime »

Hello @yves

Merci pour ta réponse, je vais regarder les cours sur la sécurité de Maxime pour voir.
Je continue de chercher avant de me décider. :slight_smile:

Bonne journée,

Alexandre

100% d’accord avec Yves, pour ton cas le trousseau est une meilleure idée.
Tu peux aussi chiffrer ta base de données Realm et stocker tes infos à l’intérieur si tu veux garantir que les infos soient supprimées après la désinstallation de ton app

Hello,

Merci pour la réponse, je pense que je vais faire ça.
(Surtout que avec le wrapper ‘KeychainAccess’, ça a l’air vachement simple, donc pourquoi s’en priver :grin:)

En soit, le fait que les données restent même après la désinstallation ne pose pas vraiment de problème (je pense), puisque dans le pire des cas, l’utilisateur garde l’accès à l’application en version ‘pro’. Pas plus mal pour l’utilisateur je pense.