[Git] 유니티 플레이 후 GvhProjectSetting.xml이 변경되는 현상

고현규·2024년 1월 23일
0

이 글은 GvhProjectSetting.xml 중에서도 CRLF, LF 개행 타입에 따른 오류 해결 글로, 다른 형태의 문제의 경우, .gitignore에 추가하는 형태를 추천합니다.

유니티 플레이 버튼만 눌러도 Git상에서 새로운게 생기는 경우가 발생한다.
이번에는 처음 보는 파일 GvhProjectSetting.xml이 변경되었다.

No Content Changes found가 나오는 경우도 종종 보인다.
하지만 변경한게 없는데 변경된 점이라 나온다는 내용을 보면 바로 머리가 아프다.

먼저 GvhProjectSettings.xml이 무엇인지 Chat GPT에 물어봤다.

GvhProjectSettings.xml 이 무엇인지 알려줘

GvhProjectSettings.xml 파일은 구글의 Unity 플러그인 중 하나인 'Google Version Handler'와 관련된 설정 파일입니다. Unity에서 개발 중인 프로젝트에 구글의 서비스나 SDK를 통합할 때, 여러 버전의 파일과 설정을 관리하는 데 도움을 주는 도구입니다.

예를 들어, 구글의 Firebase, AdMob, Google Play Services와 같은 SDK를 Unity 프로젝트에 추가할 때, 각 서비스의 서로 다른 버전들이 충돌하지 않도록 관리해주는 역할을 합니다. GvhProjectSettings.xml 파일은 이러한 버전 관리 설정을 포함하고 있으며, SDK를 업데이트하거나 프로젝트 내 다른 구글 서비스를 추가할 때 참조되는 파일입니다.

Unity 프로젝트에서 이 파일을 수정하는 일은 일반적으로 권장되지 않습니다. 왜냐하면 구글 서비스의 통합 및 업데이트 과정을 자동으로 처리하기 때문에, 수동으로 변경할 경우 예기치 않은 문제가 발생할 수 있기 때문입니다. 만약 구글 관련 플러그인이나 서비스를 사용하고 있고 해당 파일에 문제가 있을 것 같다면, 플러그인의 문서를 참조하거나 구글 개발자 포럼, Unity 커뮤니티에서 도움을 받는 것이 좋습니다.

GvhProjectSettings.xml 파일을 수정하는 방법이 있을까요?

GvhProjectSettings.xml 파일을 수동으로 수정하는 것은 가능하지만, 일반적으로 권장되지 않습니다. 이 파일은 Google Version Handler가 자동으로 생성하고 관리하는 설정 파일로, Unity 프로젝트에서 Google SDKs의 버전 충돌을 방지하기 위해 사용됩니다.

수정이 필요하다고 판단되는 경우, 다음 단계를 따라야 합니다:

  1. 백업: 어떤 파일을 수정하기 전에 항상 현재 상태의 백업을 만드는 것이 좋습니다. 문제가 발생하면 원래 상태로 복구할 수 있어야 합니다.

  2. 문서 참조: Google SDK의 공식 문서를 참조하여 GvhProjectSettings.xml 파일의 구조와 설정 옵션을 이해합니다.

  3. 편집 도구: XML 파일을 편집하기 위해 텍스트 편집기나 XML 편집기를 사용합니다. Notepad++, Visual Studio Code, Atom 등이 좋은 선택지입니다.

  4. 올바른 형식 유지: XML은 엄격한 구조를 가지고 있으니, 태그를 올바르게 닫고, 속성 값을 정확히 입력하는 등의 형식을 유지해야 합니다.

  5. 변경 사항 적용: 수정을 완료하고 파일을 저장한 후, Unity 에디터를 재시작하여 변경 사항이 적용되었는지 확인합니다.

  6. 테스트: Unity에서 프로젝트를 실행하여 수정한 설정이 의도대로 작동하는지 테스트합니다.
    만약 Google SDKs와 관련된 문제가 발생한다면, 파일을 직접 수정하기보다는 Google Version Handler를 통해 문제를 해결하는 것이 좋습니다. 이 도구는 SDK 간의 의존성과 버전 관리를 자동으로 처리해 줍니다.

항상 기억해야 할 것은, 이 파일을 수정함으로써 발생할 수 있는 문제에 대한 책임은 전적으로 수정자에게 있다는 점입니다. 수정 후에 프로젝트에 문제가 발생하는 경우, 백업에서 원본 파일을 복원하여 문제를 해결할 수 있어야 합니다.


사실 내부에 변경사항이 없기 때문에 Discard하거나, git ignore에 넣어도 되는 사항이지만
매번 Discard할 수도 없고 git ignore에 넣기도 찝집하니 원인을 찾아보았다.

원인 찾기!

Current Repository를 우클릭 - Open In Command Prompt를 실행한다.

Prompt에 git diff를 입력한다.

달라진 내용은 LF가 CRLF로 대체된 것이었다

LF 와 CRLF의 차이점

메시지 해결 방안 예시

출처) https://dabo-dev.tistory.com/13

참고자료) https://www.aleksandrhovhannisyan.com/blog/crlf-vs-lf-normalizing-line-endings-in-git/#summary-git-config-vs-gitattributes

위를 할용한 해결 방안

위의 예시는 CRLF를 Ture로 바꾸는 과정이었다.
Git 에서 변경 사항으로 나온 점 또한 LF → CRLF로 바꾼 점이 commit사항으로 나타났다.
CRLF로 바뀐 것이니 따라서 반대로 CRLF → LF로 바꿔줘야 한다.

그래서 Prompt에 입력한 코드는 아래와 같다.

git config --gloal core.autolf true

위와 같이 입력한 결과, Git 변동사항이 사라졌다.


시도한 내용

profile
게임 개발과 기획

0개의 댓글