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:
parent
369ecb2f29
commit
0f328b9794
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue