问题标签 [encrypted-core-data-sql]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
805 浏览

core-data - SQLCipher, encrypted-core-data and iOS - are two .sqlite-files normal?

I'm using SQLCipher to encrypt my database as there's sensitive information. Everything seems to work, I'm just irritated because I've got two .sqlite-files right now:

The first one is encrypted, the second isn't - but it doesn't contain any information. So it seems to work as there's no way to get to the information, but I just wanted to ensure that this is correct.

0 投票
1 回答
209 浏览

ios - 加密核心数据的 SQLite 语法错误

很长一段时间以来,我一直遇到语法错误,我不确定是什么原因造成的。调试日志如下:

Order 的类型为 Integer 16,供您参考,我目前正在使用 github 上的 Encrypted-Core-Data。有什么想法吗?

0 投票
0 回答
141 浏览

ios - CoreData 无法使用 encrypted-core-data 完成故障

我正在使用encrypted-core-data来加密静态数据。只要应用程序没有崩溃或手动停止,它就可以很好地工作。应用程序在失败后无法访问核心数据对象并抛出异常

1 月 18 日 13:46:04 测试 TestDemo[4504]:名称:NSObjectInaccessibleException 1 月 18 日 13:46:04 测试 TestDemo[4504]:原因:CoreData 无法满足 '0x174026f00 x-coredata://96535FDB-865C- 的故障42B7-A1EE-ED80C705EC1D/TestSessionsCollection/p1'

根据下面的链接,看起来对象的基础数据已从持久存储中删除。 https://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/CoreData/Articles/cdTroubleshooting.html

因此,由于某种原因,当应用程序崩溃/停止时,数据会丢失/损坏。我不确定是否需要在未能防止核心数据损坏时关闭/重置任何上下文。

作为恢复,使用新对象重新初始化工作正常。

有人可以让我知道如何诊断这个问题吗?

0 投票
0 回答
598 浏览

ios - 使用加密核心数据进行渐进式迁移

源参考:自定义核心数据迁移

我一直在使用 github 模块(Gavin Black 的加密核心数据),我注意到自动轻量级迁移有以下限制

1) 如果设备的数据模型比最新模型落后一个以上版本,或者

2) 没有为当前版本创建数据模型到最新版本

自动轻量级迁移不会按预期成功迁移。我最终在谷歌上搜索并发现粘贴在顶部的资源证实了我的怀疑。

提出了一种称为渐进式迁移的解决方案,它成功地适用于常规 SQLite。但是,当我尝试将此实现带到 ECD 时,我遇到了问题。例外情况如下:

由于未捕获的异常'NSInternalInconsistencyException'而终止应用程序,原因:':An -observeValueForKeyPath:ofObject:change:context:已收到但未处理的消息。关键路径:migrationProgress 观察到的对象:变化:{ kind = 1; 新=“0.02083333”;}

有谁之前经历过这个吗?

0 投票
1 回答
890 浏览

ios - 具有单个持久存储协调器的多个数据模型

我继承了一个使用 Core Data 的 iOS 项目。这个项目有8 种不同的数据模型,不用说项目不大,我看不出有什么好的理由将实体拆分为这么多数据模型。

我正在尝试将加密核心数据与当前数据模型和持久存储协调器一起使用,但它根本不起作用。每个数据模型都是这样初始化的:

因此,每个数据模型都有自己的托管对象模型和自己的持久存储协调器及其持久存储和上下文。

我看到的是加密核心数据(ECD)只是在第一个创建的持久存储中创建表。我怀疑 ECD 只处理添加到单个协调器的持久存储。基于这个假设,我想知道是否可以创建一个协调器并向其添加多个商店。

我对 Core Data 不是很熟悉,但我看不出这怎么可能,因为协调器是用托管对象模型初始化的(它指向一个特定的数据模型文件,其中只包含一组实体的总数)项目)。

