oneAnime 用 Flutter 开发,从源码编译需要 Flutter SDK 与对应平台的构建工具链。Windows 版有一个已知问题必须手动处理,否则搜索框的简繁转换会失效。
- 环境要求
- Flutter 3.47+、Visual Studio 2019+、CMake macOS 编译还需 Xcode
- Windows 必读
- 搜索简繁转换失效 需自行编译 opencc.dll 放入产物目录
- 依赖拉取
- 需配置国内镜像 中国大陆网络下直接拉取会失败
- 前提条件
- 官方未提供 iOS 签名流程 iOS workflow 已禁用,需自行配置证书
环境准备
官方明确说明:编译需要良好的网络环境
先装 Flutter SDK 并跑一遍体检,确认工具链完整:
| 工具 | 版本要求 | 用途 |
|---|---|---|
| Flutter SDK | 3.47 或更高 | 项目主框架,v1.4.7 已适配 Flutter 3.47 |
| Visual Studio | 2019 或更高(含 C++ 桌面开发工作负载) | 编译 Windows 版,同时用于编译 opencc.dll |
| CMake | 3.x | 构建 opencc 动态库 |
| Xcode | macOS 编译 iOS / macOS 版需要 | Apple 平台构建工具链 |
验证环境:
flutter doctor | 检查各平台工具链是否就绪 |
flutter pub get | 拉取依赖 |
flutter pub upgrade | 升级到最新兼容版本 |
git clone 拉不动时,按下面配置镜像后再试。
配置国内镜像
拉不动依赖时先做这一步
Flutter 的包仓库和构建产物仓库在境内访问较慢,配置镜像可以显著改善克隆与构建速度。在终端(Windows 用 PowerShell)中设置环境变量:
| 系统 | 命令 |
|---|---|
| macOS / Linux | export PUB_HOSTED_URL=https://pub.flutter-io.cnexport FLUTTER_STORAGE_BASE_URL=https://storage.flutter-io.cn |
| Windows PowerShell | $env:PUB_HOSTED_URL="https://pub.flutter-io.cn"$env:FLUTTER_STORAGE_BASE_URL="https://storage.flutter-io.cn" |
github.com/Predidit/media-kit),它从 GitHub 拉取,不走 pub 镜像,所以 git clone 本身仍需要 GitHub 可访问。
核心:修复 Windows 搜索优化
这是自行编译 oneAnime 最常遇到的问题
oneAnime 的搜索优化功能,核心是把用户输入的简体关键词转换成繁体再匹配,因为 Anime1 站点的番剧标题以繁体为主。这个转换依赖 flutter_open_chinese_conventer 库。
问题在于这个库并不支持 Windows 平台。所以你自己编译出的 Windows 版本,搜索框会退化成只支持繁体匹配,输入简体就搜不到东西。官方的解决办法是:另外编译 opencc 项目的动态链接库来解决兼容问题,并把略微裁剪过的 opencc 实现单独开源。
第一步:克隆并编译 opencc.dll
-
克隆裁剪版 opencc 实现
-
用 CMake 构建动态库
需要 Visual Studio 2019 或更高版本并启用 C++ 桌面开发,以及已安装的 CMake。
-
取出 opencc.dll
构建完成后,在输出目录中找到
opencc.dll,这就是搜索优化需要的动态链接库。 -
放进 oneAnime 编译产物目录
开发环境:放到项目根目录下。
生产环境:放到编译后的可执行文件所在目录,与 exe 放在一起。 -
验证搜索优化已生效
启动应用 → 进入搜索页 → 输入简体关键词。如果系统能自动转换成繁体并匹配到结果,说明修复完成。
各平台编译命令
产物与官方 Release 格式一致
| 目标平台 | 命令 | 产物格式 |
|---|---|---|
| 调试运行 | flutter run -d windows | — |
| Windows 发布 | flutter build windows --release | ZIP |
| Windows 正式版 | flutter build windows --release --dart-define=BUILD_MODE=release | ZIP |
| 安卓版 | flutter build apk --release | APK |
| macOS | flutter build macos --release | DMG |
| Linux | flutter build linux --release | AppImage / tar.gz |
关于 iOS:项目的 iOS workflow 已在 2024 年 7 月被禁用,官方只提供未签名的 ipa 文件供自行签名。如果你自编译 iOS 版,需要自行配置签名证书与描述文件,这一步不在官方流程内。
编译时涉及的第三方项目
fork 二开时必须留意许可与署名要求
| 项目 | 作用 |
|---|---|
| AnimeOne | 项目使用了部分来自 AnimeOne 的代码,以处理与 Anime1 的交互 |
| DandanPlayer | 使用 dandanplayer 开放 API 提供弹幕交互 |
| Bangumi | 使用 Bangumi 开放 API 提供番剧元数据 |
| media-kit | 跨平台媒体播放能力(项目使用自定义 fork) |
| avbuild | 使用树外补丁实现非标准视频流播放 |
| hive | 持久化储存能力 |
| Mi Sans | 内嵌字体,由 Xiaomi 开发和拥有版权 |
不想自己编译?
官方提供五个平台的预编译安装包,全部免费