我正在开发一个使用内置SQLite数据库的iPhone应用程序。我正在尝试通过 sqlite3 命令行工具查看和打开数据库,这样我就可以对它执行任意SQL。

当我在模拟器中运行我的应用程序时,它创建的 .sqlite 文件位于〜/ Library / Application Support / iPhone Simulator / User / Applications /

如何在物理iPhone上看到该文件?

有帮助吗?

解决方案

在Xcode中选择窗口 - >组织者,然后在手机的应用程序部分中展开应用程序旁边的节点。选择应用程序数据旁边的黑色向下箭头,并将文件保存在桌面上的任何位置。你的sqlite数据库应该在某处。

关于如何在完成后重新使用手机,我不知道。

其他提示

Xcode 6.0.1的说明

  1. Xcode>打开> YourProject
  2. Xcode>产品>运行
  3. Xcode>窗口>设备
  4. (第1列 - 选择)装置> YourDeviceName
  5. (第2栏 - 选择)已安装的应用> YourAppName
  6. (第2栏 - 选择)Cog在“已安装的应用”列表
  7. (弹出式窗口 - 选择)下载容器......
  8. 保存到位置
  9. 右键点击“YourAppName.xcappdata”
  10. 选择“显示包装内容”
  11. AppData>文件> YourDatabase.sqlite

在XCode 4中,您可以像所建议的休息室一样,这会将您应用的整个文件结构保存到您选择的目的地。重命名保存为.sqlite的.xcappdata文件,这样您可以通过双击打开它,然后就可以从设备中找到该文件。

如果你越狱你的iPhone,这个有用吗。我不知道为什么有人会越狱他们的手机有任何问题,因为我已经使用它开发很长一段时间并且发现没有问题,也不是不常见的sqlite 执行不同的设备与模拟器:

  1. Jail打破你的手机(网上有教程)
  2. 将您的cydia用户级别设置为开发人员
  3. 将sqlite3安装到手机中:转到cydia>管理>来源> cydia / telesphoreo> sqlite3的
  4. 使用 iphone tunnel root ssh密码将ssh插入手机:“alpine” ;
  5. 输入 sqlite3 以确保安装
  6. 浏览到您的数据库的位置..代码中的断点应该告诉您它的位置..在我的代码中它看起来像这样

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

    请注意,如果您在模拟器上运行它...您将获得如下位置: / Users / admin / Library / Application Support / iPhone Simulator / 6.0 / Applications / 42302574-7722-48C1-BE00-91800443DA7C / Documents / email-524200.edb

  7. 在设备上它看起来像这样: <代码> /var/mobile/Applications/FB73857F-A822-497D-A4B8-FBFB269A8699/Documents/email-523600.edb

    然后只需输入 sqlite3%dbname%即可直接在手机上执行sql语句..无需复制或其他任何内容。

与您在模拟器上完全相同的方式。设备和模拟器之间的差异很小(很重要),文件访问和库加载大部分都不是它们的一部分。

你的问题仍然有点模糊。 &QUOT;参见&QUOT;凭什么?你创建SQLite数据库了吗?怎么样?您是否已将其手动放入模拟器的文件系统区域?您是否可能会问如何在iPhone上执行此操作?

最简单的方法是使用sqlite3命令行工具预创建一个空数据库,将其作为应用程序中的资源,然后将其复制到应用程序沙箱的文档文件夹中。您可以通过NSBundle的pathForResource:ofType:方法获取资源文件夹的路径,然后通过NSUserDomainMaskMask中NSDocumentsDirectory文件夹的NSSearchPathForDirectoriesInDomains()获取Documents文件夹的路径,然后通过NSFileManager的方法复制文件。

否则,您可以使用SQLite的函数通过提供适当的SQL命令来定义其架构,从头开始创建新数据库。

到目前为止,最简单的方法是使用iExplorer从您的应用程序下载文件。然后使用 SQLite Professional只读阅读文件。 甚至认为它不是实时的,但至少它是免费的。 : - )

下载容器方法是我发现的最好的方法。但是,您必须要小心,如果您尝试通过电子邮件发送或从应用程序中附加它,那么发出的文件将为空。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top