有任何想法吗?我真的很想避免将所有数据模型合并到一个单独的模型中,以便使用单个托管对象模型和协调器(实际上我想这样做,但我相信它会破坏一切,我真的不必现在是时候了)。

0 投票
1 回答
237 浏览

ios - 无法使用 EncryptedCoreData 检索以前的数据

应用程序重新启动后,核心数据中的数据未正确返回。获取特定记录的获取请求也会失败。重新启动应用程序后,FetchRequestController 不会抓取任何记录。

我正在使用encrypted-core-data来保护我的项目中的数据。我能够解析数据并将其保存到 managedObjectContext。我的代码看起来像这样

该代码可以正常工作。我的persistentStoreCoordinatormanagedObjectContext代码是一样

当我在关闭应用程序之前打印 obj 时,它会打印

但是在应用程序重新启动后,当我们获取所有对象并打印时,它会像这样打印

如果我试图获得财产 NSString *string = obj.uniqueId

2016-01-24 23:59:11.795 Chare Dev[10556:158617] CoreData:警告:NSManagedObjectContext 委托覆盖错误处理行为以静默删除 ID 为“0x7feb02de5c10”的对象,并用 nil/0 替换所有属性值而不是抛出

如果我使用NSSQLiteStoreType而不是EncryptedStoreType一切正常。你能指导我我做错了什么吗?

因为由于上述问题,数据库记录被多次添加,并且获取请求无法获取具有 uniqueId 的托管对象。

0 投票
1 回答
189 浏览

ios - 使用 Encrypted CoreData 实现时是否需要 shm 和 wal 文件?

我正在使用推荐的加密CoreData 框架

我注意到文档目录中缺少 shm 和 wal 文件。我做了一些研究,似乎它们是 SQLite 数据库使用的临时文件。

他们是出于安全原因被删除还是我做错了什么?

这是我的 CoreData Stack 中的持久存储协调器。

0 投票
0 回答
75 浏览

objective-c - Swift 2 处理多级 Objective C 错误传递

我正在使用Encrypted Core Data并希望在初始化时出现错误。标Objective C头声明:

但是,Swift 桥接头将其解释为:

请注意,它请求的是类型的对象()而不是NSError.

我试图这样做:

但这会导致错误提示类型不正确(并且不能使用&

如果我改为尝试(哈哈!)这种语法,使用空闭包作为其奇怪请求的占位符:

它可以编译,但是当生成错误时,它不会被捕获,尽管 ECD 确实为我记录了错误(但这没有帮助)。尝试, error: {}()从函数调用中消除会返回一个警告,该函数现在不会抛出,这仍然对我没有帮助。

产生错误的 Objective C 代码是:

在这种情况下捕获错误的正确语法是什么?

0 投票
1 回答
60 浏览

core-data - xcode8 beta4 未生成 managedObjectContext

我正在使用一个空白的核心数据项目并尝试从这个示例中复制代码。

https://www.and rewcbancroft.com/2015/02/18/core-data-cheat-sheet-for-swift-ios-developers/

由于没有 managedContext 我无法继续。

我是IOS编程的新手。请任何人都可以分享一个我可以开始的简单示例。但我需要 Xcode8 beta4 版本。我尝试了许多其他示例,但是一旦将它们转换为当前版本,它们就无法正常工作。

在此处输入图像描述

0 投票
1 回答
1513 浏览

ios - 如何快速使用 EncryptedCoreData 进行加密?

我在弄清楚如何加密我的 sqlite 数据库时遇到了一些麻烦。我正在使用核心数据和以下项目:

https://cocoapods.org/?q=EncryptedCoreData

我想不通的是我应该如何使用这个项目来加密我的数据库。我已经安装了项目,我可以导入库 EncryptedCoreData。但是,我没有找到任何关于 swift 的实际示例的信息。在我的 appdelegate 我有以下代码

有人可以提供一个关于我应该如何初始化容器的例子吗?