반응형
유니티 C# 앱 버전 비교해서 업데이트 하기 간단 구현 AWS 활용
AWS Json 형식
{
"latest_version": "1.2.3",
"update_urls": {
"android": "https://play.google.com/store/apps/details?id=com.example.myapp",
"ios": "https://apps.apple.com/app/id1234567890"
}
}
코드 작성
using System;
using System.IO;
using Newtonsoft.Json.Linq;
using UnityEngine;
using UnityEngine.SceneManagement;
public class VersionChecker : MonoBehaviour
{
[Header("AWS JSON 파일 경로")]
public string awsJsonFilePath = "aws_versions.json";
private string currentVersion;
private string latestVersion;
private string androidStoreUrl;
private string iosStoreUrl;
void Start()
{
// 현재 앱 버전 가져오기
currentVersion = Application.version;
Debug.Log($"현재 앱 버전: {currentVersion}");
// AWS JSON 파일 읽기 및 처리
LoadAndCheckVersion();
}
void LoadAndCheckVersion()
{
try
{
// JSON 파일 읽기
string jsonContent = File.ReadAllText(awsJsonFilePath);
JObject json = JObject.Parse(jsonContent);
// 최신 버전 및 업데이트 URL 추출
latestVersion = json["latest_version"]?.ToString();
androidStoreUrl = json["update_urls"]?["android"]?.ToString();
iosStoreUrl = json["update_urls"]?["ios"]?.ToString();
Debug.Log($"최신 버전: {latestVersion}");
// 버전 비교
if (Version.TryParse(currentVersion, out var current) &&
Version.TryParse(latestVersion, out var latest))
{
if (current < latest)
{
Debug.LogWarning("앱 버전이 최신이 아닙니다. 업데이트가 필요합니다.");
PromptUpdate();
}
else
{
Debug.Log("앱 버전이 최신입니다. 계속 진행합니다.");
ProceedToApp();
}
}
else
{
Debug.LogError("버전 비교 실패: 올바른 형식이 아닙니다.");
}
}
catch (Exception ex)
{
Debug.LogError($"JSON 파일 처리 중 오류 발생: {ex.Message}");
}
}
void PromptUpdate()
{
// 업데이트 메시지 표시 (UI 또는 팝업)
Debug.Log("사용자에게 업데이트를 요청합니다.");
#if UNITY_ANDROID
Application.OpenURL(androidStoreUrl);
#elif UNITY_IOS
Application.OpenURL(iosStoreUrl);
#else
Debug.LogError("지원되지 않는 플랫폼입니다.");
#endif
// 업데이트 강제 시 앱 종료
Application.Quit();
}
void ProceedToApp()
{
// 앱이 최신 버전일 경우 다음 씬 로드 등 진행
Debug.Log("앱을 실행합니다.");
SceneManager.LoadScene("MainScene");
}
}
반응형