Pergunta

Estou desenvolvendo um aplicativo para iPhone que usa o built-in banco de dados SQLite. Estou tentando ver e abrir o banco de dados através da ferramenta de linha de comando sqlite3 para que eu possa executar SQL arbitrárias contra ela.

Quando eu executar o meu aplicativo no simulador, o arquivo .sqlite ele cria está localizado na ~/Library/Application Support/iPhone Simulator/User/Applications/.

Como posso ver esse arquivo no iPhone físico?

Foi útil?

Solução

No Xcode selecionar Janela-> organizador e expanda o nó ao lado de seu aplicativo na seção aplicativos em seu telefone. Selecione a apontar para baixo seta preta ao lado de dados de aplicativos e salvar o arquivo em qualquer lugar em seu desktop. Seu banco de dados SQLite deve estar em algum lugar.

Quanto à forma como proceder para obter-lo de volta no telefone uma vez que seu feito eu não tenho idéia.

Outras dicas

As instruções para Xcode 6.0.1

  1. Xcode> Open> YourProject
  2. Xcode> produto> Executar
  3. Xcode> Janela> Dispositivos
  4. (Coluna 1 - select) Dispositivos> YourDeviceName
  5. (Coluna 2 - selecionar) Instalada Aplicativos> YourAppName
  6. (Coluna 2 - selecionar) Cog em 'Instalado Apps' lista
  7. (Pop-Up - select) Baixar Container ...
  8. Save a localização
  9. clique direito em 'YourAppName.xcappdata'
  10. Selecione 'Mostrar conteúdo do pacote'
  11. AppData> Documentos> YourDatabase.sqlite

enter descrição da imagem aqui

No Xcode 4, você fazer o mesmo que Lounges sugeriu, que vai salvar toda a estrutura do arquivo para o seu aplicativo para o seu destino de eleição. Renomeie o arquivo .xcappdata que é salvo .sqlite para que possa abri-lo clicando duas vezes, então você pode encontrar o arquivo a partir do dispositivo.

Este funciona se você desbloquear seu iPhone .. Eu não sei por que alguém iria ter quaisquer problemas com jailbreaking seu telefone como eu tenho usado para o desenvolvimento por algum tempo e não encontrou problemas, também não é incomum para SQLite para desempenho diferente na dispositivo vs simulador:

  1. Jail quebrar o seu telefone (não tutoriais em toda a web)
  2. Defina o seu nível de usuário Cydia para desenvolvedor
  3. Instale sqlite3 para o telefone: vá para Cydia> Gerir> fontes> Cydia / Telesphoreo> sqlite3
  4. ssh em seu telefone usando túnel iphone senha ssh root: "alpine"
  5. Tipo which sqlite3 para garantir que você tenha instalado
  6. Procure a localização do seu db .. um ponto de interrupção em seu código deve dizer-lhe onde ele está localizado .. no meu código parece algo como isto

    NSArray *paths = NSSearchPathForDirectoriesInDomains (NSDocumentDirectory, NSUserDomainMask, YES); 
    NSString *documentsDirectory = [paths objectAtIndex: 0]; 
    NSString *pathName = [documentsDirectory stringByAppendingPathComponent:filename];
    return pathName;
    

    Observe que se você executar este no simulador .. você vai ter um local como o seguinte: /Users/admin/Library/Application Support/iPhone Simulator/6.0/Applications/42302574-7722-48C1-BE00-91800443DA7C/Documents/email-524200.edb

No dispositivo que será parecido com este: /var/mobile/Applications/FB73857F-A822-497D-A4B8-FBFB269A8699/Documents/email-523600.edb

Em seguida, basta digitar sqlite3 %dbname% e você pode executar instruções SQL diretamente em seu telefone .. sem copiá-lo sobre ou o que quer.

Exatamente da mesma forma que você faz no simulador. Há muito poucas (importantes) diferenças entre o dispositivo e simulador, e acesso a arquivos e carregamento de biblioteca são, na maior parte não faz parte deles.

A sua questão continua a ser um pouco vago. "Veja" em que sentido? Você cria o banco de dados SQLite? Quão? Você já colocou manualmente na área de sistema de arquivos do Simulator? Você talvez perguntando como fazer isso no iPhone?

A maneira mais fácil é PreCreate um banco de dados vazio com a ferramenta de linha de comando sqlite3, tê-lo como um recurso em seu aplicativo, em seguida, copiá-lo na pasta de documentos do seu sandbox do aplicativo. Você pode obter o caminho para os recursos de pasta via pathForResource de NSBundle: OfType:. Método, em seguida, pegue o caminho para a pasta de documentos via NSSearchPathForDirectoriesInDomains () para a pasta NSDocumentsDirectory na NSUserDomainMask, em seguida, copie o arquivo através de métodos de NSFileManager

Caso contrário, você pode usar funções do SQLite para criar um novo banco de dados a partir do zero, fornecendo comandos SQL apropriadas para definir o seu esquema.

A maneira mais fácil de fazê-lo de longe está usando iExplorer para baixar o arquivo de seu aplicativo. e então usar SQLite Professional somente leitura para ler o arquivo. Ainda pensei que não é em tempo real, mas pelo menos é livre. : -)

O Método de download Container é o que eu encontrei para ser o melhor. No entanto, você tem que ter cuidado que algumas vezes, se você tentar e-mail ou anexá-lo de dentro do aplicativo, em seguida, o arquivo que é enviado para fora seria vazia.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top