iBooks 数据库设计分析
很久以前还吐槽过 iBooks 的数据库表设计特别鬼畜,实际上后来我发现我错了。为什么错了呢?但是我为了研究如何自定义 iBooks 丛书集的时候[1],用 SQLite 的方式打开的数据库文件,导致我看到了一堆大写字母拼写成的数据项名字。而实际上正确的打开方式是用 Xcode 的 Core Data 组件打开。
获取数据库 Schema
我们可以通过「显示包内容」的方式进入到 iBooks 软件的内部文件夹,查找拿到编译过的数据库 Schema 文件(.mom)。或者直接在命令行输入 cd /Applications/iBooks.app/Contents
。
或者也可以使用 Core Data Editor[2] 这个软件来找我们需要的数据库表设定信息。
然后新建一个 Xcode 工程项目,再工程里面导入这些文件。
最后就可以还原得到原始的 Core Data 数据库数据项设定了。
之后就可以通过程序来读写 iBooks 的数据库了。
数据库数据项
'\0'
图中的 iBooks Helper 项目是我计划做的一个 iBooks 辅助软件。为 iBooks 扩展一些功能,比如根据 epub 内部 metadata 提供的信息自动分组丛书集,以及更多的功能。
但是由于最近忙着课程和实习应聘,展示搁置,如果看到这篇文章对这个东西感兴趣的朋友,可以联系我一起讨论更多细节。
(未完成)
iBooks 自定义丛书集 /ibooks-custom-series/ ↩︎
Core Data Editor 软件下载地址 https://github.com/ChristianKienle/Core-Data-Editor ↩︎