내용 설명을 다시 하면 이렇습니다.
오늘 정오쯤에 유니티 SDK 2.4.7 버전으로 업데이트 받아서 파이어베이스와 연동할려고 했습니다. 유니티 SDK 설치 후 빌드하면 생기는 webgl 폴더안에 index.html 파일에 스크립트를 추가하는 방식입니다.
빌드 커스터마이징 문서를 보면 index.html 파일의 <USER_HEAD_START> 와 <USER_HEAD_END> 사이에 스크립트를 추가하면 된다고 나옵니다.
그런데 유니티 에디터에서 AIT - Build Package 메뉴로 빌드를 하다보면 index.html 파일이 새로 만들어지더라구요.
매번 빌드할 때마다 index.html 파일이 처음 빌드하는 것처럼 리셋되어 제가 추가한 firebase 연동 코드가 사라집니다.
그래서 빌드완료한 파일을 QR 테스트 하면 fireabase is not defined 에러가 발생합니다. 이런 상황이라 firebase 와 연동이 안돼서 테스트를 할 수가 없습니다.
SDK 빌드 파이프라인은 2단계로 구성되어 있어서, 빌드 과정에서 다음 두 위치에 index.html이 생성됩니다.
webgl/index.html
→ Unity WebGL 빌드의 1단계 중간 산출물입니다. 매 빌드마다 Unity가 새로 생성하므로
이 파일을 직접 수정하시면 다음 빌드 때 사라지며, 최종 패키지(ait-build/dist/)에도
반영되지 않습니다.
Assets/WebGLTemplates/AITTemplate/index.html
→ SDK가 사용자 커스터마이징 소스로 인식하는 진짜 수정 대상 파일입니다.
이 파일의 <!-- USER_HEAD_START --> ~ <!-- USER_HEAD_END --> 마커 사이에
작성된 내용이 빌드 시 보존되어 최종 산출물에 반영됩니다.
혹시 webgl/index.html을 수정하신 것이라면, 동일한 firebase 스크립트를
Assets/WebGLTemplates/AITTemplate/index.html 의 USER_HEAD 마커 사이에 옮겨주신 뒤
다시 빌드해주시면 사라지지 않습니다.
이 방식으로도 동일하게 "firebase is not defined"가 뜬다면 SDK 스크립트 자체가
로드되지 않은 상태이므로, 그때는 빌드 산출물(ait-build/index.html)에 위 두 줄의 <script src="...firebasejs/..."> 태그가 실제로 들어가 있는지 함께 확인해보겠습니다.
참고로, CDN 직접 로드 대신 Firebase Modular SDK를 npm 번들로 추가하는 방식이 빌드
재현성·트리셰이킹 측면에서 더 권장됩니다. SDK의 빌드 커스터마이징 문서 튜토리얼 #2: Firebase Analytics 연동
섹션에 절차가 정리되어 있으니 함께 참고 부탁드립니다.
webgl/index.html 파일을 수정했습니다. 이전 SDK 버전 2.4.1 에서도 이 파일을 수정해서 빌드를 했었구요. 이 파일이 소스를 수정하면 리셋이 됐었습니다. 그 후 다시 한번 소스수정없이 index.html 파일을 수정하면 리셋이 안돼서 매번 2번씩 빌드를 해서 ait 파일을 뽑았습니다.
그러면 알려주신대로 Assets/WebGLTemplates/AITTemplate/index.html 파일을 수정해서 테스트 해보겠습니다.