# CakeShare 分享

CakeShare 是蛋日使用的分享格式，用于在设备之间传递生日数据。

## 特定人物分享模式

在好友详情页中点击系统分享按钮时，会看到 **分享链接** 和 **分享文件** 子菜单：

1. **分享链接：** 生成一个形如 `https://cakeday.wbx1.com/share/<token>` 的编码链接，包含姓名、日期、日历类型、闰月标志、年份（如有）和备注，但不包含头像和分组信息。接收者在 Apple 设备上点击链接后，蛋日会弹出 **添加生日** 确认页面（如果已保存了匹配的生日，则会显示 **已存在** 警告，并提供 **仍要添加** 按钮）。分享链接有以下限制：姓名最多 200 个字符，备注最多 2,000 个字符，编码后的总数据不能超过 4 KB。
2. **分享文件：** 子菜单包含 **生成分享文件**（按你已保存的字段选择导出这位好友的 `.cakeshare`）和 **分享内容**（先打开一个面板选择要包含的字段）。默认只包含头像，直到你选择更多——见下文 **选择分享内容**。

## 选择分享内容

**分享内容** 面板让你精确决定单个好友的 `.cakeshare` 文件包含哪些内容。

- **始终包含：** 姓名和生日日期。
- **可选字段**，分为：档案（头像、分组）、出生详情（出生时间、出生地、时区、上升星座）和备注。只有当好友确实有相应数据时，对应开关才会出现。
- **更多信息：** 好友手动填写的每个附加字段（MBTI、星盘位置、身份等）都可以单独选择是否包含。

你对档案、出生详情和备注的选择会保存在本机，并在以后生成分享文件时复用；**更多信息** 的选择只对当前文件生效，每次都从关闭开始。点击 **保存并生成** 导出，或点击 **完成** 只保存选择而不导出。

## 打开分享链接

接收者点击分享链接时，行为取决于其设备和浏览器：

- **Apple 设备（Safari 或系统浏览器）：** 链接会自动尝试打开蛋日。如果未安装该应用，几秒后会显示引导页面，提供 App Store 下载链接。
- **Apple 设备（应用内浏览器）：** 应用内浏览器（如微信、QQ、LINE、微博）无法直接打开深度链接。系统会显示引导页面，提示用户点击菜单并选择“用 Safari 打开”。
- **非 Apple 设备：** 页面会提示该链接需要 iPhone、iPad 或 Mac，并提供 App Store 链接。

## 分享包 (.cakeshare)

iOS 应用导出时 **每个 `.cakeshare` 文件只包含一位好友**。如果要把多位好友（包括头像和分组）打包进同一个文件，请使用 [CakeShare 网页工具](#cakeshare-网页工具)；之后蛋日即可一次性导入整个分享包。

分享单个好友时，发送方可以选择包含哪些字段（见上文“选择分享内容”）；其中 **更多信息** 字段（如 MBTI 或星盘位置）默认关闭，且每个文件都会重置。CakeShare 网页工具不会创建这些额外字段，但它生成的文件仍与同一格式兼容。

## 文件保护

导出的 `.cakeshare` 文件在分享前总会先加密——但只有密码才能提供真正的保护。

- 没有密码时，加密只是混淆内容，并不能让内容保持机密。
- 如有需要，你还可以添加密码，接收方在导入前需要先输入密码。这是唯一能提供真正保护的方式。
- 请仅通过你信任的渠道分享文件和密码。

## CakeShare 网页工具

你可以通过 [https://cakeday.wbx1.com/cakeshare](https://cakeday.wbx1.com/cakeshare) 网页工具在浏览器中创建 `.cakeshare` 分享包，无需 iOS 应用。该工具支持：

- 添加好友，包括姓名、日期（公历或农历）、分组（颜色和图标）、头像和备注。
- 通过可下载的模板从 CSV 导入。
- 裁剪并压缩头像至 1024px WebP 格式（最大 2 MB）。
- 导出带有可选密码保护的 `.cakeshare` 文件。

数据会在浏览器本地处理，不会上传到服务器。

## 导入解码流程

当接收方打开 `.cakeshare` 文件时，蛋日会启动“导入分享包”界面。

- 页面会显示一份好友列表，你可以选择需要导入的好友。
- 如果好友已存在，系统会发出重复警告提示。
