·5 min de leitura

Como Navegar em Arquivos SQLite Core Data no Mac

Core Data armazena seus dados em arquivos SQLite, mas a Apple não oferece uma ferramenta visual para inspecioná-los. Depurar dados persistentes significa procurar em contêineres de aplicativos e ler saída SQL bruta.

Você está depurando um problema Core Data em seu aplicativo iOS ou macOS. Os dados parecem incorretos na interface e você precisa ver o que está realmente armazenado no arquivo SQLite subjacente. O editor do modelo Core Data do Xcode mostra seu esquema, mas não permite que você navegue nos dados realmente persistidos. Então você vai procurar — encontre o contêiner do aplicativo, localize o arquivo .sqlite, abra Terminal e comece a executar consultas brutas em tabelas com nomes como ZUSER e ZPOST, onde cada coluna é prefixada com Z e nada corresponde aos seus nomes de entidade intuitivamente.

Arquivos SQLite Core Data Sont Difficiles a Inspecionar

Core Data usa SQLite como seu armazenamento persistente padrão, mas adiciona suas próprias convenções. Os nomes das entidades recebem um prefixo Z no nome da tabela. Os atributos recebem nomes de coluna prefixados com Z. As relações são armazenadas como chaves estrangeiras inteiras em colunas que você pode não reconhecer imediatamente. Existe uma tabela Z_METADATA e uma tabela Z_PRIMARYKEY que Core Data gerencia internamente.

None of this is documented in a way that makes manual inspection easy. You end up running queries likeSELECT * FROM ZUSER;and trying to match the Z-prefixed columns back to your managed object model. In Terminal, with no syntax highlighting and no visual grid, this is tedious.

Xcode não ajuda aqui. Não há navegador SQLite integrado. A ferramenta Instruments pode perfilar operações Core Data, mas não mostrará os dados de linha reais. Você precisa de uma ferramenta separada.

Navegue em Arquivos SQLite Core Data com Tome

Tomeopens Core Data's SQLite files like any other database. Navigate to your app's container, find the .sqlite file, and open it in Tome. Every Z-prefixed table appears in the sidebar. Click one to see all rows and their values in a scrollable grid.

Tome browsing a Core Data SQLite file showing Z-prefixed tables

Veja os Dados Reais

Quando seu aplicativo mostra o valor errado, abra o arquivo SQLite no Tome e verifique os dados realmente armazenados. O valor está errado no banco de dados ou é um bug de busca/exibição? Ter acesso visual aos dados brutos responde essa pergunta em segundos.

Inspecionar Relacionamentos e Metadados

Navegue pela tabela Z_PRIMARYKEY para ver como Core Data rastreia tipos de entidade e chaves primárias. Verifique colunas de chave estrangeira para verificar se os relacionamentos estão armazenados corretamente. Inspecione Z_METADATA para ver o hash de versão do modelo.

Execute Consultas Diagnósticas

Use o editor de consulta SQL do Tome para escrever junções nas tabelas prefixadas com Z do Core Data, filtrar registros específicos ou verificar linhas órfãs que possam indicar um problema de migração. Destaque de sintaxe e preenchimento automático tornam isso mais fácil do que executar consultas brutas no Terminal.

Seguro de Inspecionar, Fácil de Encontrar

For the Simulator, your app's SQLite file lives deep inside~/Library/Developer/CoreSimulator/. For a macOS app, check~/Library/Containers/or~/Library/Application Support/. Once you've located the file, drag it onto Tome's dock icon and start browsing.

Obtenha Tome na Mac App Store

Próximo artigo

Tome

Browse, query, and edit SQLite databases in a native Mac app.

Get Tome on the Mac App Store