Files
pangolin/client/pubspec.yaml
T
wangjia 7fdadace4e fix(client): 自动连接回调 NoSuchMethod(valueOrNull on dynamic)— 真正根因
日志显示每次节点加载,_maybeAutoConnect 回调抛 NoSuchMethodError:AsyncData 没有 valueOrNull
(在判 autoConnect 之前就崩)→ 自动连接从未生效。根因:sub 声明成裸 ProviderSubscription
(=<dynamic>),逼 listenManual 推断成 dynamic,next 变 dynamic;valueOrNull 是扩展 getter,
dynamic 上不解析 → 运行期 NoSuchMethod。修:sub 标全泛型 ProviderSubscription<AsyncValue<List<Node>>>。
(1.0.18 的竞态修复是误判,真凶是这个崩溃。)诊断日志暂留,确认后清。

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-29 18:46:57 +08:00

90 lines
3.3 KiB
YAML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
name: pangolin_vpn
description: 穿山甲 · Pangolin — 极简、稳定、跨平台网络加速客户端。
publish_to: "none"
version: 1.0.20+21
environment:
sdk: ^3.5.0
flutter: ">=3.24.0"
dependencies:
flutter:
sdk: flutter
flutter_svg: ^2.0.10 # 加载 assets/ 下的矢量 logo
country_flags: ^3.1.0 # 节点国旗(SVG,全平台含 Windows;按 region 码渲染)
lucide_icons: ^0.257.0 # Lucide 细线条图标
google_fonts: ^6.2.1 # 运行时加载 Sora / Manrope / Noto Sans SC / JetBrains Mono
flutter_riverpod: ^2.5.1 # 状态层(连接状态机 / 免费额度 / 节点选择 / 语言 / 主题)
http: ^1.2.1 # 控制面 HTTP 客户端(connect API
path_provider: ^2.1.3 # 获取应用支持目录(sing-box 配置路径)
flutter_secure_storage: ^9.2.2 # JWT token 安全存储 + 稳定 device_id 持久化
shared_preferences: ^2.5.5
package_info_plus: ^9.0.1
device_info_plus: ^11.2.0 # 设备名/平台(「我的设备」上报)
uuid: ^4.5.1 # 客户端生成稳定 device_id (UUID v4)
launch_at_startup: ^0.5.1
tray_manager: ^0.5.3
window_manager: ^0.5.1
dev_dependencies:
flutter_test:
sdk: flutter
flutter_lints: ^4.0.0
flutter_launcher_icons: ^0.14.1
# ── App 图标生成(flutter_launcher_icons)──
# 源图 assets/app-icon-ios-1024.png = design 单源 assets/app-icon.svg 去掉圆角(rx=0,全幅
# 方形,iOS 自行加圆角)、qlmanage 渲染 1024 而来。改图标:重渲源图后跑
# `dart run flutter_launcher_icons`(自动铺 iPhone+iPad 全尺寸、去 alpha、重写 Contents.json)。
flutter_launcher_icons:
ios: true
remove_alpha_ios: true
image_path: "assets/app-icon-ios-1024.png"
# lucide_icons-0.257.0 defines LucideIconData extends IconData, which breaks
# when Flutter SDK marks IconData as final. Override with a local patched copy
# that replaces the subclass with direct IconData(...) const constructors.
dependency_overrides:
lucide_icons:
path: packages/lucide_icons_patched
flutter:
uses-material-design: true
# ── 资产(SVG logo)──
assets:
- assets/logo-mark.svg
- assets/logo-mark-white.svg
- assets/logo-wordmark.svg
- assets/app-icon.svg
- assets/tray_icon.png
- assets/tray_icon.ico # Windows 托盘专用(Win32 只认 .ico)
# ── 字体(本地打包,全平台离线)──
# 拉丁全量(Sora/Manrope/JetBrains Mono)+ Noto Sans SC 子集(GB2312 6763 字,单 Regular
# 权重;CJK 粗体由引擎合成)。子集由 tools/fonts/make-cjk-subset.sh 可复现生成。
# 生产经 PangolinFonts.useBundled=true 走这些 family;中文经 fontFamilyFallback 兜底。
fonts:
- family: Sora
fonts:
- asset: fonts/Sora-Regular.ttf
- asset: fonts/Sora-SemiBold.ttf
weight: 600
- asset: fonts/Sora-Bold.ttf
weight: 700
- family: Manrope
fonts:
- asset: fonts/Manrope-Regular.ttf
- asset: fonts/Manrope-Medium.ttf
weight: 500
- asset: fonts/Manrope-SemiBold.ttf
weight: 600
- asset: fonts/Manrope-Bold.ttf
weight: 700
- family: JetBrains Mono
fonts:
- asset: fonts/JetBrainsMono-Regular.ttf
- family: Noto Sans SC
fonts:
- asset: fonts/NotoSansSC-Regular-subset.otf