📌 개요

만약 유니티 프로젝트에서 어드레서블을 사용할 때, 안드로이드 빌드 이슈가 종종 발생합니다.
그럴 때마다 ChapGPT 또는 구글링을 통해 해결하곤 합니다.
오늘은 제가 이때까지 어드레서블 이슈를 경험하며 얻었던 해결책을 정리할까 합니다.
(사실 오늘 회사에서 어드레서블 빌드 문제로 2시간 동안 삽질함)

여러분은 저처럼 삽질하지 마시길...
📌 해결책 1. Addressables Groups 체크

[ Window ] - [ Asset Management ] - [ Addressables ] - [ Groups ] 클릭
Addressables Groups은 Asset을 그룹으로 관리하는 핵심 개념이예요.
먼저 위처럼 Group이 잘 추가됐는지 확인합니다.

여기서 중요한 점은 Group 빌드 설정입니다.
각 Group은 빌드 또는 로드되는 방식을 정의하는 설정이 존재해요.
그런데 간혹 설정이 빠진 경우가 있어서 빌드가 되지 않곤 한답니다.

위 인스펙터를 살펴보면 "Add Schema" 버튼을 확인할 수 있습니다.
여기서 Asset Group 빌드 및 로드 동작을 정의할 수 있어요.
그러니 만약 Group 설정이 휑하다면 Add Schema 버튼으로 위처럼 동작을 추가해주세요.
📌 해결책 2. Play Mode Script 체크

Play Mode Script는 Addressables Asset을 어떻게 로드할 것인지 설정하는 도구입니다.
만약 Use Existing Build (Android)로 설정하지 않고 빌드하게 된다면 정상적으로 로드되지 않을 수 있어요.
Use Asset Database (fastest)는 에디터의 에셋 데이터베이스에서 직접 로드하기 때문에 번들 파일을 생성하지 않으며, Simulate Groups (advanced)는 번들을 시뮬레이션 할 뿐, 실제로 번들 파일을 생성하지 않습니다.
그래서 Android 빌드 시 Use Existing Build (Android)을 선택해주세요.

혹시 모르니 이전에 생성된 빌드 데이터를 삭제하고, 새롭게 빌드해주는 것도 좋습니다.
[ Build ] - [ Clean Build ] - [ All ] 을 선택하여 데이터를 제거해주고,

[ New Build ] - [ Default Build Script ] 을 선택하여 새로운 빌드 데이터를 생성합니다.
위 과정을 수행한 후 다시 한번 빌드하여 테스트해보세요!
📌 해결책 3. Lower Case & Upper Case 체크

혹시 아직까지 해결되지 않으셨나요...?
그렇다면 아마 Key 값을 올바르게 설정하지 않았을 수 있습니다.
단순히 틀린 Key 값이 아닌, OS에 따른 Lower & Uppder Case일 수 있으니 반드시 체크해보세요!
특히 위 과정을 모두 수행하였으며, Play Mode에서는 올바르게 작동하는데, Android Build 시 작동하지 않는다면 말이죠.
만약 여러분이 특정 Prefab을 "1000_Prefab" 이라는 Addressable Key로 설정했다고 가정하겠습니다.
그런데 만약 실수로 스크립트에서 런타임으로 "1000_prefab" Key 값으로 에셋을 로드한다면?
놀랍게도 Play Mode에서는 정상적으로 로드될 수도 있습니다.
하지만 Android에서는 정상적으로 Key을 불러올 수 없죠.
왜냐하면 OS에 따라 대소문자를 구분하거나 구분하지 않을 수 있기 때문입니다.
따라서 Key 값이 제대로 일치하는지 다시 한 번 확인해보세요.
+ 추가) Label을 통한 Asset 로드


위 사진은 Addressable Asset 중 일부입니다.
보시면 폴더에 Label이 붙어있는 것을 확인할 수 있어요.
Label을 통해 Asset을 로드하는 경우에는 반드시 Lower Case로 설정하셔야 합니다.
'유니티(Unity) > 이슈 도감' 카테고리의 다른 글
[Unity 이슈] Sprite Atlas가 딱히 효과가 없는 경우 (SRP Batching 관련) (1) | 2024.12.31 |
---|---|
[Unity 이슈] Editor에서는 잘 되지만 Build가 안되는 이슈 (1) | 2024.12.29 |
[Unity 이슈] Package 파일 참조하는 방법 (0) | 2024.12.28 |
[Unity 이슈] InitializeOnLoad 주의 사항 (0) | 2024.12.23 |
[Unity 이슈] 커스텀 패키지 Addressable 이슈 (1) | 2024.12.22 |