一人开发,三端覆盖。
ByteGuard 如何以独立开发者身份同时交付 iOS / iPadOS / macOS — 技术栈是什么、为什么这样选、做了哪些取舍。
挑战
独立开发者构建跨平台密码管理器
- 三个平台(iOS · iPadOS · macOS)必须共享同一份保险库加密格式,且加密层在三端二进制层面一致。
- 零知识架构意味着服务器帮不上忙 — 每个功能必须在离线状态下可用。
- 35 种语言的 UI 必须保持同步;每个新界面在发布前必须备齐 35 种翻译。
- 一人开发意味着所有层(UI · 加密 · 同步 · 构建 · App Store · 支持 · 营销)都是一个人的责任。
- 目标不是堆功能。是把表面积控制在一个人能守护的范围内。
技术栈
每个依赖都是未来由一个人偿还的维护账单。技术栈刻意精简 — 只用必要的、Apple 官方支持的、不引入第三方 UI / 网络 / 分析 SDK。
- SwiftUI: 100% UI。无 UIKit 桥接代码。同一份视图代码运行在 iOS / iPadOS / macOS,通过平台特定 modifier 适配。取舍:失去部分精细控制,换来统一代码库。
- CryptoKit: Apple 官方密码学框架,用于 AES-256-GCM、HKDF-SHA256、ECDSA P-256。不使用第三方加密库 — 减少审计面、消除供应链风险。
- CloudKit Private Database: 可选的端到端加密同步。ByteGuard 密文进、Apple 基础设施永远看不到明文。无需自建同步服务器去运营、保护、扩展。
- Argon2id(libsodium): 内存密集型 KDF,用于主密码 → KEK 派生。参数:64 MB 内存 · 3 轮 · 1 线程(符合 OWASP 2026 移动安全基线)。将于 2026 Q3 开源。
- SQLCipher: SQLite 内置 AES-256 页级加密。数据库在磁盘上加密静态存储;加密对查询层透明。自 2008 年起经多年实战检验。
- Swift 6: 开启严格并发模式。当加密操作触及共享状态时,编译期数据竞争消除至关重要。除非绝对必要,否则不引入 Objective-C 桥接。
设计原则
塑造每一个架构决策的 4 条硬规则。
- 本地优先,同步可选: 每个操作在无网络时都可用。iCloud 同步是 opt-in 且只传密文。应用在飞行模式下 100% 可用。
- 构造性零知识: 即便被法律强制或被攻击者攻陷,我也无法解密你的保险库。KDF 在设备上运行,服务器只看密文。
- 最少子处理方(当前 2 个): 仅 Apple(同步 + StoreKit)和 Have I Been Pwned(可选的泄露检查,k-匿名)。无分析、无错误上报、无营销自动化。
- 依赖保守主义: 每个新增的 npm / SPM 依赖必须通过门槛:是否 Apple 原生?是否经过广泛审计?如果上游放弃,我能不能维护 fork?大多数第三方库通不过其中一条或多条检查。
构建日志
从发布至今的公开里程碑。未来里程碑的具体日期承诺见接续计划。
- 2026 Q1 — 发布: v1.0 上架 App Store。1 种语言(英文)。核心功能:密码 / 通行密钥 / TOTP / 卡片 / 笔记。Argon2id + AES-256-GCM 加密管线。
- 2026 Q2 — 35 种语言: 完整本地化,含 RTL(阿拉伯语、希伯来语)。每种语言 × 明 / 暗模式营销截图。HIBP 集成。
- 2026 Q2 — 接续计划公开: 5 项具体承诺,即便我消失也能保护用户。失联开关设计公开(2026 年 6 月 30 日前激活)。
- 2026 Q3(已承诺)— 加密模块开源: MIT 许可证的 Swift 包,包含 KDF + 加密算法 + 密钥层级代码。仓库:byteguard-crypto-swift。欢迎独立审计。
- 2026 Q4(已承诺)— 第三方独立安全审计: 聘请知名应用安全公司。无论结论如何,完整报告将公开在透明度中心。
独立开发者的取舍
押注独立开发者产品时你放弃的东西 — 明示,不隐藏。
- 无 24/7 支持热线。邮件回复尽力在 72 小时内。对于大多数密码管理器问题,文档比我更快。
- 功能节奏比 1Password 或 Bitwarden(50-200 人工程团队)慢。我谨慎发布,三端测试通过后才上架。
- 范围刻意收窄。无浏览器扩展(暂时)、无 Windows / Linux / Android 端、无企业管理功能。仅 Apple 生态。
- 无法保证十年后仍兼容未来 iOS 版本。我会尽力,但 Apple 会变规则,单一开发者无法承诺无限期支持 — 接续计划提供安全网。
- 巴士因子为 1。这是真实风险。读接续计划,看我如何自动化地回答「我若消失」这个问题。
在不稀释架构的前提下扩张
ByteGuard 如何走出独立开发者阶段,又不损害安全姿态。
- 第 1 阶段(当前)— 独立: 一个开发者,窄范围,保守路线图。目标:证明架构、在无风险投资的情况下达到可持续收入。
- 第 2 阶段 — 加密开源 + 审计(2026 Q3-Q4): 公开加密核心邀请公开审查。审计找到我遗漏的问题。两者都在引入任何可能削弱威胁模型的团队成员之前完成。
- 第 3 阶段 — 选择性外包: 收入稳定后,按项目聘请专家(渗透测试 · 本地化审阅 · CI/CD)。永远不全职,永远不接触保险库密钥。
- 第 4 阶段 — 托管 + 冗余(MRR ≥ $5K/月): 软件托管服务(Iron Mountain / NCC Group)保管签名密钥 + 构建产物。增加冗余,不改变零知识保证。
- 不在计划内的事: 不接受风险投资。不卖给收购方。不扩展到相邻产品。范围保持窄,因为只有窄范围才能让安全承诺可信。
对架构有疑问?
如果你发现了漏洞、bug、或更好的取舍方案,请分享。
- 邮件: [email protected] — 安全披露 24 小时内优先响应。
- 另见: 透明度中心(子处理方、安全事件、路线图)· 安全页(密码学细节)· 接续计划(5 项承诺)。