v1.7.2
Versão de rede de segurança sobre a v1.7.1. Embora a v1.7.1 tenha corrigido o bug de perda de dados, a v1.7.2 adiciona um backup automático do seu armazenamento SwiftData e uma tela de recuperação "Modo Atualização do App" para que uma futura migração problemática nunca mais apague seus dados silenciosamente. Se a migração falhar, sua biblioteca, saves, BIOS, cheats e configurações são restaurados de um backup com carimbo de data/hora e o app inicia em um modo limitado que permite instalar uma atualização corretiva.
Destaques
- Backup pré-migração automático: Antes de abrir o armazenamento SwiftData, a v1.7.2 copia a tríplice SQLite (
TruchiEmu.sqlite,-wal,-shm) para~/Library/Application Support/TruchiEmu/.migrationBackups/com carimbo de data/hora. No máximo 5 backups recentes são mantidos. - Reversão em falha: Se uma migração de esquema falhar, o app restaura o backup pré-migração mais recente no caminho do armazenamento ativo, para que a próxima versão (corretiva) abra sua biblioteca original em vez de um armazenamento vazio.
- Modo Atualização do App: Quando o armazenamento não pode ser aberto, o app mostra uma tela bloqueada com verificação de atualização em um toque, Time Machine, continuar em modo limitado e sair — seus dados sempre são reportados como intactos.
- Fallback em memória: A UI continua funcional mesmo quando o armazenamento em disco está indisponível, permitindo que a tela de recuperação seja renderizada.
Alterações detalhadas
- Adicionado
SwiftDataContainer.makePreMigrationBackup()erestoreLatestBackup()(cópia/restauração da tríplice SQLite com limpeza de backups antigos) - Adicionado estado
launchSchemaError,createdPreMigrationBackuperunningInMemoryFallbackpara expor falhas de migração - Revisado o caminho de falha do
ModelContainer: em erro, restaura o backup e então usa um armazenamento em memória — sem exclusões destrutivas - Adicionado
AppUpdateModeViewe conectado como primeira view quandolaunchSchemaError != nil, com uma notificação.exitAppUpdateModepara dispensá-lo - Removido o não mais usado
deleteStoreFiles()(seu caminho de excluir-e-repetir foi removido do manipulador de falha) - Adicionadas chaves de localização
updateMode.*(en/es/pt)