备份与导入
导出、导入数据并同步到日历
蛋日提供三类数据流:完整备份、通用导出和分享包导入。不同格式面向不同场景,作用清晰。
完整备份 (.cakeday)
.cakeday 是蛋日的官方完整备份格式,最适合迁移设备或长期归档。它会保留:
- 好友数据
- 自定义分组
- 高分辨率头像
- 好友级提醒偏移、生日闹钟选择、闹钟铃声、按对方时区提醒与日历同步设置
- 应用级提醒默认值、生日闹钟时间、默认闹钟铃声、主题、显示偏好、详情页额外内容与日期格式设置
这是最接近“完整恢复”的方式。
通用导出 (JSON / CSV)
通用导出 (JSON) 与 通用导出 (CSV) 面向跨平台交换和人工处理场景。它们保留核心字段,例如:
- 姓名
- 分组名称
- 公历或农历标记
- 出生年份、月、日
- 星座
- 备注
这两种格式不包含头像、自定义分组样式、好友级提醒与生日闹钟配置或应用级偏好设置。
分享包导入 (.cakeshare)
.cakeshare 针对人与人之间的分享做了优化。分享包可以包含好友、头像和分组信息,并支持加密与可选的附加密码。
导入 .cakeshare 时,蛋日会进入按好友选择的导入界面。你可以逐条勾选要导入的人,并在导入前查看重复项提示。协议细节请参阅 CakeShare 指南。
导入模式
导入 .cakeday、JSON 或 CSV 时,蛋日提供两种导入模式:
- 覆盖导入: 用导入数据替换当前本地数据库。
- 增量导入: 追加新数据,同时保留现有本地好友。
覆盖导入适合迁移或恢复,增量导入更适合合并新好友。
iCloud 与覆盖导入
如果设备当前已启用 iCloud 同步,覆盖导入会先完成本地恢复,再暂停 iCloud 同步。这样你就有时间先检查导入结果,再决定何时重新开启同步与合并行为。
重复项识别与导入后处理
蛋日在导入合并时会按以下字段进行精确匹配:
- 姓名
- 出生年份
- 日历类型(公历或农历)
- 月、日
- 闰月标志
如果只有出生年份不同,蛋日会把导入项作为单独记录处理,并可能将其标记为需要复核的疑似重复项。
较长的导入过程中,应用会显示明显的进度。导入完成后,蛋日会刷新搜索索引、小组件和相关扩展数据,让新内容可以在各个入口中显示。
系统日历同步
蛋日可通过 EventKit 将生日写入系统日历。在好友中启用同步到系统日历后,蛋日会为每个未来年份分别创建一个全天日历事件,而不是单个循环事件,并在好友被修改或删除时同步更新这些事件。为每一年创建独立事件可以保证农历生日的准确性,因为它们每年并不会落在同一个公历日期上。