iOS & Swift

iOS - Xcode *.xcuserstate , .gitignore 반영되지 않는 경우

김쿡 2023. 3. 9. 16:34

git과 연동하여 Xcode 프로젝트를 관리하다보면, 프로젝트를 열거나 git 명령어 수행만 했음에도 UserInterfaceState.xcuserstate 파일이 git에서 변경사항으로 추적되는 경우가 있다. 원인과 해결방안에 대해서 알아보자!


UserInterfaceState.xcuserstate?

작업 공간/프로젝트 문서 레이아웃과 같은 항목을 저장하는 파일이라고 한다. 아마 프로젝트를 최근 오픈한 날짜도 정보를 가지고 있으니, 파일이 업데이트 되고 git 변경사항으로 추적되는 것 같다.

추적 제외 대상을 지정해주는 .gitignore 파일을 업데이트하여 해결할 수 있었다. .gitignore 표현 형식과 역할에 대해서는 기회가 된다면 포스팅하도록 하겠습니다…

*.xcuserstate

그러나?!?! 실제로는 반영이 되지 않았다..

gitignore 반영이 되지 않을 때

git rm -r --cached .

git 저장소에서 디렉토리 포함 모든 파일을 삭제하되, 로컬 작업 디렉토리 파일은 그대로 둔채 git 추적을 중지합니다.

• -r : 디렉토리 및 하위 파일들을 삭제

• --cached : git의 스테이징 영역에서만 파일을 삭제하도록 지정합니다

이후 gitignore 항목이 정상 반영됩니다.

.gitignore 자동생성

https://www.toptal.com/developers/gitignore

위 사이트에서는 개발환경 , 개발 언어에 따른 .gitignore 를 제공해줍니다!

정말로 개발하기 편한 세상입니다.


참고

https://nsios.tistory.com/7

https://chunsubyeong.tistory.com/m/57