[Unity]/[Unity]

[Unity] 유니티 빌드 버전 관리하는 법

극꼼 2021. 12. 19. 20:36
반응형


버전은 일반적으로 위와 같이 "(Major 버전 번호).(Minor 버전 번호).(Patch 버전 번호)" 규칙으로 표기합니다. 

 

유니티에서는 이 버전을 "Edit - Project Settings - Player - Version" 루트를 통해 수동으로 관리합니다.

 

 

하지만 버전업 할 때마다 이 루트를 통해 직접 수정해주게 되면 번거롭기 때문에, 자동으로 업데이트되게 하려 합니다.

Editor에 버전과 관련된 스크립트를 작성해 아래와 같이 4가지 기능을 추가할 겁니다. 

1. Auto Increase Build Version : 빌드할 때마다 자동으로 패치 버전이 올라가게 설정

2. Check Current Version : 현재 버전 체크

3. Increase Major Version : Major 버전 업

4. Increase Minor Version : Minor 버전 업


1. Auto Increase Build Version

체크해두면 빌드한 후에 자동으로 패치 버전이 올라가는 메뉴입니다.

MenuItem 은 에디터 메뉴에 등록해주는 키워드입니다.

[MenuItem(AutoIncreaseMenuName, false, 1)]
private static void SetAutoIncrease()
{
    AutoIncrease = !AutoIncrease;
    EditorPrefs.SetBool(AutoIncreaseMenuName, AutoIncrease);
    Debug.Log("Auto Increase : " + AutoIncrease);
}

[MenuItem(AutoIncreaseMenuName, true)]
private static bool SetAutoIncreaseValidate()
{
    Menu.SetChecked(AutoIncreaseMenuName, AutoIncrease);
    return true;
}

 

2. Check Current Version

콘솔창에 현재 버전을 체크해주는 메뉴입니다.

[MenuItem("Build/Check Current Version", false, 2)]
private static void CheckCurrentVersion()
{
    Debug.Log("Build v" + PlayerSettings.bundleVersion +
         " (" + PlayerSettings.Android.bundleVersionCode + ")"); //현재 버전 표시
}

 

3. Increase Major Version

Major 버전을 올려주는 메뉴입니다. 

static void EditVersion(int majorIncr, int minorIncr, int buildIncr)
{
    string[] lines = PlayerSettings.bundleVersion.Split('.');

    int MajorVersion = int.Parse(lines[0]) + majorIncr;
    int MinorVersion = int.Parse(lines[1]) + minorIncr;
    int Build = int.Parse(lines[2]) + buildIncr;

    PlayerSettings.bundleVersion = MajorVersion.ToString("0") + "." +
                                   MinorVersion.ToString("0") + "." +
                                   Build.ToString("0");
    PlayerSettings.Android.bundleVersionCode =
         MajorVersion * 10000 + MinorVersion * 1000 + Build;
    CheckCurrentVersion();
}

[MenuItem("Build/Increase Major Version", false, 51)]
private static void IncreaseMajor()
{
    string[] lines = PlayerSettings.bundleVersion.Split('.');
    EditVersion(1, -int.Parse(lines[1]), -int.Parse(lines[2]));
}

 

4. Increase Minor Version

Minor 버전을 올려주는 메뉴입니다. 

[MenuItem("Build/Increase Minor Version", false, 52)]
private static void IncreaseMinor()
{
    string[] lines = PlayerSettings.bundleVersion.Split('.');
    EditVersion(0, 1, -int.Parse(lines[2]));
}

 


* 참조 사이트 : 두야님 블로그

* Version_Manager 전체 코드 있는 깃허브 

 

반응형