EEYatHo 앱 깎는 이야기

Xcode ) Xcode에서 한글 디렉토리 사용시 문제점 - EEYatHo iOS 본문

iOS, Swift/Xcode, Xcode Error

Xcode ) Xcode에서 한글 디렉토리 사용시 문제점 - EEYatHo iOS

EEYatHo 2021. 4. 27. 17:19
반응형

요약


Git에서 한글로 된 파일을 받아오면 Xcode에서 인식하는 데에 문제가 발생.

( Refresh File Status 미작동, 브레이크 포인트 미작동, 이미지 파일명 한글이 경우 읽어오지 못함 등 )

 

문제가 발생한 한글명의 파일이나 폴더는, 이름을 새로 지정하면 Xcode에서 잘 인식

( 같은 이름도 괜찮음. 한번 "수정하기만" 하면 됩니다. )

 

pull 받을 때 마다 수정하는 건 말이 안되기에, 프로젝트에 한글 사용하지 말기

 

 

 

배경 설명


Xcode 에서 한글 디렉토리를 사용해 보았는데 빌드가 잘 되서,

한글 지원이 잘 되는 줄 알고 계속 사용했는데,

 

Git 형상관리를 몇번 한 이후, Refresh File Status 나 디버그가 잘 안되는 등, 문제가 발생하여 실험을 진행한 내용입니다.

 

 

 

Refresh File Status


Refresh File Status 란?

Xcode가 프로젝트 파일들의 변경사항을 체크하여 소스파일 옆에 M, A등의 뱃지 여부를 정하고 보여주는 것을 말합니다.
(M은 수정되었다, A는 새 파일이다 등)

오른쪽에 보이는 M 표시

 

Refresh File Status 는 다음과 같은 경우에 자동으로 실행됩니다.

  1. 파일 명 변경
  2. 파일 위치 변경
  3. 브레이크 포인트 조작
  4. 소스 변경 후 저장 << 이 경우의 문제가 발생한 것입니다.

코드를 수정하고 저장했는데 불구하고, 소스파일 옆에 M 이 안나오는 파일들이 존재했습니다.

 

 

 

실험 설명


  • 한글과 영어는 물론이고, 띄어쓰기도 궁금해서 같이 실험했습니다.

 

  • 아래의 4가지 케이스에서,

(1) 한글 디렉토리의 하위 소스

(2) 한글+띄어쓰기 디렉토리의 하위 소스

(3) 영어 디렉토리의 하위 소스

(4) 영어+띄어쓰기 디렉토리의 하위 소스

 

  • 아래 두 조건이 정상인지 알아보는 실험입니다.

(1) "소스 변경 후 저장"시, Refresh File Status 되는지 여부 ( 이하 RFS 라 칭함. )

(2) 브레이크 포인트가 작동하는지 ( 디버그가 되는지 ) 여부

 

  • 아래 사진과 같이 각 케이스에 맞는 디렉토리와 간단한 소스파일을 만들었고,

 

  • 디버깅을 위해, didFinishLaunchingWithOptions에서 호출하는 식으로 진행했습니다.

 

  • 추가로, git 에서 unicode 를 사용할 수 있도록 해당 커맨드를 입력 후 진행했습니다.
    ( mac에서 git 한글 문제라고 검색하면 나오는 해결 방법들 입니다. )
git config --global core.precomposeunicode true
git config --local core.precomposeunicode true

git config --global core.quotepath false
git config --local core.quotepath false

 

  • 추가로, XcodeGen을 사용하는 프로젝트로 진행하였습니다.

 

 

실험 진행


1. 모두 정상 작동하던 (1)한글, (2)한글+띄어쓰기, (3)영어, (4)영어+띄어쓰기 디렉토리가 포함된 프로젝트

 

2. Git pull 직후 빌드

 

3. xcodegen generated 후 빌드 ( .xcodeproj 파일이 새로만들어지면서 소스트리 재구성됨 )

 

4. (1)한글과 (2)한글+띄어쓰기 디렉토리의 이름을 바꾸고, xcodegen generated를 함.

( 똑같이 한글과 띄어쓰기를 써도 되고, 심지어 디렉토리 이름을 같은 것으로 다시 바꿔도 같은 결과 )

 

  • 디렉토리 이름을 다르게 수정 했다면, Git의 디렉토리 명과 달라서 하위 소스들의 변경사항 추적이 되지 않습니다.
    다시 원래 이름으로 바꿔주면 변경사항 추적이 정상 작동합니다.


  • 추가로, 자동 Refresh가 안되는 소스에서도,
    브레이크 포인트를 조작하거나, 브레이크 포인트가 걸려있는 부분의 소스를 수정할 경우
    자동 RFS가 되는 것을 발견했습니다.

 

 

결론


1. 해당 실험을 통해, Git에서 한글로 된 파일을 받아오면 Xcode에서 인식하는 데에 문제가 발생한다는 결론을 얻었습니다.
( Refresh File Status 미작동, 브레이크 포인트 미작동 )

( 에셋카탈로그의 이미지 파일들도 한글 이름으로하면 Git에서 받아올때 Xcode에서 못읽어서 새로 다 넣어줘야 합니다. )

 

 

2. 문제가 발생한 한글명의 파일이나 폴더는, 이름을 새로 지정하면 Xcode에서 잘 인식합니다.

( 같은 이름으로 돌아와도 ok. 한번 수정하기만 하면 됩니다. )

 

3. 띄어쓰기는 상관없습니다.

 

4. 아직은 한글 디렉토리를 안쓰는 것이 좋아보입니다.
( pull 할 때 마다, 한글 디렉토리의 이름을 수정하는걸 감수할 수 있을리가.. )

Comments