게임 개발자가 되고 싶은 사람으로서 유니티는 정말 마스터하고 싶은 개발 도구 중 하나입니다.

어설프게 구글 플레이스토어에 조잡한 게임 하나를 출시한 게 아직은 포트폴리오의 전부니, 지금으로써는 꾸준히 노력할 수 밖에 없군요. 인생 두 번째 프로젝트를 시작해볼까 합니다.

컨셉은 런 게임으로 잡았습니다. 생각나는대로 기획서라고 작성해보긴 했지만, 제대로 쓰려면 한참 멀었군요. 일단 닥치는대로 만들어보기라도 합시다!

게임 개발을 시작하기 전에, 우선 유니티 세팅부터 합시다. 플레이스토어에 배포하는 것을 전제로 한다면, 몇 가지를 미리 확인하고 넘어가야만 합니다. 그러지 않았다가는 애써 빌드한 번들을 버리고 설정을 변경한 후 다시 빌드해야 하는 일이 생기니까요.

요구 조건을 확인해봅시다.

!1. 2021년 8월부로 플레이스토어를 통해 배포되는 모든 앱은 안드로이드 앱 번들(.aab) 형태로 빌드되어야 합니다.

!2. 앱 번들은 키로 서명되어 있어야 합니다.

!3. API 타겟팅 수준Level 30 이상이어야 합니다.

!4. 64bit 를 지원해야 합니다.

!5. 적절한 패키지 이름이 있어야 합니다.

*6. (두 번째부터) 버전 코드는 지금까지 업로드된 번들 라이브러리의 모든 버전의 코드와 달라야 합니다.

*7. (인스턴트 앱으로 출시할 경우) 빌드된 앱의 크기는 15MB를 넘지 않아야 합니다.

위에 나열된 조건들은 !로 표시된 것은 필요조건이며, *로 표시된 것은 부분적인 조건입니다. 위의 조건을 하나라도 충족하지 못하면, 텅 빈 앱이라 할지라도 플레이 콘솔은 새빨간 글씨를 보여주며 이 앱은 받아줄 수 없다고 해버리죠. 저 조건들을 다 채웠다하더라도 콘솔에 업로드된 번들은 여전히 경고를 뱉어낼 공산이 큽니다. 디버깅 및 무결성을 위한 몇 가지 장치를 해놓지 않으면 업로드는 해주더라도, 경고가 사라지지 않습니다.

그럼 저걸 다 어떻게 설정하는지 하나하나 짚어봅시다.

1. .aab로 빌드하기

애석하게도 유니티의 안드로이드 앱 빌드 초기 설정은 .apk입니다. 따로 .aab로 빌드하겠다!고 알려주지 않는 이상 유니티는 .apk 파일을 만들어 냅니다.

하지만 한 가지 더 짚고 넘어가야 할 사실이 있는데, 일반 유니티로는 앱 번들은 고사하고 .apk파일조차 만들어낼 수가 없다는 겁니다! 유니티 개발은 C# 또는 JavaScript로 하지만, 안드로이드는 JAVA로 개발하죠. 유니티에 JAVA 빌드를 위한 도구를 달아주지 않는 이상 안드로이드 앱은 만들 수가 없습니다.

module_install

Unity Hub설치설정(설치된 에디터 우측 상단의 톱니바퀴 아이콘) → 모듈 추가에서 Android Build Support를 찾아 설치해 줍니다. 안드로이드로 타겟 플랫폼을 변경한 후에도 앱 빌드가 제대로 되지 않으면 Java Development Tool이 제대로 설치되었는지 확인해줍니다.

preferences jdk_path

EditPreferences…External Tools에서 Android를 확인합니다. 필요한 파일을 모두 설치해줍니다. 위 과정만 제대로 끝냈다면 앱 번들은 빌드할 수 있습니다.

build_settings aab

.aab로 빌드하겠다고 체크하면 목표는 달성입니다. 하지만 구글 플레이스토어에는 아직 올릴 수가 없습니다. 그럼 Player Settings를 열고 필요한 나머지를 모두 설정해 봅시다.

2. 앱 서명하기

create_key key_password

우선 서명을 해야 합니다. Player"Publishing SettingsKeystore Manager에서 새로운 Keystore를 만듭니다. 비밀번호는 앞으로 써야하니까 신중하게 만들고 잊어버리지 마세요! 일단 키를 등록했다면, 에디터를 새로 켤 때마다 비밀번호를 입력해 주어야 합니다. 이 또한 "Publishing Settings에서 할 수 있습니다.

3. API Level 30 이상

settings

Player"Other Settings에서 Target API Level을 찾아 30이상으로 설정해줍니다. API Level은 유니티에 설치된 SDK의 타깃 수준에 따라 빌드 가능한 레벨이 정해져 있습니다. 만일 설치된 SDK 버전이 설정된 레벨을 빌드할 수 없는 경우 앱 빌드 중 경고 창이 나오며, 에디터가 적정 버전의 SDK를 설치해 줄 수 있고, 또는 Preferences에서 직접 설치할 수도 있습니다.

settings

2022.01.12 추가 : 안드로이드 12로 시스템 업데이트를 한 후 타깃 API를 32로 설정하는 경우 패키지 파싱 문제를 일으키며 설치가 제대로 되지 않을 수 있습니다. (안드로이드12의 API 레벨은 31입니다)

API Level 설정 위에는 버전 코드 입력란이 있습니다.

  • 버전 코드는 초기에 1로 설정되어 있습니다. 새로운 버전을 업로드할 경우 버전 코드를 올려주어야 합니다. 업데이트 등 플레이스토어의 필수적인 기능들은 모두 이 숫자를 기준으로 하기 때문에, 반드시 제대로 설정해 줍시다. version code 위의 version은 개발자가 임의로 설정하는 것으로, 기존의 버전 양식대로 입력하면 되고, 플레이스토어에서는 기능적으로 사용되는 변수는 아닙니다.
  • 만약 인스턴트 앱을 함께 출시할 계획이라면, 설치해야 하는 일반적인 번들의 버전 코드는 큰 수로 설정해 주는 것이 좋습니다. 인스턴트 앱에서 앱 설치로 넘어갈 경우, 버전 코드가 더 높은 번들을 찾기 때문입니다.

4. 64bit 지원

set_64

Scripting BackendIL2CPP로 변경해준 후, ARM64를 체크해줍니다.

5. 패키지 이름 만들기

set_package_name

초기에는 패키지 이름이 com.defaultCompany.[project_name]으로 설정되어 있습니다. 이걸 지나치고 그대로 콘솔에 업로드해버리면 유효하지 않은 이름이라는 오류를 뱉어냅니다. com.[publisher_name].[project_name]양식에 맞게 변경해 줍니다.



이렇게 해서 설정은 모두 끝났습니다. 이제 게임을 만들어보죠.