我正在通过有线电视在我的真实设备中对应用程序进行调试。我有一个iPhone 6.我想检查我的数据库并使用sqlite3来查询我的结果。其他问题和教程解释只在模拟器中执行此操作,但我使用的是真正的iPhone。
在AppDelegate中,我打印数据库的路径:
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
因此,我从终端获取路径和访问权限并使用sqlite3 DatabaseFile
但是当我在我的设备中调试时,打印的路径不起作用。我尝试使用打印的路径
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
发生此错误是因为我认为这是iOS系统。
答案 0 :(得分:4)
Xcode 10.1
在Xcode中,转到“窗口”>“设备和模拟器”
在设备标签中,选择您的应用程序,然后单击Gear图标,然后单击下载容器...
选择要保存文件的位置,然后单击保存。
转到Finder并找到您刚刚下载的 .xcappdata 文件,然后右键单击并选择在目录中显示包
内容文件夹将打开。您的 .sql 文件位于AppData>库>应用程序支持中
我建议下载用于SQL文件的 数据库浏览器 ,然后打开 .sql 文件。它能创造奇迹!
答案 1 :(得分:3)
在Xcode的最新版本中(我认为是8及以上版本),请使用Window菜单打开它 - >设备。在设备列表中查找设备,然后查看设备的已安装应用程序列表。您将在设备上构建并安装的每个应用程序(以及其他一些应用程序)都会列出。选择您的应用,然后点击列表下方的齿轮菜单。单击"下载"弹出菜单上的项目可让您将应用程序的文档,库和其他目录复制到Mac。
注意:这将下载.xcappdata文件。右键单击它并选择"显示包装内容"将允许您深入查看实际的sqlite文件。
查看链接可能会对您有所帮助 -
答案 2 :(得分:1)
这是另一种方式:
在调试模式下,添加一个UIActivityViewController可以将您的SQLite数据库共享(复制)到Mac或第三方iOS应用(如SQLiteFlow(iOS)),然后您可以调试SQLite数据库。
答案 3 :(得分:0)
使用设备调试应用时,无法实时访问.sqlite文件。尝试在模拟器中完成相同的操作,它将起作用。
答案 4 :(得分:0)
您直接放入文档中的文件应显示在iTunes中的File Sharing内。您可以在本地下载它们并在那里进行编辑。您需要在应用的Info.plist中添加以下内容来启用它:
<key>UIFileSharingEnabled</key>
<true/>
<key>LSSupportsOpeningDocumentsInPlace</key>
<true/>
实际上只有在Files app。
中启用显示这些键时才需要第二个键