Weekoding
[Swift] Xcode 프로젝트에 파일, 폴더 추가하기(groups, folder references) 본문
[Swift] Xcode 프로젝트에 파일, 폴더 추가하기(groups, folder references)
Weekoding 2022. 3. 25. 15:14공부를 하던 도중 파일을 Xcode 프로젝트 폴더에 넣어야 하는 일이 발생했다.
가령 Google Firebase를 사용할 때 필요한 GoogleService-Info.plist같은 파일들 말이다.
드래그 앤 드롭을 하면 그냥 들어갈 줄 알았는데, 아래와 같은 화면이 등장했다.
- Copy items if needed: 체크하면 프로젝트 폴더로 해당 파일/폴더가 복사가 된다.
프로젝트 폴더에 파일이 없는 경우 복사하게 되는 것인데,
체크 해제된 상태라면 프로젝트가 프로젝트 폴더에 없는 파일에 의존하게 되어 파일의 수정 및 이동시에 에러가 발생하게 된다.
프로젝트 파일 압축 전송이나 Git 업로드 시에도 파일이 올라가지 않는다는 것.(플젝 소스 공유 시 난처한 상황이 발생할 수 있다)
Create groups / Create folder references는 파일이냐 폴더냐에 따라 다르다.
📄 파일은 어떤 옵션이던 동일한 특징을 갖는다.
- Finder에서 파일명을 변경하면, Xcode에서는 이를 찾지 못하고 오류가 발생한다.
그러나 Xcode에서 파일명을 변경하면, Finder에서는 변경한 파일명이 적용된다.
- Xcode와 Finder 양 쪽 모두 파일 내용을 변경하면, 다른 쪽에서도 적용된다.
- Xcode와 Finder 중 한 쪽에서 파일을 삭제해도 모두 적용된다.
- Finder의 folder에 파일을 넣어도, Xcode의 group에는 추가되지 않는다.(Xcode에서 넣어야 한다.)
📂 폴더일 때의 특징은 다음과 같다.
- Create groups : 그룹 만들기.
가상의 노란 폴더를 생성한다.
Finder를 사용하여 프로젝트 디렉토리로 이동하면 방금 가져온 폴더와 같은 이름의 폴더가 표시되지만,
Finder를 통해 folder에 추가한 파일은 Xcode 프로젝트 group에 추가되지 않는다.
가상 폴더이므로, 실제 file system 폴더에 파일을 추가하거나, 이동이 가능하다.
Finder를 통해 이름을 변경해도 Xcode상에서는 적용되지 않는다.
- Create folder references: 폴더 참조 만들기.
파란색 폴더가 생성되는데, file system폴더에 1:1로 mapping된다.
따라서 Xcode 프로그램에서 파일을 삭제하게 되면, file system에 있는 파일도 삭제된다.
프로젝트 디렉토리에 새 파일을 넣게 되면, Xcode 프로젝트에도 나타나게 된다.
Finder를 통해 이름을 변경해도 Xcode상에서는 적용되지 않는다. 그러나 해당 폴더를 사용할 수도 없다.
📌 결론적으로 file system, 즉 finder에서의 접근이나 제어 방식에서의 차이인 것 같다.
파일 복제는 Copy items if needed 옵션으로 선택하는 것이니..
폴더 복제 시 보통은 Create group을 많이 사용하고,
상황에 따라 Create folder references를 사용하기도 한다고 한다.
틀린 부분이 있으면, 댓글 남겨주시면 감사하겠습니다!
참고 사이트 :
https://thomashanning.com/xcode-groups-folder-references/
https://stackoverflow.com/questions/47808746/create-groups-vs-create-folder-reference-in-xcode
'공부 노트(Swift)' 카테고리의 다른 글
[Swift]DispatchQueue와 스레드의 개념 (3) | 2022.04.25 |
---|---|
[Swift] 네트워크 통신(RESTful API, JSON, URLSession) (0) | 2022.04.20 |
[Swift] 옵셔널(Optional) (0) | 2022.04.17 |
[Swift] Closure의 단축 인자($0, $1....) (0) | 2022.04.11 |
[Swift] 다크모드와 가로모드(디바이스 방향)에 대한 설정 (0) | 2022.04.04 |