bug: Data loss risk on iOS - the Database folder is excluded from backups
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 2/5
- Tiempo estimado
- 1-3 horas
- Aptitud para principiantes
- 42/100
- Tipo de issue
- Error
- Claridad
- Bien especificado
- Estado de actividad
- Estancado
- Stack tecnológico
- ios, sqlite, swift
- Área
- databases, mobile-dev
Línea de trabajo
Empieza en ios/Plugin/Utils/UtilsFile.swift alrededor de la línea 50, donde se crea el directorio iOSDatabaseLocation y se establece su indicador de copia de seguridad. Confirma cómo se marca Library/Database para las copias de seguridad y luego haz que el comportamiento preserve las bases de datos durante las copias de seguridad de iCloud, las copias de seguridad del ordenador y la transferencia del dispositivo. Se considera terminado cuando el directorio de la base de datos ya no está excluido de las copias de seguridad.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Plugin version:
6
Platform(s):
iOS
Current behavior:
On iOS, our app specifies it's own iOSDatabaseLocation directory:
Library/Database
But I see that, just after the directory is created, the isExcludedFromBackup flag on that directory is set to true. See https://github.com/capacitor-community/sqlite/blob/891377f344924de80003287f172de24984e8b74b/ios/Plugin/Utils/UtilsFile.swift#L50
Because of this, none of the databases in that directory will ever get backed up, to iCloud or to a computer. I'm pretty sure that this will also exclude the files from a direct device to device transfer.
As a mitigation, our app explicitly sets the flag back to false, but we weren't expecting the behaviour. As a result, our users are at risk of data loss if they transfer data to a new iPhone before updating our app. Not cool.
Solution
I see that historically, the flag was set purposefully to hide the database from iTunes (https://github.com/capacitor-community/sqlite/issues/207), but that is completely misguided as in practice, there's now no way for the dbs in that folder to be transferred to other devices as long as the flag remains...
Happy to discuss. iOS backups are a specialty of mine, used to work in that domain specifically.
- Lenguaje dominante
- Swift
- Estrellas
- 663
- Forks
- 159
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Tiene una plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de capacitor-community/sqlite
-
Dificultad 3/5 1-2 días Aptitud para principiantes 72/100
capacitor-community/sqlite#700 · 1 comentario · 1 reacción ·
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 25/100
capacitor-community/sqlite#693 · 7 reacciones ·
-
bug/fix needs: triage
Dificultad 3/5 1-2 días Aptitud para principiantes 68/100
capacitor-community/sqlite#690 ·
-
feature needs: triage
Dificultad 3/5 1-2 días Aptitud para principiantes 55/100
capacitor-community/sqlite#689 ·
-
bug/fix needs: triage
Dificultad 3/5 1-2 días Aptitud para principiantes 45/100
capacitor-community/sqlite#685 ·
Todos los issues de capacitor-community/sqlite
Issues similares
-
Windows: `update --apply` still kills itself via `Stop-CuaDriverDaemons` (regression of #2803)Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 87/100
Los mantenedores suelen responder en 1 día
-
area: build-and-ci bug difficulty:1 good first issue help wanted S3: minor
Dificultad 2/5 1-3 horas Aptitud para principiantes 86/100
manaflow-ai/cmux#16193 ·
Los mantenedores suelen responder en 1 día
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 84/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 85/100
permissionlesstech/bitchat#1743 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 70/100
521xueweihan/HelloGitHub#3816 ·