本文档详细介绍 CalcLab 的安装、平台配置、依赖管理与常见问题排查。
| 项目 | 最低版本 | 推荐版本 |
|---|---|---|
| Flutter SDK | 3.12.0 | 3.16+ |
| Dart SDK | 3.12.0 | 3.2+ |
| Android SDK | API 21 (Android 5.0) | API 34 (Android 14) |
| Java JDK | 17 | 17 / 21 |
| Gradle | 8.0 | 8.5+ |
| Xcode(iOS) | 14.0 | 15.0+ |
| CocoaPods(iOS) | 1.11 | 1.14+ |
| 磁盘空间 | 5 GB | 10 GB |
| RAM | 8 GB | 16 GB |
- ✅ Windows 10 / 11(64-bit)
- ✅ macOS 12 Monterey 或更高
- ✅ Ubuntu 20.04+ / Debian 11+
-
下载 Flutter SDK 压缩包:
# 推荐下载稳定版 # 访问 https://docs.flutter.dev/get-started/install/windows
-
解压到无空格、无中文路径,例如
C:\flutter -
配置环境变量:
- 系统属性 → 高级 → 环境变量
Path中添加C:\flutter\bin
-
验证安装:
flutter --version flutter doctor
# 使用 Homebrew(推荐)
brew install flutter
# 或下载压缩包解压到 ~/development/flutter
# 然后将 $HOME/development/flutter/bin 加入 PATH# 1. 下载最新稳定版
wget https://storage.googleapis.com/flutter_infra_release/releases/stable/linux/flutter_linux_3.16.0-stable.tar.xz
# 2. 解压
tar xf flutter_linux_3.16.0-stable.tar.xz
# 3. 加入 PATH
echo 'export PATH="$HOME/flutter/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc
# 4. 验证
flutter --version# 1. 克隆仓库
git clone https://github.com/soodddd/CalcLab.git
cd CalcLab
# 2. 拉取依赖
flutter pub get
# 3. 检查环境
flutter doctor -vflutter doctor 应显示所有平台就绪(绿色 ✓)。如有红色 ✗,请按提示安装对应组件。
- 下载并安装 Android Studio
- 打开 SDK Manager,安装:
- Android SDK Platform 34
- Android SDK Build-Tools 34.0.0
- Android SDK Platform-Tools
- Android Emulator(可选)
# Windows
[System.Environment]::SetEnvironmentVariable("ANDROID_HOME", "C:\Users\<你>\AppData\Local\Android\Sdk", "User")# macOS / Linux
echo 'export ANDROID_HOME="$HOME/Library/Android/sdk"' >> ~/.zshrc # macOS
echo 'export ANDROID_HOME="$HOME/Android/Sdk"' >> ~/.bashrc # Linux- 打开 Android Studio → Device Manager
- Create Device → 选择 Pixel 6 / API 34
- 启动模拟器
flutter run # 自动选择已连接设备
flutter run -d <deviceId> # 指定设备# 1. 安装 CocoaPods
sudo gem install cocoapods
# 2. 安装 Xcode 命令行工具
xcode-select --install
# 3. 进入 iOS 目录并初始化
cd ios
pod install
cd ..
# 4. 启动 iOS 模拟器
open -a Simulator
# 5. 运行
flutter run# 列出已连接设备
flutter devices
# 运行(开发模式,支持热重载)
flutter run
# 指定端口运行
flutter run -d <deviceId> --release
# 仅构建不运行
flutter build apk --debug
# 清理构建缓存
flutter clean- 热重载:
r(保留状态)或R(重启) - 查看 widget 树:
w - 切换调试面板:
p - 退出:
q
- VS Code:安装
Flutter+Dart扩展 - Android Studio:内置 Flutter 插件
- IntelliJ IDEA:Ultimate + Flutter 插件
# Debug APK(开发测试用)
flutter build apk --debug
# 输出:build/app/outputs/flutter-apk/app-debug.apk
# Release APK(发布)
flutter build apk --release
# 输出:build/app/outputs/flutter-apk/app-release.apk
# 分架构构建(推荐,包体更小)
flutter build apk --release --split-per-abiflutter build appbundle --release
# 输出:build/app/outputs/bundle/release/app-release.aab# 仅构建(不上传)
flutter build ios --release --no-codesign
# 上传到 App Store
flutter build ipaflutter build web --release
# 输出:build/web/
⚠️ Web 端 LaTeX 渲染、相机权限等功能可能受限。
flutter doctor --android-licenses
# 一路输入 y 接受所有许可编辑 android/gradle.properties:
org.gradle.jvmargs=-Xmx4G -XX:MaxMetaspaceSize=2G
android.useAndroidX=true# 删除锁定文件重新解析
rm pubspec.lock
flutter pub get
# 或使用升级命令
flutter pub upgrade# 列出所有 adb 设备
adb devices
# 重启 adb
adb kill-server
adb start-server
# 重启模拟器
flutter emulators --launch <emulator_id>cd ios
pod deintegrate
pod cache clean --all
pod install --repo-update
cd ..- 使用
--split-per-abi分架构构建 - 启用 R8 / ProGuard 压缩(编辑
android/app/build.gradle.kts) - 移除未使用的图片资源
- 使用
--shrink标志
Android:在 android/app/src/main/AndroidManifest.xml 添加:
<uses-permission android:name="android.permission.CAMERA"/>
<uses-permission android:name="android.permission.INTERNET"/>iOS:在 ios/Runner/Info.plist 添加:
<key>NSCameraUsageDescription</key>
<string>用于拍照识别公式</string>分享码使用 UTF-8 JSON → base64 编码,纯本地实现,不依赖服务器。如跨设备无法识别:
- 检查是否复制完整(
CALCLAB:前缀) - 检查目标设备 Dart 版本 ≥ 3.0
- 📖 阅读 USER_GUIDE.md 学习如何使用 CalcLab
- 🔧 阅读 DEVELOPER_GUIDE.md 了解如何扩展功能
- 🐛 遇到问题?在 Issues 反馈