为什么书签同步要搞得这么"麻烦"?
经常有用户问我:"为什么书签同步要搞得这么复杂?不能直接在各浏览器之间同步吗?为什么还需要一个 macOS App?"
说实话,如果可以,我当然希望做得简单一点。但现实是,有些限制不是技术问题,而是平台规则问题。
今天这篇文章,我想诚实地和大家聊聊为什么 Bookmark UniSync 会采用现在的架构。
🍎 Safari 扩展的"禁区":书签
先说第一个限制:Safari 扩展不能直接访问和修改书签。
这是苹果出于隐私保护做出的硬性规定。在 Safari 的扩展 API 中,书签相关的接口是受限的。扩展可以读取当前标签页的 URL,可以拦截请求,但就是不能:
- 获取 Safari 的书签列表
- 添加、删除或修改书签
- 用编程的方式导出或者导入书签数据
这不是技术做不到,而是苹果不允许。
苹果的逻辑很简单:书签是用户的私密数据,扩展不应该随意触碰。这确实保护了用户隐私,但也带来了一个现实问题——如果你想把 Safari 的书签同步到 Chrome 或 Edge,就不能通过扩展来完成。
那怎么办?
答案只有一个:需要一个独立的应用程序来访问书签数据。
💻 macOS App:正规,但上架不了
既然扩展不行,那就用 macOS App 吧。macOS 应用程序可以访问 Safari 的书签数据(在用户授权的前提下)。
但这里又有一个问题:这个 App 不能上架 Mac App Store。
为什么?因为 App Store 的审核规则和 Safari 扩展的限制是一样的——苹果认为应用程序不应该直接访问和修改用户的书签数据。
所以,我们的 macOS App:
- ✅ 可以正常运行在 macOS 上
- ✅ 可以访问 Safari 书签(需要用户授权)
- ✅ 符合 macOS 开发规范
- ❌ 不能通过 App Store 分发
这就是为什么你需要在官网下载 macOS App,而不是在 App Store 里找到它。
这不是我们不想上架,而是苹果的规则不允许这类应用上架。
📱 同步到 iPhone:不是直接同步,而是"中转"
还有用户问:"为什么 Chrome/Edge 的书签不能直接同步到 iPhone?为什么必须经过 macOS App?"
这个问题的答案和上面是一样的:苹果的生态系统限制。
iPhone 上的 Safari 书签是通过 iCloud 同步的。要让 Chrome 或 Edge 的书签出现在 iPhone 的 Safari 里,必须:
- 先把书签数据同步到 macOS App
- macOS App 通过 iCloud 将书签同步到 iPhone
- iPhone 的 Safari 从 iCloud 接收书签数据
这个过程看似"绕了一圈",但这是唯一可行的路径。
我们试过其他方案:
- 直接在 iPhone 上安装扩展——iOS 的扩展 API 比 macOS 更严格,完全不能访问书签
- 通过第三方云服务同步——需要用户自己配置,门槛高,而且不稳定
- 越狱方式——完全不可行,风险太大
所以,通过 macOS App 作为中转站,是目前最稳定、最可靠的方案。
📱 关于移动端同步的考虑
有人可能会问:"为什么不考虑移动版的 Chrome/Edge 同步?"
说实话,暂时不考虑。最开始的目标就是为了实现大家办公方便,保证的是电脑之间的同步,移动端不在我的能力范围内。
完成从 macOS 同步到 iPhone 的功能,也是被迫实现的。因为如果不实现,那么 macOS 上的 Safari 就丢失了苹果的 iCloud 生态。
虽然这很困难,但是我做到了。就我目前的搜索能力,原生的书签体验,通过 iCloud 同步,我只搜到了一个团队实现过。
🤔 为什么不直接放弃 Safari?
有人可能会说:"既然 Safari 这么麻烦,为什么还要支持它?只做 Chrome 和 Edge 不行吗?"
我理解这个想法。但现实是:
我自己就有这个需求。应该其他朋友也会有类似的需求。
- macOS 用户群体很大,很多用户默认使用 Safari
- iPhone 用户更是如此,Safari 是唯一预装的浏览器
- 书签同步的核心价值就是"跨浏览器、跨平台",如果放弃 Safari,就失去了很大一部分价值
我们不想放弃任何用户,也不想让用户因为浏览器选择而被"割裂"。
所以,虽然技术实现复杂一点,虽然需要用户多安装一个 macOS App,但只要能让 Safari 用户也能享受到跨浏览器书签同步的便利,这一切都是值得的。
💡 那为什么 Chrome 和 Edge 之间可以直接同步?
你可能会问:"为什么 Chrome 和 Edge 之间可以直接同步,而 Safari 就不行?"
因为 Chrome 和 Edge 都基于 Chromium 内核,它们使用相同的扩展 API,书签访问权限也是开放的。扩展可以直接读取和修改书签,所以:
- 安装 Chrome 扩展 → 读取 Chrome 书签
- 安装 Edge 扩展 → 读取 Edge 书签
- 通过服务器中转 → Chrome ↔ Edge 双向同步
这个过程很简单,不需要额外的应用程序。
但 Safari 是独立的内核,苹果制定了更严格的隐私规则,所以就走不通这条路了。
📝 总结一下
现在的架构,是在以下限制下做出的最优解:
- Safari 扩展不能访问书签——苹果的隐私保护规定
- macOS App 无法上架 App Store——同样的审核规则限制
- 同步到 iPhone 必须通过 iCloud——苹果生态系统的闭环
- Chrome/Edge 可以直接同步——Chromium 内核的开放性
所以:
- Chrome ↔ Edge 同步:只需要浏览器扩展
- Chrome/Edge ↔ Safari 同步:需要浏览器扩展 + macOS App
- 同步到 iPhone:需要 macOS App + iCloud
看起来"麻烦",但这是在苹果的规则下,唯一可行且稳定的方式。
🤝 说点心里话
我知道,多装一个 macOS App 会让流程变得不那么"一键完成"。我也希望有一天苹果能开放书签访问权限,让扩展能直接搞定一切。
但在那一天到来之前,我们会继续维护和优化现有的方案,让它尽可能简单、稳定、可靠。
有朋友问我会不会搁浅或者跑路,我觉得没有这个打算。我们不是大公司,但我们会认真对待每一个用户。
如果你已经理解了这套架构,接下来想看具体安装和配置步骤,可以直接阅读如何开始使用 Bookmark UniSync。
📥 安装和使用
- Chrome 扩展:Chrome 网上应用店
- Edge 扩展:Edge 加载项商店
- macOS App:官网下载页面
- 官网:https://bksync.ithuajiao.site
⚠️ 友情提醒
在使用任何书签工具前,都建议先导出一份本地备份。如果工具不符合预期,可以随时恢复原始数据,把风险降到最低。
📚 你可能还想看
有任何问题或建议,欢迎联系:
- 📧 邮件支持:support@ithuajiao.site
- 💬 微信公众号:搜索 "挨踢花椒" 发送消息
技术限制并不可怕,可怕的是不去尝试跨越它们。虽然路绕了一点,但只要能到达终点,就是值得的。