Seguir los lineamientos de Apple al almacenar información.

Editar en GitHub

Almacenar información y configuración de acuerdo a los lineamientos de Apple es crucial para el ciclo de vida de la aplicación, en particular cuando se refiere a la sincronización con iCloud, renovación del dispositivo telefónico y restauración de una copia de seguridad en el teléfono.

Asegurarse de seguir los lineamientos oficiales de Apple para almacenamiento de información en iOS:

  • Documents: Usar este directorio para contenido generado por el usuario, se genera una copia de respaldo del mismo.
  • Caches: Usar este directorio para información que puede ser regenerada.
  • tmp: Usar este directorio para archivos temporales.
  • Hacer uso del atributo no respaldar (do not back up) en archivos.

Jamás almacenar información confidencial del usuario (como contraseñas o sesiones de usuario) en estos directorios. En cambio hacer uso del Keychain API.

El Keychain API ofrece control sobre cómo la información debe ser guarda en un dispositivo. Asegurarse de tener un buen entendimiento de cómo diferentes atributos afectan el ciclo de vida de la aplicación.

Una pregunta frecuentemente pasada por alto y que debería ser planteada: Cuando el usuario renueva su dispositivo iOS a uno más reciente, se debería también migrar la información (ej. inicio de sesión)?

Si se utiliza kSecAttrAccessibleWhenUnlockedThisDeviceOnly esta información no será incluida en los respaldos de iCloud o iTunes, es decir, el usuario perderá los datos cuando cambie de dispositivo.