繁体   English   中英

Xcode模拟器而不是ios设备拾取sqlite文件

[英]sqlite file gets picked up by the xcode simulator but not the ios device

我有一个sqlite文件,可以在模拟器和设备上正常工作。 在Mac上的我的应用程序文件夹下,我还可以看到文件-coredata.sqlite。

我创建了一个新的coredata.sqlite。 之后,我不得不将其复制到针对不同目标(iphone 5 vs 6 vs 6+)不同的路径,并沿以下方向看:

    .../Library/Developer/CoreSimulator/Devices/26292D7B-5001-497E-B23B-99455953F5F4/data/Containers/Data/Application/64849BCC-B86B-45DE-818F-3E67346C4893/Documents/

只是将新的sqlite复制到存在旧sqlite的apps文件夹中是行不通的。 将其复制到上述文件夹后,将其修复为模拟器。

现在,当我连接到ios设备时,它找不到新的sqlite。 如果我将旧的sqlite复制回apps文件夹,它仍然可以工作,但是将新的sqlite复制到apps文件夹,模拟器的各种目标等都不会影响ios设备。 显示正在查看的路径显示:

    /var/mobile/Containers/Data/Application/80302FBA-6D45-4843-A891-E10A7ED4D445/Documents/CoreData.sqlite

设备从哪里拾取sqlite的任何帮助? 由于它可以在模拟器上运行,而较早的版本也可以在设备上运行,因此代码看起来还可以。 我该怎么做才能挑选新的sqlite?

设备将从mainBundle选择文件。 在执行与数据库相关的功能时,我们将db文件从mainBundle复制到DocumentDirectory ,从而使其可编辑。

您所做的是手动将sqlite文件复制到应用程序数据文档文件夹。 您实际上应该将文件添加到特定目标,然后它将在构建过程中复制文件。

您的新coredata.sqlite文件未附加到任何目标。 检查内部构建阶段,看是否存在,否则添加它。 此外,捆绑软件中不应包含两个具有相同名称的文件,因此请从目标中删除先前的文件。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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