[Debugging] Unity WebGL build 시 발생하는 UnicodeDecodeError 해결 방법

/// <summary>

/// UnicodeDecodeError

/// @author         : Incentive Code

/// @last update  : 2023. 03. 02

/// @version        : 1.0

/// @update

///     [2023. 03. 02] v1.0 - 최초 작성. 

///        jslib 파일에서 한글 주석 삭제 후 다시 빌드.

/// </summary>


기존에는 Unity 2020.3.37f1 을 사용하고 있었습니다.

LTS 버전이라 안정적으로 잘 사용하고는 있었는데, 왜인지는 알 수 없지만 Mac OS 에서 WebGL 빌드가 정상적으로 되지 않는 문제가 있습니다.

회사에서는 Windows 를 사용하고, 집에서는 Mac OS 를 사용하는 저로서는 집에서 일할 때 '빌드가 되지 않는다.' 는 점이 은근히 불편한 문제였습니다. 임시 방편으로 개발은 Mac 에서 하고 빌드만 Window 노트북으로 진행하고 있었습니다. 

그러다가 2021.3.13f1 버전을 설치해서 몇 가지 실험을 해봤는데, Mac OS 에서도 WebGL 빌드가 정상적으로 되는 것을 확인했습니다. 기쁜 마음에 회사 pc 에도 2021.3.13f1 을 설치했는데 ... 이게 왠걸... 오히려 windows 에서는 빌드가 되지 않았습니다.

한동안 답답하게 만들었던 'UnicodeDecodeError'

해당 버전으로 검색을 해보니, Unity 쪽에서도 알고 있는 문제인 것 같았습니다.

그리고 2021.3.16f1 에서 해결이 되었다고 하더군요.

WebGL Build fail 에 대한 이슈

Fixed in 2021.3.16f1 ... 이라고는 되어 있는데...


해결되었다고 하니, 현 시점 가장 최신 버전인 2021.3.19f1 을 설치하고 다시 실험을 해봤습니다... 하지만 결국 같은 오류만 확인할 수 있었습니다.

어떤 부분에서 문제가 되는지 찾기 위해 새 프로젝트에 플러그인을 하나 하나 넣어가며 빌드 실험을 했고, 직접 만들었던 jslib 파일에서 문제가 생기는 것을 확인했습니다.

Mac OS 에서는 정상적으로 빌드가 되는 jslib 파일을 추가하면 발생하는 UnicodeDecodeError.
cp949 라는 windows 에서 제공하는 통합형 한글 코드 페이지.
혹시나 하는 마음에 jslib 에 넣어두었던 한글 주석을 모두 제거하고 빌드를 돌렸더니... 이번에는 정상적으로 빌드가 되었습니다.

주석에 한글이 있다고 에러가 나는 부분이 이해가 가지 않아서, 이 이슈를 Chat GPT 에게 물어봤습니다. 

하지만 내 파일은 UTF-8 로 인코딩 되어 있었는걸...


파일이 UTF-8 로 인코딩 되어 있음에도, 한글 주석으로 오류가 나는 상황...

일단 해결책을 찾았기에 일은 계속해서 진행할 수 있지만, 마음 한 구석이 찝찝한 것은 어쩔 수가 없습니다.  

... 

아무튼 저와 같은 문제를 직면한 분들에게 이 글이 조금이나마 도움이 되었기를 바랍니다.

긴 글 읽어주셔서 감사합니다.


긴 글이 불편한 분들을 위한 2줄 요약

/// <summary>

/// 1. Unity WebGL 빌드 시, UnicodeDecodeError 가 발생한다면 문서 인코딩을 확인해보자.

/// 2. cs 파일들과 jslib 모두 UTF-8 로 인코딩 되어 있어도 동일한 문제가 발생한다면, jslib 파일에 있는 한글 주석을 모두 제거하고 다시 빌드 해보자.

/// </summary>



Incentive Code

여전히. 예술하는 프로그래머, 코딩하는 예술가

댓글 쓰기

다음 이전