feat(it0_app): add detailed logging to VersionChecker for update diagnosis

Add verbose debugPrint logs throughout VersionChecker to diagnose why
app update check isn't triggering:
- Log apiBaseUrl and full request URL + query params before the request
- Log response status code and raw response body
- Log explicit needUpdate=true/false with version details
- Log version code comparison (server versionCode vs local buildNumber)
- Add stack trace to all catch blocks for better error diagnosis

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
hailin 2026-03-06 05:51:45 -08:00
parent 369ecb2f29
commit 0f328b9794
1 changed files with 24 additions and 11 deletions

View File

@ -25,29 +25,38 @@ class VersionChecker {
Future<VersionInfo?> fetchLatestVersion() async {
try {
final currentInfo = await getCurrentVersion();
debugPrint('[VersionChecker] 当前版本: ${currentInfo.version}, buildNumber: ${currentInfo.buildNumber}');
debugPrint('[VersionChecker] apiBaseUrl: $apiBaseUrl');
debugPrint('[VersionChecker] 当前版本: ${currentInfo.version}, buildNumber: ${currentInfo.buildNumber}, packageName: ${currentInfo.packageName}');
final queryParams = {
'platform': 'android',
'current_version': currentInfo.version,
'current_version_code': currentInfo.buildNumber,
};
debugPrint('[VersionChecker] 请求: GET $apiBaseUrl/api/app/version/check $queryParams');
final response = await _dio.get(
'/api/app/version/check',
queryParameters: {
'platform': 'android',
'current_version': currentInfo.version,
'current_version_code': currentInfo.buildNumber,
},
queryParameters: queryParams,
);
debugPrint('[VersionChecker] 响应状态: ${response.statusCode}');
debugPrint('[VersionChecker] 响应内容: ${response.data}');
if (response.statusCode == 200 && response.data != null) {
final needUpdate = response.data['needUpdate'] as bool? ?? true;
if (!needUpdate) {
debugPrint('[VersionChecker] 服务器返回无需更新');
debugPrint('[VersionChecker] 服务器返回 needUpdate=false无需更新');
return null;
}
debugPrint('[VersionChecker] 服务器返回需要更新');
debugPrint('[VersionChecker] 服务器返回 needUpdate=true最新版本: ${response.data['version']} (versionCode=${response.data['versionCode']})');
return VersionInfo.fromJson(response.data);
}
debugPrint('[VersionChecker] 异常状态码: ${response.statusCode}');
return null;
} catch (e) {
} catch (e, stack) {
debugPrint('[VersionChecker] 获取版本失败: $e');
debugPrint('[VersionChecker] StackTrace: $stack');
return null;
}
}
@ -61,13 +70,17 @@ class VersionChecker {
if (latestInfo == null) return null;
final currentCode = int.tryParse(currentInfo.buildNumber) ?? 0;
debugPrint('[VersionChecker] 版本比较: 服务器 versionCode=${latestInfo.versionCode} vs 本地 buildNumber=$currentCode');
if (latestInfo.versionCode > currentCode) {
debugPrint('[VersionChecker] 有新版本可更新');
return latestInfo;
}
debugPrint('[VersionChecker] 本地版本不低于服务器版本,无需更新');
return null;
} catch (e) {
debugPrint('Check update failed: $e');
} catch (e, stack) {
debugPrint('[VersionChecker] checkForUpdate 异常: $e');
debugPrint('[VersionChecker] StackTrace: $stack');
return null;
}
}