简体   繁体   中英

How to open database sqlite file on iPhone real device?

I'm debbuging a app in my real device by cable. I've a iPhone 6. I want check my database and operate with sqlite3 to query my results. The other questions and tutorials explain to do this only in simulator but I'm using a real iPhone.

In AppDelegate, I prints the path of database:

print(NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true).last! as String) /Users/myname/Library/Developer/CoreSimulator/Devices/DAE93E57-7004-45F6-9B93-E79CA1AEEEFA/data/Containers/Data/Application/D7A4F27E-6F11-4941-A1B0-0337ABF788AB/Documents

So, I take the path and access from terminal and access my database with sqlite3 DatabaseFile

But when I debugging in my device, the path that's printed not works. I tried use the printed path cd /var/mobile/Containers/Data/Application/3257D423-C198-41A5-B29D-B31E99F84F34/Documents /usr/bin/CD: line 4: cd: /var/mobile/Containers/Data/Application/3257D423-C198-41A5-B29D-B31E99F84F34/Documents: No such file or directory

This error happens because this is of iOS system, I think.

Xcode 10.1

In Xcode, go to Window > Devices and Simulators

在此处输入图片说明

In the Devices tab, select your application, then click on the Gear icon, then click Download Container... 在此处输入图片说明

Choose the location you want to save the file, then click on Save .

Go to Finder and find the .xcappdata file you just downloaded, then right click and select Show Package in Contents

在此处输入图片说明

The contents folder will open. Your .sql file is in AppData > Library > Application Support

在此处输入图片说明

I recommend downloading DB Browser for SQL File , and opening the .sql file with that. It works wonders!

In recent versions of Xcode (8 and up, I think), open this with Window menu --> Devices. Find the device in the device list and look at the installed apps list for the device. Each app that you've built and installed on the device will be listed (and maybe some others). Select your app and click the gear menu below the list. Clicking the "Download" item on the pop-up menu will enable you to copy the app's documents, library, and other directories to your Mac.

NB: This will download an .xcappdata file. Right-clicking on that and selecting "Show Package Contents" will allow you to drill down to the actual sqlite file.

Here's another way:

In debug mode, add a UIActivityViewController to share(copy) your SQLite database to a Mac or to a third party iOS app like SQLiteFlow(iOS), then you can debug your SQLite database.

You cannot access the .sqlite file in realtime when you debug your app using a device. Try accomplishing the same in the simulator and it will work.

Files that you've placed in the Documents directly should show up in File Sharing inside iTunes. You can download them locally and edit them there. You'll need to enable it in your app's Info.plist by adding:

<key>UIFileSharingEnabled</key>
<true/>
<key>LSSupportsOpeningDocumentsInPlace</key>
<true/>

The second key is actually only required if you want to enable showing these in the Files app .

If you are looking for a tool that import sqlite file from iOS app document folder to Mac PC, install Apple configurator 2 ( https://apps.apple.com/us/app/apple-configurator-2/id1037126344?mt=12 )

Connect your device to Mac and in Apple configurator follow below steps

Double click on the Device

Choose Actions > Export > Documents.

Select the sqlite file inside app to export, then click Choose. Save the items to the desired location in Mac.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM