web-dev-qa-db-fra.com

Comment accéder à l'instance de base de données SQLite sur iPhone?

Je développe une application iPhone qui utilise la base de données SQLite intégrée. J'essaie de voir et d'ouvrir la base de données via le sqlite3 Outil de ligne de commande afin que je puisse exécuter SQL arbitraire contre celui-ci.

Quand j'exécute mon application dans le simulateur, le .sqlite Le fichier qu'il crée est situé à ~/Library/Application Support/iPhone Simulator/User/Applications/.

Comment puis-je voir ce fichier sur l'iPhone physique?

36
Keith Fitzgerald

Dans Xcode Sélectionnez Windows-> Organisateur et développez le nœud à côté de votre application dans la section Applications de votre téléphone. Sélectionnez la flèche de pointage noire vers le bas à côté des données d'application et enregistrez le fichier n'importe où sur votre bureau. Votre base de données SQLite devrait être là quelque part.

Quant à savoir comment y retourner au téléphone une fois que vous avez fait, je n'ai aucune idée.

43
Lounges

Instructions pour XCode 6.0.1

  1. Xcode> Ouvrir> Yourproject
  2. Xcode> Produit> Exécuter
  3. Xcode> Fenêtre> Appareils
  4. (Colonne 1 - Sélectionnez) Périphériques> YourDevicename
  5. (Colonne 2 - Sélectionnez) Applications installées> YourAppName
  6. (Colonne 2 - Sélectionnez) COG sous la liste "Applications installées"
  7. (Pop-up - Select) Télécharger le conteneur ...
  8. Enregistrer dans l'emplacement
  9. Faites un clic droit sur 'yourappname.xcappdata'
  10. Sélectionnez "Afficher le contenu de l'emballage"
  11. Appdata> Documents> YourDatabase.sqlite

enter image description here

73
Tr0yJ

Dans Xcode 4, vous faites la même chose que les salons suggérées, ce qui permettra d'enregistrer la structure de fichiers entière pour votre application à votre destination de choix. Renommez le fichier .xcappdata enregistré sur .sqlite afin que vous puissiez l'ouvrir en double-cliquant, vous pouvez trouver le fichier à partir du périphérique.

2
Echilon

Celui-ci fonctionne si vous jailbreaker votre iPhone. Je ne sais pas pourquoi quiconque aurait des problèmes avec jailbreaker leur téléphone comme je l'utilisais pour le développement depuis un certain temps et n'a pas trouvé aucun problème, il n'est pas rare pour SQLite Pour Effectuer différemment sur le périphérique VS Simulator:

  1. La prison rompre votre téléphone (là des tutoriels sur le Web)
  2. Définissez votre niveau utilisateur Cydia sur développeur
  3. Installez SQLite3 dans votre téléphone: Allez à Cydia> Gérer> Sources> Cydia/Telesphoreo> SQLite3
  4. sSH dans votre téléphone à l'aide de Tunnel iPhone Racine SSH Mot de passe: "Alpine"
  5. Taper which sqlite3 Pour vous assurer de l'avoir installé
  6. recherchez l'emplacement de votre dB .. Un point d'arrêt dans votre code devrait vous dire où il se trouve .. Dans mon code, il ressemble à quelque chose comme ça

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

    Notez que si vous exécutez ceci sur le simulateur .. Vous obtiendrez un emplacement comme suit: /Users/admin/Library/Application Support/iPhone Simulator/6.0/Applications/42302574-7722-48C1-BE00-91800443DA7C/Documents/email-524200.edb

Sur l'appareil, cela ressemblera à ceci: /var/mobile/Applications/FB73857F-A822-497D-A4B8-FBFB269A8699/Documents/email-523600.edb

Alors juste taper sqlite3 %dbname% Et vous pouvez exécuter des instructions SQL directement sur votre téléphone .. sans le copier ou autre chose.

2
abbood

Votre question reste un peu vague. "Voir" Dans quel sens? Créez-vous la base de données SQLite? Comment? L'avez-vous placé manuellement dans la zone du système de fichiers du simulateur? Êtes-vous peut-être demandé comment faire cela sur l'iPhone?

Le moyen le plus simple consiste à prélever une base de données vide avec l'outil de ligne de commande SQLITE3, faites-la en tant que ressource de votre application, puis copiez-la dans le dossier Documents de votre application Sandbox. Vous pouvez obtenir le chemin de cheminement de votre dossier de ressources via Nsbundle's Pathforresource: detype: Méthode, puis saisissez le chemin d'accès à votre dossier de vos documents via NSSSearchPathfordIrectoriesIndomains () pour le dossier NsDocumentsDirectory dans NSUserDomainmask, puis copiez le fichier via NsfileManager.

Sinon, vous pouvez utiliser les fonctions de SQLite pour créer une nouvelle base de données à partir de zéro en fournissant des commandes SQL appropriées pour définir son schéma.

1
millenomi

Exactement de la même manière que vous faites sur le simulateur. Il existe très peu de différences (importantes) entre le périphérique et le simulateur et l'accès au fichier et le chargement de la bibliothèque sont pour la plupart des éléments.

1
millenomi

La méthode du conteneur de téléchargement est celle que j'ai trouvée comme la meilleure. Cependant, vous devez faire attention que parfois, si vous essayez de l'envoyer par courrier électronique ou de l'attacher à partir de l'application, le fichier envoyé serait vide.

0
user3349763