01 Qué exige Apple
La norma 5.1.1(v) de las App Review Guidelines es una de las causas de rechazo más frecuentes: si tu app permite crear una cuenta, debe permitir iniciar su eliminación desde dentro de la app. Eliminar significa quitar la cuenta de tus registros junto con los datos asociados que no estés obligado legalmente a conservar.
- ✓La opción debe ser fácil de encontrar, normalmente en Ajustes o en el perfil.
- ✓Ofrecer solo «desactivar» o «suspender» la cuenta no es suficiente.
- ✓Puedes pedir reautenticación o un código de confirmación, pero no poner obstáculos innecesarios.
- ✓No vale obligar a llamar, escribir un correo o pasar por soporte, salvo en sectores muy regulados.
- ✓Si el borrado termina en una web, enlaza directamente a esa página.
- ✓Las cuentas creadas automáticamente («invitado») también deben poder borrarse.
- ✓El contenido que el usuario ha publicado (fotos, textos, reseñas) también debe eliminarse.
- ✓Si el borrado tarda, informa del plazo y confirma cuando termine.
02 Los atajos que no funcionan
| Enfoque | Apple | RGPD | Integridad de datos |
|---|---|---|---|
| Marcar la cuenta como inactiva y guardar los datos ocultos | Se considera desactivar: rechazo | Incumple el derecho de supresión: la persona sigue siendo identificable | Intacta |
| Borrar la fila del usuario sin más | Cumple | Cumple | Rompe claves foráneas o borra en cascada registros que debes conservar |
| Borrar lo personal, anonimizar lo que debe quedar y bloquear lo exigido por ley | Cumple | Cumple | Intacta |
Un dato «oculto» en la base de datos sigue siendo un dato personal. Tampoco sirve sustituir el email por su hash: si alguien conoce el email original, puede volver a identificar a la persona. La anonimización solo cuenta si es irreversible.
03 El patrón correcto, campo a campo
Contenido del usuario
Borra publicaciones, comentarios, fotos y reseñas, incluidos los archivos en el almacenamiento, no solo sus URLs.
Fila del usuario
Si otras tablas dependen de ella, consérvala como cascarón: email sustituido por un valor aleatorio único, nombre genérico, resto de campos personales vaciados y fecha de borrado.
Identidad de autenticación
Elimina el usuario del proveedor de auth y todas sus sesiones, desde el servidor. Así el mismo email no recupera la cuenta antigua.
Datos con obligación legal
Facturas o pagos que debas conservar se bloquean: se guardan separados, sin uso y con acceso restringido hasta que venza el plazo.
Copias y registros
No copies los datos originales a tablas de auditoría ni logs «por si acaso». Las copias de seguridad deben caducar en un plazo razonable.
Terceros
Borra o anonimiza también al usuario en tu herramienta de email marketing, CRM, analítica o soporte.
04 El flujo que verá el usuario
-
1
Entrada visible
Ajustes o Perfil → «Eliminar cuenta», sin esconderla en submenús.
-
2
Información clara
Qué se borra, qué se conserva por ley y durante cuánto tiempo, y que la acción es irreversible.
-
3
Aviso de suscripción
Si tiene una suscripción activa, explica que debe cancelarla en Apple y ofrece el acceso directo.
-
4
Confirmación
Reautenticación, código por email o escribir una palabra de confirmación para evitar borrados accidentales.
-
5
Borrado y cierre de sesión
Lanza el proceso en el servidor, cierra la sesión en el dispositivo y muestra una pantalla de confirmación.
| Proveedor de auth | Cómo borrar la identidad (siempre en servidor) |
|---|---|
| Supabase | auth.admin.deleteUser con la clave service_role, nunca desde el cliente |
| Firebase | Admin SDK deleteUser en el servidor, o user.delete() tras una reautenticación reciente |
| Clerk | clerkClient.users.deleteUser desde tu backend con la clave secreta |
| Sign in with Apple | Además, revocar los tokens con la API REST de Apple |
05 Implementarlo con Claude Code
Trabaja en una rama nueva y con una copia de la base de datos. Primero un diagnóstico sin cambios; después, la implementación por pasos.
Vamos a preparar esta app para la norma 5.1.1(v) de Apple (borrado de cuenta desde la app) y el derecho de supresión del RGPD. No modifiques nada todavía. Inspecciona el proyecto y devuélveme:
1. Tabla de usuarios y columnas con datos personales.
2. Tablas que dependen del usuario y qué ocurre hoy al borrarlo (cascada, restricción, nada).
3. Contenido generado por el usuario y dónde se guardan sus archivos.
4. Proveedor de autenticación y si se usa Sign in with Apple.
5. Datos que probablemente haya que conservar por ley (facturas, pagos).
6. Servicios externos que reciben datos del usuario.
7. Si existe ya una opción de borrar cuenta y si cumpliría.
Termina con un veredicto (cumple, no cumple, parcial) y la lista de lo que falta por prioridad.
Implementa el borrado de cuenta según el diagnóstico. Stack: [framework, base de datos, proveedor de auth]. Muéstrame cada paso y espera mi visto bueno antes del siguiente:
1. Migración que añade deleted_at a usuarios y una tabla o esquema separado para datos bloqueados por obligación legal.
2. Servicio de borrado en servidor, dentro de una transacción: borra el contenido del usuario y sus archivos, bloquea las facturas, anonimiza la fila (email deleted-<uuid>@deleted.invalid, nombre «Usuario eliminado», resto de campos personales vacíos) sin copiar los valores originales a ningún log.
3. Borrado de la identidad en el proveedor de auth y de todas las sesiones; si hay Sign in with Apple, revocación del token.
4. Pantalla en Ajustes con la información, el aviso de suscripción, la confirmación y el cierre de sesión.
5. Pruebas automáticas que verifiquen que tras el borrado no queda ningún dato personal fuera de la zona bloqueada.
Al final, lista los archivos modificados y cómo probarlo a mano en el simulador.
Revisa la implementación del borrado de cuenta como lo haría un revisor de App Review y un delegado de protección de datos. Busca: datos personales que sobrevivan en logs, cachés, servicios externos o copias; pasos innecesarios que dificulten el borrado; textos poco claros para el usuario; errores si el borrado falla a mitad. Dame la lista por gravedad y una nota de revisión en inglés para App Store Connect explicando dónde está la opción.
Preguntas frecuentes
No necesariamente. Apple acepta procesos que tarden un tiempo razonable si informas del plazo y confirmas al terminar. El RGPD fija con carácter general un mes para responder a una solicitud de supresión.
Sí, como opción adicional. Lo que no se admite es ofrecer solo la desactivación.
Si la app permite crear o tener una cuenta asociada a una persona, revisa la norma con cuidado: Apple la aplica de forma amplia, incluidas las cuentas creadas automáticamente.
No. Apple exige que cualquier usuario, esté donde esté, pueda borrar su cuenta. Puedes reutilizar el mismo flujo para todos.
No. Es una guía técnica. Los plazos de conservación y las obligaciones concretas dependen de tu actividad: confírmalos con tu asesor o delegado de protección de datos.
Sobre el autor
Equipo editorial de appyweb
Marketing, SEO y desarrollo con IA
Especialistas de appyweb en SEO, publicidad, desarrollo web y automatización con IA.