Domanda

Sto sviluppando un'app per iPhone che utilizza il database SQLite integrato. Sto cercando di visualizzare e aprire il database tramite lo strumento da riga di comando sqlite3 in modo da poter eseguire SQL arbitrario contro di esso.

Quando eseguo la mia app nel simulatore, il file .sqlite che crea si trova in ~ / Library / Application Support / iPhone Simulator / User / Applications / .

Come posso vedere quel file sull'iPhone fisico?

È stato utile?

Soluzione

In Xcode seleziona window- > organizer ed espandi il nodo accanto alla tua applicazione nella sezione applicazioni sul tuo telefono. Seleziona la freccia nera rivolta verso il basso accanto ai dati dell'applicazione e salva il file ovunque sul desktop. Il tuo database sqlite dovrebbe essere lì da qualche parte.

Per quanto riguarda come riprenderlo al telefono una volta terminato, non ne ho idea.

Altri suggerimenti

Istruzioni per Xcode 6.0.1

  1. Xcode > Apri > ProgettoUtente
  2. Xcode > Prodotto > Esegui
  3. Xcode > Finestra > Dispositivi
  4. (Colonna 1 - seleziona) Dispositivi > YourDeviceName
  5. (Colonna 2 - seleziona) App installate > YourAppName
  6. (Colonna 2 - seleziona) Cog nell'elenco "App installate"
  7. (Pop-Up - seleziona) Scarica contenitore ...
  8. Salva in posizione
  9. Fai clic con il tasto destro su "NomeApp.xcappdata"
  10. Seleziona 'Mostra contenuto pacchetto'
  11. AppData > Documenti > YourDatabase.sqlite

inserisci qui la descrizione dell'immagine

In XCode 4, fai lo stesso suggerito da Lounge, che salverà l'intera struttura di file per la tua app nella destinazione che preferisci. Rinomina il file .xcappdata che viene salvato in .sqlite in modo da poterlo aprire facendo doppio clic, quindi puoi trovare il file dal dispositivo.

Questo funziona se esegui il jailbreak del tuo iPhone .. Non so perché qualcuno avrebbe avuto problemi con il jailbreak del telefono in quanto lo sto usando per lo sviluppo da un po 'di tempo e non ho riscontrato problemi, inoltre non lo è non comune per sqlite a eseguire diversamente sul dispositivo vs simulatore:

  1. Il carcere rompe il telefono (ci sono tutorial in tutto il web)
  2. Imposta il tuo livello utente cydia su sviluppatore
  3. Installa sqlite3 sul tuo telefono: vai su cydia > gestisci > fonti > cydia / telesphoreo > sqlite3
  4. ssh nel telefono utilizzando tunnel per iPhone password root ssh: " alpine " ;
  5. Digita quale sqlite3 per assicurarti di averlo installato
  6. cerca la posizione del tuo db .. un punto di interruzione nel tuo codice dovrebbe dirti dove si trova .. nel mio codice sembra qualcosa del genere

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

    Nota che se lo esegui sul simulatore .. otterrai una posizione come la seguente: / Users / admin / Library / Application Support / iPhone Simulator / 6.0 / Applications / 42302574-7722-48C1-BE00-91800443DA7C / Documents / email-524200.edb

Sul dispositivo sarà simile al seguente: /var/mobile/Applications/FB73857F-A822-497D-A4B8-FBFB269A8699/Documents/email-523600.edb

Quindi digita sqlite3% dbname% e puoi eseguire istruzioni sql direttamente sul tuo telefono .. senza copiarlo o altro.

Esattamente allo stesso modo del simulatore. Esistono pochissime (importanti) differenze tra il dispositivo e il simulatore e l'accesso ai file e il caricamento della libreria non sono in gran parte parte di essi.

La tua domanda rimane un po 'vaga. & Quot; Vedere " in che senso? Crei il database SQLite? Come? L'hai inserito manualmente nell'area del filesystem del simulatore? Stai forse chiedendo come farlo su iPhone?

Il modo più semplice è precreare un database vuoto con lo strumento da riga di comando sqlite3, averlo come risorsa nell'applicazione, quindi copiarlo nella cartella documenti della sandbox dell'applicazione. È possibile ottenere il percorso della cartella delle risorse tramite pathForResource di NSBundle: ofType: method, quindi acquisire il percorso della cartella Documents tramite NSSearchPathForDirectoriesInDomains () per la cartella NSDocumentsDirectory nella NSUserDomainMask, quindi copiare il file tramite i metodi di NSFileManager.

Altrimenti, è possibile utilizzare le funzioni di SQLite per creare un nuovo database da zero fornendo i comandi SQL appropriati per definirne lo schema.

Il modo più semplice per farlo è utilizzare iExplorer per scaricare il file dalla tua app. e quindi utilizzare SQLite Professional di sola lettura per leggere il file. Anche se non è in tempo reale, ma almeno è gratuito. : -)

Il metodo Download Container è quello che ho trovato essere il migliore. Tuttavia, devi fare attenzione che alcune volte, se provi a inviarlo via e-mail o allegarlo dall'app, il file inviato sarà vuoto.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top