안드로이드 버전 정보 표시 문제 해결 (Lovable 변경사항 병합)

This commit is contained in:
hansoo
2025-03-23 21:39:27 +09:00
parent 0aca18c276
commit 8279d4bb17
3 changed files with 102 additions and 110 deletions

View File

@@ -1,4 +1,3 @@
package com.lovable.zellyfinance;
import android.os.Build;
@@ -27,17 +26,28 @@ public class BuildInfoPlugin extends Plugin {
JSObject ret = new JSObject();
// 빌드 정보 수집
// BuildConfig에서 동적으로 버전 정보 가져오기
String versionName = BuildConfig.VERSION_NAME;
int versionCode = BuildConfig.VERSION_CODE;
int buildNumber = BuildConfig.BUILD_NUMBER;
String packageName = getContext().getPackageName();
int buildNumber;
// 디버깅을 위한 로그 출력 개선
Log.d(TAG, "앱 버전 정보 준비 - 버전명: " + versionName);
Log.d(TAG, "앱 버전 정보 준비 - 버전 코드: " + versionCode);
Log.d(TAG, "앱 버전 정보 준비 - 빌드 번호: " + buildNumber);
Log.d(TAG, "앱 버전 정보 준비 - 패키지명: " + packageName);
// 빌드 넘버는 커스텀 필드이므로 try-catch로 확인
try {
buildNumber = BuildConfig.BUILD_NUMBER;
Log.d(TAG, "BuildConfig.BUILD_NUMBER: " + buildNumber);
} catch (Exception e) {
Log.e(TAG, "BUILD_NUMBER 필드 접근 오류, 기본값 사용", e);
buildNumber = versionCode; // 빌드 넘버가 없으면 버전 코드와 동일하게 설정
}
// 디버깅을 위한 로그 출력
Log.d(TAG, "BuildConfig 클래스: " + BuildConfig.class.getName());
Log.d(TAG, "버전명: " + versionName);
Log.d(TAG, "버전 코드: " + versionCode);
Log.d(TAG, "빌드 번호: " + buildNumber);
String packageName = getContext().getPackageName();
Log.d(TAG, "패키지명: " + packageName);
// 결과 객체에 값 설정
ret.put("versionName", versionName);
@@ -49,25 +59,17 @@ public class BuildInfoPlugin extends Plugin {
ret.put("platform", "android");
// 현재 날짜를 디버깅 정보로 추가
ret.put("buildDate", new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new java.util.Date()));
ret.put("timestamp", System.currentTimeMillis());
Log.d(TAG, "빌드 정보 응답 성공: " + ret.toString());
// 성공 응답
call.resolve(ret);
} catch (Exception e) {
Log.e(TAG, "빌드 정보 가져오기 실패", e);
// 오류 발생 시에도 기본 정보 반환하여 앱 중단 방지
JSObject errorResult = new JSObject();
errorResult.put("versionName", "1.1.1.2"); // 최신 버전으로 업데이트
errorResult.put("versionCode", 6); // 최신 버전 코드로 업데이트
errorResult.put("buildNumber", 6); // 최신 빌드 번호로 업데이트
errorResult.put("error", e.getMessage());
errorResult.put("errorType", e.getClass().getName());
errorResult.put("platform", "android-error");
Log.d(TAG, "오류 발생으로 기본값 반환: " + errorResult.toString());
call.resolve(errorResult);
// 오류 로깅 강화
Log.e(TAG, "빌드 정보 가져오기 오류", e);
JSObject errorObj = new JSObject();
errorObj.put("message", e.getMessage());
errorObj.put("stack", Log.getStackTraceString(e));
call.reject("빌드 정보 가져오기 실패", errorObj);
}
}
}