On macOS, the libmdbx / Isar database lives under
`getApplicationDocumentsDirectory()` -> `~/Documents/...`. With iCloud
Drive's "Desktop & Documents Folders" sync enabled (a common default),
macOS protects ~/Documents with TCC and denies unsigned / sideloaded /
dev / not-yet-permission-granted builds the file access libmdbx needs
to open its database. The result is a black screen on launch with the
following error in the Flutter / app log:
[ERROR:flutter/runtime/dart_isolate.cc(1402)] Unhandled exception:
IsarError: Cannot open Environment: MdbxError (13): Permission denied
POSIX errno 13 is EACCES, raised by the OS for the access denial — not
errno 15 (ENOTBLK / "Block device required"), and not iCloud "Optimise
Mac Storage" evicting files. Verified on macOS 26.3 / Apple Silicon
with iCloud Desktop & Documents sync active: a Terminal `mkdir`+`echo
> file` to the same path succeeds (Terminal inherits the user's TCC
grant), but the unsigned dev build fails on first DB open with the
error above.
Fix: on macOS only, host the database under `getApplicationSupport-
Directory()` -> `~/Library/Application Support/<bundle id>/...`. That
location is app-private, not TCC-gated, and Apple's recommended
location for app data files. iOS, Windows, Linux are unchanged — they
keep using Documents (iOS for Files-app visibility next to backups,
Windows / Linux because Documents is the conventional location and
neither has TCC).
Includes a one-shot best-effort migration: existing macOS users with a
DB at `~/Documents/Mangayomi/databases/` have it renamed to the new
path on first launch. Migration is skipped if the new location is
non-empty so we never overwrite user data, and any failure falls back
to a fresh DB rather than crashing on launch (the user can then move
the legacy directory manually if needed). Subsequent launches skip the
migration branch because the new path already exists.
Repro
- macOS with iCloud Drive's "Desktop & Documents Folders" sync enabled
- Unsigned / sideloaded / dev build of Mangayomi (or signed build that
hasn't yet received the user's "Files and Folders > Documents" TCC
grant)
- Launch -> black screen, IsarError MdbxError (13)
Verification
- Reproduced the exact error on this branch's parent commit
(upstream/main
|
||
|---|---|---|
| .github | ||
| android | ||
| assets | ||
| go | ||
| ios | ||
| lib | ||
| linux | ||
| macos | ||
| packaging/arch | ||
| proto | ||
| repo | ||
| rust | ||
| rust_builder | ||
| test | ||
| windows | ||
| .gitignore | ||
| analysis_options.yaml | ||
| devtools_options.yaml | ||
| ffigen.yaml | ||
| flutter_rust_bridge.yaml | ||
| l10n.yaml | ||
| LICENSE | ||
| pubspec.lock | ||
| pubspec.yaml | ||
| README.md | ||
Mangayomi
Mangayomi is an open-source Flutter app for reading manga, novels, and watching animes across multiple platforms.
Features
Features include:
- Reading manga, webtoons, comics, novels, animes, movies, and more.
- Local reading of content.
- A configurable reader with multiple viewers, reading directions and other settings.
- Tracker support for anime and manga: MyAnimeList, AniList, SIMKL, trakt and Kitsu support.
- Categories to organize your library.
- Light and dark themes.
- Create backups locally to read offline or to your desired cloud service.
Download
Get the app from our releases page.
iOS Sideloading Sources
Note: Only future releases (> 0.5.2) will be signed (and therefore have AltStore/SideStore compatibility).
Contributing
Contributions are welcome!
To get started with extension development, see CONTRIBUTING-DART.md for create sources in Dart or CONTRIBUTING-JS.md for create sources in JavaScript.
Using flutter_rust_bridge
To run and build this app, you need to have Flutter SDK and Rust toolchain installed on your system. You can check that your system is ready with the commands below. Note that all the Flutter subcomponents should be installed.
rustc --version
flutter doctor
You also need to have the CLI tool for flutter_rust_bridge ready.
cargo install 'flutter_rust_bridge_codegen'
run the following command:
flutter_rust_bridge_codegen generate
Now you can run and build this app just like any other Flutter projects.
flutter run
License
Copyright 2023 Moustapha Kodjo Amadou
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
Disclaimer
Mangayomi is not hosting any kind of content and the developer(s) of this application does not have any affiliation with the content providers that are freely available in the internet.



