v1.7.2
Versión de red de seguridad sobre v1.7.1. Aunque v1.7.1 corrigió el bug de pérdida de datos, v1.7.2 añade una copia de seguridad automática de tu almacén SwiftData y una pantalla de recuperación "Modo Actualización de App" para que una futura migración problemática nunca pueda borrar tus datos en silencio. Si la migración falla, tu biblioteca, saves, BIOS, cheats y ajustes se restauran desde una copia con marca de tiempo y la app arranca en un modo limitado que te permite instalar una actualización correctiva.
Destacados
- Copia de seguridad pre-migración automática: Antes de abrir el almacén SwiftData, v1.7.2 copia la tripleta SQLite (
TruchiEmu.sqlite,-wal,-shm) en~/Library/Application Support/TruchiEmu/.migrationBackups/con marca de tiempo. Se conservan como máximo 5 copias recientes. - Reversión en fallo: Si una migración de esquema falla, la app restaura la copia pre-migración más reciente en la ruta del almacén activo, para que la siguiente versión (correctiva) abra tu biblioteca original en lugar de un almacén vacío.
- Modo Actualización de App: Cuando el almacén no se puede abrir, la app muestra una pantalla bloqueada con comprobación de actualización en un toque, Time Machine, continuar en modo limitado y salir — tus datos siempre se reportan como intactos.
- Respaldo en memoria: La UI sigue funcionando aunque el almacén en disco no esté disponible, permitiendo que la pantalla de recuperación se renderice.
Cambios detallados
- Añadido
SwiftDataContainer.makePreMigrationBackup()yrestoreLatestBackup()(copia/restauración de la tripleta SQLite con purga de copias antiguas) - Añadido estado
launchSchemaError,createdPreMigrationBackupyrunningInMemoryFallbackpara exponer fallos de migración - Revisada la ruta de fallo de
ModelContainer: en error, restaura la copia y luego usa un almacén en memoria — sin borrados destructivos - Añadido
AppUpdateModeViewy conectado como primera vista cuandolaunchSchemaError != nil, con una notificación.exitAppUpdateModepara cerrarlo - Eliminado el ya no usado
deleteStoreFiles()(su ruta de borrar-y-reintentar se quitó del manejador de fallo) - Añadidas claves de localización
updateMode.*(en/es/pt)