Monica for iOS
Monica のローカルファースト iOS パスワード保管庫クライアント
iOS 17+ · SwiftUI · MDBX Vault · AutoFill · TOTP · WebDAV
概要
Monica for iOS は、Monica パスワード保管庫エコシステムのネイティブ iOS クライアントです。ローカルファースト の設計思想を採用し、iPhone 上で安全かつ制御可能で、復元しやすいパスワード管理体験の提供に注力しています。
主な特長: MDBX Vault、AutoFill、TOTP、WebDAV
Monica for iOS は、Monica パスワード保管庫エコシステムのネイティブ iOS クライアントであり、ローカルファースト の設計思想を採用し、iPhone 上で安全かつ制御可能で、復元しやすいパスワード管理体験の提供に注力しています。
現在のプロジェクト方針は MDBX 優先、iOS 17+、iPhone 優先、Rust/Swift UniFFI ブリッジ を軸としており、ローカル暗号化 Vault、ネイティブ AutoFill、TOTP、WebDAV バックアップ復元、さらに Android / MDBX データモデルと互換性のある多種別エントリ管理を重点的に進めています。
最初の公開版では、次の項目を優先して完成させる予定です。
- ローカル Vault の基本機能
- コアとなるエントリ管理
- WebDAV バックアップと復元
- できるだけ完全な AutoFill 対応
今後さらに次の機能を強化していきます。
- Passkey
- Bitwarden 互換
- 添付ファイル対応
- より多くのクラウド同期機能
どんな人に向いているか
Monica for iOS は、次のようなユーザーに適しています。
- ローカルファーストな方法でパスワードを管理したく、重要な認証情報をサードパーティのサービスに預けたくない方
- すでに Monica Android や MDBX エコシステム内でパスワード、TOTP、セキュアノートなどを管理している方
- iOS ネイティブの AutoFill、Face ID / Touch ID、ローカルバックアップ復元 などの機能を活用したい方
- iPhone 上でログイン項目、セキュアノート、TOTP、銀行カード、証明書メタデータなど、多種別エントリを一元管理したい方
現在の機能
ローカル MDBX Vault
- ローカル暗号化 Vault の作成、オープン、ロックに対応
- ローカルファースト戦略を採用し、外部サービスへの依存を低減
多種別エントリ管理
- ログイン項目、セキュアノート、TOTP、銀行カード、証明書メタデータなどの基本 CRUD に対応
- Monica / MDBX のデータモデル思想と互換性あり
お気に入りと検索
- お気に入り優先に対応
- お気に入りのみ表示に対応
- セッション内検索に対応
- ソフト削除からの復元に対応
TOTP
otpauth://URI のインポートに対応- QR コードのインポートに対応
- 認証コードの生成と残り秒数の更新に対応
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) + UniFFI →
MonicaMDBX(Swift) - コアロジック:
MonicaCore(TOTP、otpauth://解析、安全なパスワード生成) - ストレージ層:
MonicaStorage(Vault repository、KDBX 互換、AutoFill インデックス) - セキュリティ層:
MonicaSecurity(Keychain / LocalAuthentication 境界) - 同期層:
MonicaSync(WebDAV、OneDrive、Bitwarden アダプタ)
MDBX UniFFI 🔧
Rust 側のブリッジ crate:
mdbx/crates/mdbx-ios-ffiSwift binding を生成:
Scripts/generate-mdbx-swift-bindings.shiOS XCFramework を生成:
Scripts/build-mdbx-xcframework.shUniFFI CLI が不足している場合:
cargo install uniffi --version 0.31.1 --locked --features cli注意: Scripts/build-mdbx-xcframework.sh と Xcode build を並列実行しないでください。スクリプトが MonicaMDBXGenerated.xcframework を置き換えるため、Xcode 側で読み込みに失敗する可能性があります。
検証コマンド
テストとビルドをすばやく実行する方法
Swift Package テスト
macOS のターミナルで次のコマンドを順に実行し、各 Swift パッケージをテストします。
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 ビルド(署名なし)
まず利用可能なシミュレータを一覧表示します。
xcrun simctl list devices available次に <iPhone simulator UUID> を置き換えて実行します。
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 - 認証アプリの体験、アイコン素材、関連互換対応の参考
ロードマップ(簡易版) 🚦
- 初回リリースの重点(必達): MDBX ローカル Vault、コアエントリ管理、TOTP、WebDAV、iOS AutoFill
- 直近の検証(進行中): 署名済み実機検証、Keychain / LocalAuthentication、App Group、QuickType、カメラスキャン
- 今後の計画(検討/スケジュール予定): Passkey、Bitwarden 双方向同期、添付ファイル体験、より多くのクラウドサービス、Widget / Live Activity
上記の項目は、そのまま issue や milestone に落とし込んで追跡・分担できます。
謝辞 🙏
Monica の設計、互換性対応、および一部機能の方向性は、以下の優れたオープンソースプロジェクトやソフトウェアから多くの着想と支援を得ています。
Star History
ライセンス
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 の商標権は、それぞれの権利者に帰属します
