我在OSX应用程序中使用Realm 0.98.6和Xcode 7.3来创建加密的域数据库,然后制作一个干净的副本放在我的包中。原始数据库随Realm Browser一起打开(在粘贴密钥后),但副本不会。
这是我用来创建两个数据库的代码。调用的例程中没有写入,只是混合了realm.add
和realm.append
来创建相关对象的集合:
let config = Realm.Configuration(path: realmTempFile, encryptionKey: key)
let realm = try! Realm(configuration: config)
try! realm.write {
loadAuthors(authorFile, realm: realm)
loadVolumes(volumesFile, realm: realm)
}
try! realm.writeCopyToPath(realmFile, encryptionKey: key)
如果我从encryptionKey
和config
中删除writecopy
个参数,则两个数据库都可以使用Realm浏览器打开。
如果重要,我会在每次尝试之前使用Finder(以及相关的锁定文件)删除db文件。 (我还尝试更改名称以缓解任何临时文件。)。这两个文件之间唯一明显的区别是原始版本的7.5和6.9 MB文件大小。并且'复制'分别(即,正如预期的那样,副本略小)。
我喜欢一些建议!它是一个非常普通的< 400行的程序,可以加载数据库,以便以后在iOS和iOS中使用。 Android应用。我可以随时发送更大的文件,但它让我对我可能不知道的其他内容保持警惕...提前感谢!