[유니티] 구글 플레이스토어 앱 업데이트 띄우는 법

2026. 1. 26. 00:45·Unity

몰랐던 사실인데, 플레이스토어에 등록된 앱을 버전만 업데이트해서 올려도 사용자에 폰에 업데이트 하라는 알림이 안뜬다. 그동안 해왔던 게임들에서 버전이 달라지면 자동으로 마켓으로 이동시킨 뒤에 업데이트 하도록 유도하는 기능이 있었는데, 구글에서 알아서 해주는게 아니였던 모양이다.

 

구글 플레이 버전 업데이트 알림 추가하는 방법

https://github.com/google/play-unity-plugins/releases 

 

Releases · google/play-unity-plugins

The Google Play Plugins for Unity provide C# APIs for accessing various Play services - google/play-unity-plugins

github.com

먼저 위 사이트에 접속해서 com.google.play.appupdate를 찾아 해당 Pakage를 다운 받아준다.

 

이후 Edit - Project Setting - publlishing Settings에서 

Custom Main Gradle Template 설정을 체크해주고, Minify에 Release, Debug, Split 옵션등을 체크 해제해준다.

 

그러면 유니티 프로젝트 폴더내에 Assets - Plugins - Android 경로내에 mainTemplate.gradle이라는 파일이 생성되었을 것이다.

백업 파일용으로 여러개가 있을 수도 있는데, 이름에 backup이 안붙은게 원본이다.

 

implementation 'androidx.activity:activity:1.6.0' 
implementation 'androidx.appcompat:appcompat:1.6.1'
implementation 'com.google.android.play:app-update:2.1.0'

 

mainTemplate.gradle 파일 내에 위와 같은 부분을 찾아서, 위 코드 3줄을 추가해준다.

 

아마 com.google.android.play:app-update:2.1.0은 위에서 패키지를 받는 순간 아마 2.0.0으로 이미 추가 되어있을 수도 있는데, 필자의 경우 2.0.0 버전 사용시 오류가 발생할 수 있다고, 앱 번들을 추가하는 도중에 구글 콘솔 쪽에서 반려를 당했었다.

따라서 만약 안되시는 분들은 중간의 버전을 2.1.0으로 수정해주면 똑같이 해결 될 것이라고 생각한다.

 

이후, 아까 받은 Updater라던가 안드로이드 관련 패키지들이 세팅이 안되어 있을 수도 있기 때문에, Assets - External Dependency Manage - Android Esolver - Resolve 버튼을 눌러줍시다.

 

 

마지막으로 프로젝트에 아무 빈 오브젝트나 생성해서, 아래 스크립트를 작성해서 붙여주고나면,

모바일 상에서 신규 업데이트가 생겼을 때, 알림 메세지와 동시에 플레이스토어 앱 링크로 이동시켜주는 팝업이 생성된다.

using System.Collections;
using Google.Play.AppUpdate;
using Google.Play.Common;
using UnityEngine;

public class VersionManager : MonoBehaviour
{
    private AppUpdateManager _appUpdateManager;

    private void Start()
    {
        // 에디터에서는 동작하지 않으므로 로그만 찍고 종료
#if UNITY_EDITOR
        Debug.Log("[VersionManager] In-app update works on Android devices only.");
        return;
#endif
        
        // 안드로이드 기기일 경우 업데이트 체크 시작
        StartCoroutine(CheckForUpdate());
    }

    private IEnumerator CheckForUpdate()
    {
        // AppUpdateManager 인스턴스 생성
        _appUpdateManager = new AppUpdateManager();

        // 업데이트 정보 요청 (현재 설치된 버전 vs 스토어 버전 비교)
        PlayAsyncOperation<AppUpdateInfo, AppUpdateErrorCode> appUpdateInfoOperation = _appUpdateManager.GetAppUpdateInfo();

        // 요청이 완료될 때까지 대기
        yield return appUpdateInfoOperation;

        // 요청 성공 여부 확인
        if (appUpdateInfoOperation.IsSuccessful)
        {
            var appUpdateInfoResult = appUpdateInfoOperation.GetResult();

            // Case A: 업데이트가 사용 가능함 (UpdateAvailable)
            if (appUpdateInfoResult.UpdateAvailability == UpdateAvailability.UpdateAvailable)
            {
                Debug.Log("[VersionManager] New version found! Starting update.");
                
                // 즉시 업데이트(Immediate) 요청
                var appUpdateOptions = AppUpdateOptions.ImmediateAppUpdateOptions();
                yield return _appUpdateManager.StartUpdate(appUpdateInfoResult, appUpdateOptions);
            }
            // Case B: 이전에 업데이트가 시작되었으나 중단된 경우 (DeveloperTriggeredUpdateInProgress)
            else if (appUpdateInfoResult.UpdateAvailability == UpdateAvailability.DeveloperTriggeredUpdateInProgress)
            {
                Debug.Log("[VersionManager] Resuming interrupted update.");
                
                var appUpdateOptions = AppUpdateOptions.ImmediateAppUpdateOptions();
                yield return _appUpdateManager.StartUpdate(appUpdateInfoResult, appUpdateOptions);
            }
            else
            {
                Debug.Log("[VersionManager] App is up to date. No update required.");
            }
        }
        else
        {
            // 오류 처리 (네트워크 문제, 스토어 연결 실패 등)
            Debug.LogError($"[VersionManager] Failed to get update info. Error: {appUpdateInfoOperation.Error}");
        }
    }
}

위 코드는 새로운 업데이트가 생기면 인앱에서 오버레이 형태로 스토어를 열어주는데,

이게 싫다면 "업데이트를 하시겠습니까?"와 같은 UI를 띄우고 아래 코드를 통해 플레이스토어 앱 링크로 이동 시키는 방법을 사용해도 된다.

 

Application.OpenURL($"market://details?id={Application.identifier}");

 

'Unity' 카테고리의 다른 글

[유니티] Git LFS 지정으로 날아간 파일 복구  (0) 2026.01.28
유니티 전면 광고 적용  (0) 2025.02.03
유니티 모바일 광고 적용할 때 참고용  (0) 2025.01.27
유니티 타이머 텍스트 흔들림  (0) 2025.01.15
[Unity 6 Challenge] 김치 런  (0) 2025.01.06
'Unity' 카테고리의 다른 글
  • [유니티] Git LFS 지정으로 날아간 파일 복구
  • 유니티 전면 광고 적용
  • 유니티 모바일 광고 적용할 때 참고용
  • 유니티 타이머 텍스트 흔들림
하길
하길
게임 개발을 위한 나의 모든 지식의 총 집합체
  • 하길
    Until Dawn
    하길
  • 전체
    오늘
    어제
  • 글쓰기 관리
    • 분류 전체보기 (143)
      • Unreal Engine 5 (0)
      • Unity (31)
        • 3D (5)
        • 2D (7)
      • C++ (13)
      • C# (11)
      • 알고리즘 (35)
      • TIL (22)
      • 기타 (1)
      • 대장간 (12)
      • 메모 (2)
      • 게임리뷰 (0)
      • 일상 (0)
        • 챌린지 (0)
      • Article (3)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

  • 최근 댓글

  • hELLO· Designed By정상우.v4.10.1
하길
[유니티] 구글 플레이스토어 앱 업데이트 띄우는 법
상단으로

티스토리툴바