Monica for iOS 是 Monica 密码库生态的 SwiftUI 客户端。项目以本地优先为核心,优先落地 MDBX 加密保险库、iOS 原生 AutoFill、TOTP、WebDAV 备份恢复,以及与 Android / MDBX 数据模型兼容的多类型条目管理。
当前开发路线锁定为 MDBX 优先、iOS 17+、iPhone 优先、Rust/Swift UniFFI 桥接。首个公开版本聚焦本地 Vault、核心条目、WebDAV 和较完整 AutoFill;Passkey、Bitwarden、附件和更多云能力会在后续阶段继续完善。
- 需要本地优先密码管理,不希望核心凭据托管到第三方服务。
- 已在 Monica Android / MDBX 生态中管理密码、TOTP、私密笔记等数据。
- 希望使用 iOS 原生 AutoFill、Face ID / Touch ID 门禁和本地备份恢复。
- 需要在 iPhone 上管理登录项、安全笔记、TOTP、银行卡、证件元数据等多类型条目。
- 本地 MDBX Vault:创建、打开、锁定本地加密保险库。
- 多类型条目:登录项、安全笔记、TOTP、银行卡、证件元数据等基础 CRUD。
- 收藏与搜索:支持收藏优先、只看收藏、会话内搜索和软删除恢复。
- TOTP:支持
otpauth://URI、二维码导入、验证码生成和剩余秒数刷新。 - iOS AutoFill:通过 Credential Provider Extension 读取加密索引并返回系统填充凭据。
- 安全解锁:Keychain + LocalAuthentication + MDBX
security_key,不保存主密码。 - WebDAV:支持上传、下载、SHA-256 完整性校验、恢复预览和恢复前打开验证。
- OneDrive:已接入 MSAL 与 Microsoft Graph app-folder provider,真实账号与网络验收仍在推进。
- KeePass / KDBX:已完成现代 KDBX3/KDBX4 主链路读写兼容,后续继续扩展真实场景验收。
- 项目仍处于 iOS 客户端开发和真机验收阶段。
- 未签名模拟器测试使用
CODE_SIGNING_ALLOWED=NO时,App Group container 不可用属于预期现象。 - AutoFill QuickType 展示、Credential Provider、App Group、Keychain access group、TOTP 相机扫描等能力需要签名真机环境继续验证。
.
├── Monica.xcodeproj/
├── App/
│ └── MonicaApp/
├── Extensions/
│ ├── MonicaAutoFillExtension/
│ ├── MonicaShareExtension/
│ └── MonicaWidgetExtension/
├── Tests/
│ └── MonicaTests/
├── Scripts/
│ ├── build-mdbx-xcframework.sh
│ └── generate-mdbx-swift-bindings.sh
├── Artifacts/
│ ├── MDBX/
│ └── MSAL/
├── Generated/
│ └── MDBXUniFFI/
└── SwiftPackages/
├── MSAL/
├── MonicaCore/
├── MonicaMDBX/
├── MonicaSecurity/
├── MonicaStorage/
├── MonicaSync/
└── MonicaUI/
- App:SwiftUI、Observation、AuthenticationServices、LocalAuthentication、Keychain、WidgetKit。
- 本地 Vault:MDBX Rust workspace + UniFFI +
MonicaMDBXSwift package。 - 核心逻辑:
MonicaCore提供 TOTP、otpauth://parser、安全随机密码生成等能力。 - 存储:
MonicaStorage负责本地 vault repository、KDBX 兼容、AutoFill 加密索引和 secret snapshot。 - 安全:
MonicaSecurity负责 Keychain/LocalAuthentication 边界和本地 key material 管理。 - 同步:
MonicaSync提供 WebDAV、OneDrive/CloudFile provider 和 Bitwarden 同步边界。
Rust 侧桥接 crate 位于上游 MDBX workspace:
mdbx/crates/mdbx-ios-ffi
生成 Swift binding:
Scripts/generate-mdbx-swift-bindings.sh生成 iOS XCFramework:
Scripts/build-mdbx-xcframework.sh如果缺少 UniFFI CLI:
cargo install uniffi --version 0.31.1 --locked --features cli注意:不要把 Scripts/build-mdbx-xcframework.sh 和 Xcode build 并行运行。脚本会替换 MonicaMDBXGenerated.xcframework,Xcode 在替换期间读取产物可能失败。
Swift package 测试:
cd SwiftPackages/MonicaCore && swift test
cd ../MonicaMDBX && swift test
cd ../MonicaStorage && swift test
cd ../MonicaSecurity && swift test
cd ../MonicaSync && swift test
cd ../MonicaUI && swift testiOS simulator build:
xcrun simctl list devices available
xcodebuild \
-project Monica.xcodeproj \
-scheme Monica \
-configuration Debug \
-sdk iphonesimulator \
-destination "id=<iPhone simulator UUID>" \
CODE_SIGNING_ALLOWED=NO \
buildiOS simulator XCTest:
xcodebuild test \
-project Monica.xcodeproj \
-scheme Monica \
-configuration Debug \
-sdk iphonesimulator \
-destination "id=<iPhone simulator UUID>" \
CODE_SIGNING_ALLOWED=NO- 首发重点:MDBX 本地 Vault、核心条目管理、TOTP、WebDAV、iOS AutoFill。
- 持续推进:签名真机验收、Keychain/LocalAuthentication、App Group、QuickType、相机扫描。
- 后续能力:Passkey、Bitwarden 双向同步、附件体验、更多云服务、Widget / Live Activity 等 iOS 原生入口。
Monica 的设计、兼容性适配与部分功能方向,受到了以下优秀开源项目和软件的启发与帮助:
- Bitwarden - 开源密码管理生态、Vault 模型与同步能力的重要参考。
- KeePass - 本地密码库理念与
.kdbx生态兼容的重要基础。 - Keyguard - Android 端密码管理器的交互设计与体验参考。
- Stratum Auth - 身份验证器体验、图标资源与相关兼容支持参考。
Copyright (c) 2025 JoyinJoester
Monica for iOS 基于 GNU General Public License v3.0 开源发布。
- 本项目使用的第三方图标资源来自 Stratum Auth app(版本 v1.4.0,目录 icons / extraicons,GPL-3.0)。
- 品牌名称与 Logo 的商标权归各自权利人所有。