Normalmente, o arquivo de armazenamento sqlite para aplicativos de dados principais está localizado em
Biblioteca> Suporte de aplicativo> Simulador de iPhone> 7.1 (ou qualquer versão que você esteja usando)> Aplicativos> (qualquer pasta que contenha seu aplicativo)> Documentos
pasta, mas não consigo encontrar no IOS 8. Eu presumiria que eles simplesmente adicionariam uma pasta 8.0 dentro da pasta iPhone Simulator, mas ela não está lá. Alguém conseguiu localizá-lo?
Respostas:
Consegui localizar o arquivo sqlite, e agora está neste caminho:
(números e letras) representa uma pasta que seria exclusiva do seu aplicativo / computador, mas seria assim: 779AE2245-F8W2-57A9-8C6D-98643B1CF01A
Consegui encontrá-lo acessando appDelegate.m, rolando para baixo até o
método e NSLogging o caminho de retorno, como este:
Isso lhe dará seu caminho exclusivo, tornando-o mais fácil para você, porque é complicado localizá-lo com as 2 pastas / sequências de letras e números sem nome.
Swift 4.2:
fonte
xcrun simctl list
para obter a lista de nomes de simuladores e seus UUIDs.Library/Developer/CoreSimulator/Devices/(numbers and letters)/data/Containers/Data/Application/(numbers and letters)/Documents/
não é mais verdade. Agora você encontra o .sqlite e dois arquivos relacionados emLibrary/Developer/CoreSimulator/Devices/(numbers and letters)/data/Containers/Data/Application/(numbers and letters)/Library/Application Support/
Nenhuma das respostas mencionou a maneira mais simples de realmente obter a localização do arquivo DB.
Ele nem mesmo exige que você modifique seu código-fonte, já que é uma chave de tempo de execução simples no XCode.
Escolha Editar esquema ... próximo ao botão Executar.
Selecione Executar / Argumentos e adicione as duas opções a seguir:
Execute o aplicativo e você verá nos registros:
fonte
Experimente esta Etapa Simples de 3
Copie o código a seguir em
didFinishLaunchingWithOptions
seuappdelegate.m
e adicione um ponto de interrupção antes doNSLog()
Ou em Swift:
2. Abra o Finder-> Go -> Vá para a pasta e cole o caminho copiado da etapa 1
3. Yah !!! Você está em seu destino.
fonte
Se seu aplicativo estiver usando Core Data, é apenas uma questão de pesquisar o arquivo sqlite no Terminal:
Os resultados listarão o caminho completo para as pastas do simulador que contêm seu aplicativo.
fonte
alias myapp_simulator_db="find ~/Library/Developer/CoreSimulator/Devices -name MyApp.sqlite"
. É útil quando você precisa executar este comando repetidamente.Eu hackeei este one-liner ( Gist ):
find ~/Library/Developer/CoreSimulator/Devices/ -name device.plist -exec sh -c "/usr/libexec/PlistBuddy -c \"print UDID\" '{}' | tr '\n' ' '" \; -exec sh -c "/usr/libexec/PlistBuddy -c \"print name\" '{}' | tr '\n' ' '" \; -exec sh -c "/usr/libexec/PlistBuddy -c \"print runtime\" '{}' | sed -n 's/com\.apple\.CoreSimulator.SimRuntime\.\(.*\)/\1/p'" \;
Isso imprime:
Atualizar:
Como alguém apontou aqui , também é possível executar
xcrun simctl list devices
para obter um resultado semelhante:fonte
Se você estiver usando o Swift , isso retornará o caminho absoluto do diretório do documento:
fonte
Eu escrevi um script bash para encontrar a localização da pasta do aplicativo e da pasta de dados do aplicativo dentro de um simulador, você pode baixá-lo aqui . Depois de descompactar o script, você pode navegar até a pasta em que o script está e usá-lo. Se você chamá-lo sem opções, ele fornecerá uma lista de simuladores iOS instalados. Você pode então usar as opções para localizar seu programa. Escrevendo:
encontrará a pasta do aplicativo e a pasta da área inicial do seu aplicativo no simulador do iPad Air iOS 8. Aqui está um exemplo:
Atualizar
Há uma atualização do script original que permite pesquisar com base no tipo de dispositivo usando uma opção -d. Também escrevi outro script que cria uma série de pastas com nomes sensatos para que você possa encontrar seu aplicativo e seus documentos. Este script criará uma pasta chamada iOS_SIMULATORS em sua área inicial e você poderá navegar facilmente até seu aplicativo a partir daí.
fonte
Consegui localizar a pasta de simuladores com a próxima saída do console:
no meu caso foi (Xcode 6 beta)
fonte
Com base nas respostas de Michaels, isso é para Swift 3
fonte
Para Swift 3.0
você pode obter a localização de Coredata no Xcode 8.2
fonte
Após novas atualizações do Xcode, descobri que os arquivos sql agora estão armazenados em uma nova pasta,
/Library/Application Support
esta pode ser uma situação única, mas se você não encontrou os arquivos sql na pasta de documentos, procure-os aqui:~/Library/Developer/CoreSimulator/Devices/[@device_id@]/data/Containers/Data/Application/[@application_id@]/Library/Application Support/
antes de ser armazenado na
Documents
pasta:~/Library/Developer/CoreSimulator/Devices/[@device_id@]/data/Containers/Data/Application/[@application_id@]/Documents/
fonte
Para SWIFT 3:
Copie e cole este código em didFinishLaunchingWithOptions
fonte
Para Swift 3
fonte
Como James Snook , criei meu próprio script para fornecer acesso mais fácil aos aplicativos do simulador. Acho que pode ser útil para muitas pessoas que chegam aqui, além de mim.
Ao contrário de seu script, o meu não é uma ferramenta de pesquisa, ele cria uma estrutura de pastas completa (e legível por humanos) com todos os dispositivos / tempos de execução e coloca links virtuais para os aplicativos neles.
Você pode obtê-lo neste Gist .
Execute-o sempre que instalar um aplicativo no simulador ou apenas execute-o toda vez que for buscar um aplicativo por qualquer motivo (ele será atualizado e abrirá a pasta de dispositivos no Finder).
fonte
Se você não especificou nenhum diretório, você pode usar o código abaixo para imprimir o diretório padrão:
imprimir (NSPersistentContainer.defaultDirectoryURL ())
fonte
Para
iOS 10.0+
você pode usarpersistentContainer.persistentStoreCoordinator.persistentStores.first?.url
Criei a função Utilitário que copia o arquivo sqlite para o local desejado (funciona apenas para simulador).
Você pode usar como
Se você já tiver acesso aos arquivos sqlite, shm e wal, execute os comandos no terminal para mesclar o arquivo WAL no arquivo sqlite.
Depois de executar os comandos acima, você pode ver os dados em seu arquivo sqlite.
Aqui está a definição do método de utilidade para rápido
Para objetivo-c
fonte
Swift 3.x
Localize a função didFinishLaunchingWithOptions em seu arquivo AppDelegate e cole este código lá.
fonte
Swift 4.x
fonte
Swift 4.2
fonte
Você pode usar o código a seguir.
Irá imprimir a localização do armazenamento persistente dos dados principais, ou seja, sqlite
fonte