유니티 프로젝트 (1) - 구글 플레이 스토어 업로드 설정하기
게임 개발자가 되고 싶은 사람으로서 유니티는 정말 마스터하고 싶은 개발 도구 중 하나입니다.
어설프게 구글 플레이스토어에 조잡한 게임 하나를 출시한 게 아직은 포트폴리오의 전부니, 지금으로써는 꾸준히 노력할 수 밖에 없군요. 인생 두 번째 프로젝트를 시작해볼까 합니다.
컨셉은 런 게임으로 잡았습니다. 생각나는대로 기획서라고 작성해보긴 했지만, 제대로 쓰려면 한참 멀었군요. 일단 닥치는대로 만들어보기라도 합시다!
게임 개발을 시작하기 전에, 우선 유니티 세팅부터 합시다. 플레이스토어에 배포하는 것을 전제로 한다면, 몇 가지를 미리 확인하고 넘어가야만 합니다. 그러지 않았다가는 애써 빌드한 번들을 버리고 설정을 변경한 후 다시 빌드해야 하는 일이 생기니까요.
요구 조건을 확인해봅시다.
!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
빌드를 위한 도구를 달아주지 않는 이상 안드로이드 앱은 만들 수가 없습니다.
Unity Hub
의 설치 → 설정(설치된 에디터 우측 상단의 톱니바퀴 아이콘) → 모듈 추가에서 Android Build Support를 찾아 설치해 줍니다.
안드로이드로 타겟 플랫폼을 변경한 후에도 앱 빌드가 제대로 되지 않으면 Java Development Tool이 제대로 설치되었는지 확인해줍니다.
Edit → Preferences… → External Tools에서 Android를 확인합니다. 필요한 파일을 모두 설치해줍니다. 위 과정만 제대로 끝냈다면 앱 번들은 빌드할 수 있습니다.
.aab로 빌드하겠다고 체크하면 목표는 달성입니다. 하지만 구글 플레이스토어에는 아직 올릴 수가 없습니다. 그럼 Player Settings
를 열고 필요한 나머지를 모두 설정해 봅시다.
2. 앱 서명하기
우선 서명을 해야 합니다. Player
→ "Publishing Settings
→ Keystore Manager
에서 새로운 Keystore를 만듭니다. 비밀번호는 앞으로 써야하니까 신중하게 만들고 잊어버리지 마세요! 일단 키를 등록했다면, 에디터를 새로 켤 때마다 비밀번호를 입력해 주어야 합니다. 이 또한 "Publishing Settings
에서 할 수 있습니다.
3. API Level 30 이상
Player
→ "Other Settings
에서 Target API Level을 찾아 30이상으로 설정해줍니다. API Level은 유니티에 설치된 SDK
의 타깃 수준에 따라 빌드 가능한 레벨이 정해져 있습니다. 만일 설치된 SDK 버전이 설정된 레벨을 빌드할 수 없는 경우 앱 빌드 중 경고 창이 나오며, 에디터가 적정 버전의 SDK를 설치해 줄 수 있고, 또는 Preferences에서 직접 설치할 수도 있습니다.
2022.01.12 추가 : 안드로이드 12로 시스템 업데이트를 한 후 타깃 API를 32로 설정하는 경우 패키지 파싱 문제를 일으키며 설치가 제대로 되지 않을 수 있습니다. (안드로이드12의 API 레벨은 31입니다)
API Level 설정 위에는 버전 코드 입력란이 있습니다.
- 버전 코드는 초기에 1로 설정되어 있습니다. 새로운 버전을 업로드할 경우 버전 코드를 올려주어야 합니다. 업데이트 등 플레이스토어의 필수적인 기능들은 모두 이 숫자를 기준으로 하기 때문에, 반드시 제대로 설정해 줍시다. version code 위의 version은 개발자가 임의로 설정하는 것으로, 기존의 버전 양식대로 입력하면 되고, 플레이스토어에서는 기능적으로 사용되는 변수는 아닙니다.
- 만약 인스턴트 앱을 함께 출시할 계획이라면, 설치해야 하는 일반적인 번들의 버전 코드는 큰 수로 설정해 주는 것이 좋습니다. 인스턴트 앱에서 앱 설치로 넘어갈 경우, 버전 코드가 더 높은 번들을 찾기 때문입니다.
4. 64bit 지원
Scripting Backend
를 IL2CPP로 변경해준 후, ARM64를 체크해줍니다.
5. 패키지 이름 만들기
초기에는 패키지 이름이 com.defaultCompany.[project_name]
으로 설정되어 있습니다. 이걸 지나치고 그대로 콘솔에 업로드해버리면 유효하지 않은 이름이라는 오류를 뱉어냅니다. com.[publisher_name].[project_name]
양식에 맞게 변경해 줍니다.
이렇게 해서 설정은 모두 끝났습니다. 이제 게임을 만들어보죠.