我发布此信息是为了帮助那些在尝试查找使用Appcelerator时在iOS模拟器上使用的sqlite数据库时遇到的同样事情的用户。
xCode版本: 8.3.x
Appcelerator Studio: 4.8.x / SDK: 6.x
问题/测试用例:我需要测试从sqlite数据库加载数据到远程mySQL服务器的几次迭代。我想在文件夹中放置一个现有的sqlite数据库文件,让模拟器识别这个文件,这样我就可以用它进行测试/开发。
问题:在iOS模拟器上存储的sqlite数据库在哪里,我可以将现有的sqlite数据库放在此文件夹中并让我的应用程序识别它吗?
答案:是
实现的步骤: 这就是我所做的定位模拟器/设备寻找的位置
1。通过在index.js(或您选择的其他文件)中添加此代码,找出您的应用程序在文件系统中的位置。
Ti.API.info("app directory: " + Ti.Filesystem.applicationDataDirectory);
这将为您提供长文件系统目录位置: / Users / [username] / Library / Developer / CoreSimulator / Devices / 96662E38-C659-4568-B53F-C32DC6B2B73D / data / Containers / Data / Application / 96662E38-C659-4568-B53F-C32AB6B2C03D / Documents /
2。这几乎是正确的位置,但sqlite数据库实际上存储在以下位置:
/ Users / [username] / Library / Developer / CoreSimulator / Devices / 96662E38-C659-4568-B53F-C32DC6B2B73D / data / Containers / Data / Application / 96662E38-C659-4568-B53F-C32AB6B2C03D / Library / Private Documents / [filename] .sql
第3。您可以使用此位置放置现有的sqlite数据库文件并对其执行sql语句。
4。我确定你可以在你的应用程序中引用另一个目录,但我正在寻找默认的存储目录,因为我的应用程序使用了这个位置。
希望这有助于某人,因为我正在寻找测试/开发的这一特定功能。
快乐的编码!
答案 0 :(得分:0)
获取数据库的简单方法是将其添加到资源文件夹或资源目录中的子文件夹。然后,您只需调用Ti.Database.install()方法。这会将数据库复制到您找到的模拟器位置。这种方法的优点是你找不到每个iOS模拟器的位置(即iPhone 5,6,6 +,7 ......)。
当我需要使用SQLite管理器或其他此类程序在外部查询数据库时,我会使用您的方法。
您可以在此处阅读更多内容http://docs.appcelerator.com/platform/latest/#!/guide/Working_with_a_SQLite_Database