테스트를 위해 ABB가 아닌 APK로 빌드를 했다.
플레이 스토어에 출시했을 때는 실행이 안 되는 버그는 없었기에 생각없이 그냥 APK 파일로 빌드를 했다.
근데 이제 APK를 통해 게임을 폰에 설치했을 때는 실행이 안 되는 무슨 말도 안되는 버그가 생겼다..
놀랍게도 Build Settings에서 Build And Run으로 폰으로 연결해서 빌드 했을 때는 문제 없이 게임이 실행이 되었다.
그래서 로그캣을 찍어보니..
NullReferenceException: Object reference not set to an instance of an object.
at TMPro.TMP_Settings.get_defaultStyleSheet ()
.........
어쩌고 저쩌고가 나왔다..
진짜 몇 시간동안 이것저것 삽질 많이 해봤는데 결국 해결 방법은 매우 간단했다.
Build Settings -> Player Settings... -> Publishing Settings에 들어가면 맨 밑에 있는
Split Application Binary를 체크해제 하면 된다.
이렇게 간단한 걸 몇 시간이나 붙잡고 있었다니.. 그래도 해결해서 다행이라고 생각한다..
[ Split Application Binary ]
이제 이게 뭐길래 이거 때문에 에러가 났는지 궁금해서 찾아봤다.
유니티 레퍼런스에 따르면
APK 확장 파일(OBB) 지원
APK 확장파일은 Google Play 스토어의 100MB 앱 크기 제한에 대한 해결 방법입니다. 만일 앱이 100MB를 초과하는 경우 출력 패키지를 주 부분(APK)과 확장 파일(OBB)로 나누어야 합니다.
결국은 큰 프로젝트의 용량을 줄일 수 있도록 APK와 OBB로 나눈다는 뜻이다.
이번 프로젝트는 크기가 크지 않기 때문에 빠르게 OBB와 손절을 했다.
물론 프로젝트의 크기가 크다면 OBB를 이용해야 할 수도 있다. 이 방법도 레퍼런스에 잘 나와있으니
유니티 레퍼런스 [여기]에 들어가서 확인하길 바란다.
그렇다면 OBB란 무엇인가.. 이것도 역시 레퍼런스에 나와있다.
Split Application Binary 옵션이 활성화된 경우 앱은 다음과 같이 분할됩니다.
APK: 실행 가능한 파일(Java와 네이티브), 플러그인, 스크립트, 첫 씬 데이터(Index 0)를 포합합니다.
OBB: 나머지 씬, 리소스, 스트리밍 에셋 등 나머지 모두를 포함합니다.
그리고 Build and Run으로 빌드했을 때는 문제 없이 실행되었던 이유까지 알게 되었다.
유니티 레퍼런스에 보면
Build and Run 을 선택한 경우 Unity는 디바이스에 APK와 OBB 파일을 설치합니다. __Build__ 를 선택하고 ADB 유틸리티를 사용하여 앱을 수동으로 설치하려면 APK 파일을 우선 설치한 후 OBB를 디바이스의 올바른 위치에 복사해야 합니다.
(중략)
앱이 시작하였으나 OBB를 찾아서 로드할 수 없는 경우 첫 신만을 사용할 수 있게 됩니다. OBB의 콘텐츠를 분리하여 사용하지 마십시오. APK와 OBB는 각각의 번들로서 단일 APK를 취급하듯 해야 합니다.
네.. 뭐.. 예.. 이래서 안 된 것이었다..
같은 문제를 겪는다면 본인처럼 헛수고 안 하는 마음으로 포스팅을 마칩니다.
감사합니다.
'Unity | 유니티 > Unity 버그 수정 일지' 카테고리의 다른 글
[ Unity ] ProjectBrower.Repaint 해결 방법 | 프로젝트 무한 로딩 (0) | 2023.09.05 |
---|---|
[Unity] 에디터 설치 오류 해결 방법 모음.zip | Validation Failed (1) | 2023.07.23 |
[Unity] 애드몹 빌드 오류 | Unsupported class version number [xx.0] (maximum xx.0, Java x.x) 해결 방법 | proguard 업데이트 (0) | 2023.02.22 |
[Unity] BG Database 사용 방법(4) - Nested Field 사용하기 (0) | 2022.12.05 |
[Unity] BG Database 사용 방법(3) - Nested Field 만들기 (1) | 2022.12.02 |