feat(client): 库存抽屉打印标签 + 修本地构建版本号不对
- 商品编辑抽屉头部「预览」旁加「打印标签」(同入库管理:QR+品牌型号版本+ 门店信息 → LabelPreviewDialog;移动端无打印不渲染) - 修版本号 bug:appVersionProvider/更新检查改为优先 APP_VERSION dart-define (本地与 iOS 手工构建不改 pubspec,PackageInfo 恒为旧值 1.0.52,App 内 显示错且误弹更新横幅);版本比较容忍 -dev/+build 后缀(每段取前导数字) - local_test.sh:版本标记 -dev(如 v1.1.4-dev)明确区分本地包;新增 --ios 模式(开发签名构建 + devicectl 装 USB iPhone),双端同一版本注入链路 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -95,8 +95,8 @@ class UpdateNotifier extends AsyncNotifier<AppUpdateInfo?> {
|
||||
final downloadUrls =
|
||||
rawUrls.map((k, v) => MapEntry(k, v?.toString() ?? ''));
|
||||
|
||||
final info = await PackageInfo.fromPlatform();
|
||||
final hasUpdate = _isNewer(latestVersion, info.version);
|
||||
final current = (await currentAppVersion()).substring(1); // 去 v 前缀
|
||||
final hasUpdate = _isNewer(latestVersion, current);
|
||||
|
||||
return AppUpdateInfo(
|
||||
latestVersion: latestVersion,
|
||||
@@ -123,16 +123,32 @@ class UpdateNotifier extends AsyncNotifier<AppUpdateInfo?> {
|
||||
}
|
||||
|
||||
List<int> _parse(String v) {
|
||||
final parts = v.split('.').map((s) => int.tryParse(s) ?? 0).toList();
|
||||
// 每段取前导数字(容忍 1.1.4-dev / 1.1.4+7 等本地构建后缀)
|
||||
final parts = v.split('.').map((s) {
|
||||
final m = RegExp(r'^\d+').firstMatch(s);
|
||||
return m == null ? 0 : int.parse(m.group(0)!);
|
||||
}).toList();
|
||||
while (parts.length < 3) parts.add(0);
|
||||
return parts;
|
||||
}
|
||||
}
|
||||
|
||||
// ── 版本号 Provider(供状态栏 / 门店信息面板使用)──────────
|
||||
final appVersionProvider = FutureProvider<String>((ref) async {
|
||||
// ── 当前版本(单一真相)─────────────────────────────────────
|
||||
// 优先编译期 APP_VERSION dart-define(CI 与本地脚本都传;本地构建不改
|
||||
// pubspec,PackageInfo 会是旧值);未定义时回退 PackageInfo。
|
||||
const _definedVersion = String.fromEnvironment('APP_VERSION');
|
||||
|
||||
Future<String> currentAppVersion() async {
|
||||
if (_definedVersion.isNotEmpty) {
|
||||
return _definedVersion.startsWith('v') ? _definedVersion : 'v$_definedVersion';
|
||||
}
|
||||
final info = await PackageInfo.fromPlatform();
|
||||
return 'v${info.version}';
|
||||
}
|
||||
|
||||
// ── 版本号 Provider(供状态栏 / 门店信息面板使用)──────────
|
||||
final appVersionProvider = FutureProvider<String>((ref) async {
|
||||
return currentAppVersion();
|
||||
});
|
||||
|
||||
// ── 打开下载链接工具函数 ────────────────────────────────────
|
||||
|
||||
Reference in New Issue
Block a user