E4-Unity / contents-download-test

컨텐츠 다운로드 기능 구현 테스트
MIT License
0 stars 0 forks source link

에셋 번들 다운로드를 위한 개인 서버 구축 및 연결 #4

Closed Eu4ng closed 10 months ago

Eu4ng commented 10 months ago

에셋 번들 다운로드를 위한 서버 연동

개요

참고

GitHub Pages

Addressables 서버 연동에 관한 글이나 영상들을 검색해보면 대부분 AWS 를 이용하는 방법을 알려줍니다.

실제 출시 환경을 고려한다면 AWS 를 이용하는 것이 적절하지만 AWS 는 잘못 이용하면 요금 폭탄이 발생하기 때문에 개인이 이용하기 껄끄럽습니다. 다행히 Addressables 는 웹 서버면 모두 잘 동작하기 때문에 GitHub Pages 도 사용 가능합니다.

또한, 개인 서버라면 https 사용을 위한 인증서 발급도 필요한데 GitHub Pages 는 그럴 필요도 없습니다. 다만 GitHub Pages 는 Public 저장소이기 때문에 간단한 테스트 용도로만 추천드립니다.

물론 개인 서버, AWS, GCP 등을 이용한다고 해도 액세스 권한을 Public 으로 설정한다면 마찬가지로 보안에 취약한 것은 동일하지만, 서버 주소와 포트를 알고 있어야 하기 때문에 상대적으로 위험이 덜할 것입니다.

보안에 좀 더 신경을 쓰고 싶다면 WebRequestOverride 를 에서 액세스 토큰 설정 등 보안과 인증과 관련된 Web Request 를 작성할 수 있습니다.

보안과 관련된 참고 글입니다.

Eu4ng commented 10 months ago

GroupOpereation Failed...Invalid URI

참고

오류 메시지

System.UriFormatException: Invalid URI: Invalid port specified.
at UnityEngineInternal.WebRequestUtils.MakeInitialUrl

원인

Addressables Profile 수정 사항이 발생하면 Build 도 다시 해주어야 한다. LoadPath 가 Catalog 에 기록된다고 한다.

해결 방법

Clean Build

Eu4ng commented 10 months ago

Insecure Connection Not Allowed

오류 메시지

image

원인

Non-secure network connections disabled in Player Settings

HTTP 다운로드가 비활성화된 상태에서 Remote.LoadPathhttp 서버로 설정하였기 때문입니다.

해결 방법

서버 주소를 https 로 변경하거나 Player Settings > Configuration > Allow downloads over HTTP 설정을 변경합니다.

image

Eu4ng commented 10 months ago

Curl error 60: Cert verify failed. Certificate has expired. UnityTls error code: 7

원인

Remote.LoadPathhttps 로 설정한 상태에서 서버 인증서가 만료되었기 때문에 발생하는 오류입니다.

해결 방법

서버 인증서를 재발급 혹은 갱신하거나 서버 주소를 http 로 설정합니다. 서버 주소를 http 로 설정하는 경우에는 Player Settings > Configuration > Allow downloads over HTTP : Always Enabled 로 설정해주어야 합니다.

Always Enabled 가 설정된 상태라면 서버 주소가 https 로 설정된 상태라도 문제 없이 작동은 합니다. 다만, 오류 로그는 계속해서 출력됩니다.