모듈화시 각 모듈에서 사용하는 ThirdParty Library들의 효율적인 관리를 위해 ThirdPartyKit이라는 모듈로 분리하여 사용하였다.

123

App 테스트를 위해 Configurations를 각각 다르게 줘고 Scheme를 각각 설정하였다.

Dev, QA, Release Scheme이다

4567

App-Release 스키마와 App-Dev 스키마는 정상적으로 실행되는데 App-QA 스키마는 아래와 같은 에러가 발생한다.

Framework 'ThirdPartyKit' not found
Linker command failed with exit code 1 (use -v to see invocation)

~/DerivedData/프로젝트이름/Build/Products의 폴더를 들어가 각각의 폴더를 확인해보면

QA에만 ThirdPartyKit.framework만 포함되어 있지 않고 있다.

하지만 ThirdPartyKit에 추가한 라이브러리들(SnapKit)은 다 포함되어있다

891011

ThirdPartyKit.framework가 포함되지 않는 이유는 ThirdPartyKit의 Configurations와 App의 Configurations가 일치하지 않기 때문이다.

12131415

당연하게도 Configurations의 Name은 일치해야 하고

16

App에 Configurations을 추가할 경우 참조하고 있는 모든 framework의 Configurations를 App과 맞춰줘야 한다.

App에 AnotherFramework 추가

AnotherFramework에 QA Configurations를 추가하기 전 App Build Fail

17

 

18

AnotherFramework에 QA Configurations를 추가한 후 App Build Success

19

 

 

Example

 

https://github.com/junbok97/TIL/tree/main/Swift/%EB%B8%94%EB%A1%9C%EA%B7%B8/Framework-Configurations

 

TIL/Swift/블로그/Framework-Configurations at main · junbok97/TIL

Today I Learn. Contribute to junbok97/TIL development by creating an account on GitHub.

github.com

 

Xcode의 파일 인스펙터 영역에서 파일의 확장자명을 보이게 또는 숨겨보자

 

확장자명 보이기

 

 

Xcode -> Setting -> File Extensions 에서 설정해주면 된다

 

 

 

Hide All : 확장자명 전부 숨기기

Show All : 확장자명 전부 보이기

Show Listed : 보이게 할 확장자명 입력

Hide Listed : 숨기게 할 확장자명 입력

 

참고로 파일이름이 길어서 파일 인스펙터에 전부 표시될 수 없을 때

확장자명을 숨기면 가운데가 ... 으로 보이고 확장자명을 보이게하면 끝쪽이 ... 으로 보인다

확장자명을 숨겼을 때

 

확장자명을 보이게 했을 때

 

'iOS > Xcode' 카테고리의 다른 글

Configurations 사용시 주의점  (0) 2024.11.17
[Xcode] 프로젝트 복사  (0) 2023.02.22
[Xcode] DerviedData 저장 위치 프로젝트 폴더 내로 변경  (0) 2023.02.22
Xcode 단축키  (1) 2022.09.19

가끔 프로젝트를 통채로 복사해야하는 경우가 생기는데 이렇게 복사할 경우 설정해줘야하는 것들이 있다.

 

먼저 프로젝트를 복사한다.

복사할 프로젝트
프로젝트 복사

 

 

그런 다음 복사한 프로젝트의 이름을 원하는 이름으로 바꾸어주고 폴더내의 Dervied Data를 삭제해준다

 

폴더 이름 변경
Derived Data 삭제

 

 

그 다음 변경한 프로젝트 폴더내의 있는 프로젝트파일과 하위 디렉토리 또한 이름을 변경해준다

 

프로젝트파일 및 하위 디렉토리 파일 이름 변경

 

그런 다음 변경한 프로젝트 파일을 실행해준다

 

CopyProject.xcodeproj 실행

 

프로젝트안의 하위 디렉토리의 파일명을 바꿔준 뒤

 

 

마찬가지로 프로젝트 내의 Target 이름을 변경해주고

Targets 변경

 

Build Settings에서 Info.plist의 경로와 Project Bundle Identifier의 이름도 변경해준다

 

Info.plist 경로 수정

 

Product Bundle Identifier 변경

 

그 다음 Product 탭에서 Scheme -> Manage Schemes를 보면

 

Product -> Scheme -> Manage Schemes

 

스키마이름을 변경된 프로젝트 이름으로 변경해준다

 

Scheme 이름 변경

 

 

여기까지 변경했으면 성공적으로 프로젝트가 복사되었지만 간혹 오류가 나는 경우가 있어 폴더 내의 DerivedData를 한번 더 삭제 후 프로젝트 파일을 실행해준다.

 

 

Xcode의 DerivedData의 저장위치를 현재 프로젝트 폴더 밑으로 변경해보자 

 

 

Xcode -> Settings

 

Xcode를 실행하여 환경설정으로 들어가보면

 

Settings -> Locations

 

Settings 창에서 Locations 탭을 눌러보면 Derived Data가 Default로 설정되어 있다.

 

Defaults일때

 

Defaults로 설정되어있다면 프로젝트 폴더에는 프로젝트파일과 프로젝트 폴더만 존재할텐데 

 

 

Relative 설정

 

DerivedData 세팅을 Relative로 바꾸어주면

 

Relative일때

프로젝트 폴더안에 DerivedData 폴더가 생성된것을 볼 수 있다.

'iOS > Xcode' 카테고리의 다른 글

Configurations 사용시 주의점  (0) 2024.11.17
Xcode 파일 인스펙터 확장자명 보이기/숨기기  (0) 2024.01.07
[Xcode] 프로젝트 복사  (0) 2023.02.22
Xcode 단축키  (1) 2022.09.19

Xcode

⌥ ⌘ ⏎ : Convas

⌘ shift Y : 커맨드창

⌃ ⌥ ⌘ ⏎ : Assistant 뷰

⌃ ⌘ E : 변수명 한번에 바꾸기

⌘ R : 앱 실행

⌘ B : 앱 빌드

⌘ N : 새 파일 만들기

⌥ ⌘ N : 새 그룹 만들기

⌃ I : 줄 맞춤

⌃  ⌘ 스페이스 바 : 이모티콘

⌘ + N : 새파일

⌘ + ⌥ + N : 새폴더

 +  + O : 파일 검색

 + L :  코드 줄 이동

 

⌃ + A : 줄의 맨 앞으로 이동

⌃ + B : Left. 캐럿을 좌측으로 한칸이동

⌃ + D : DELETE. 뒤의 한문자 삭제

⌃ + F : Right. 캐럿을 우측으로 한칸이동

⌃ + H : Back. 앞의 한문자 삭제

⌃ + I : Re-Indent 자동으로 들여쓰기를 조절

⌃ + K : 현재줄 캐럿이후의 문자를 전부 삭제. 문자가 없을 경우 개행문자 삭제

⌃ + N : Down. 아래로

⌃ + P : Up. 위로

⌃ + T : 커서 앞뒤로 글자 교환

⌃ + V : 전체의 마지막 위치 한 칸 전으로 이동. 이미 그 위치라면 맨 마지막으로 이동

⌃ + . : Code Completion 창 열기 // ESC : ⌃ + . 과 동일

⌃ + A + K + K : 한줄 삭제의 기능

⌘ + B : 프로젝트 빌드

⌘ + E : 현재 선택된 텍스트 블럭을 모든 텍스트에디트에 복사

⌘ + F : 현재 창 검색

⌘ + G : 현재 페이지에 텍스트에디트에 적힌 문구 순차 검색

⌘ + J : Assistant 선택 창

⌘ + K : 콘솔창 지우기

⌘ + R : 프로젝트 실행

⌘ + I : 프로젝트 프로파일링 빌드

⌘ + Y : 브레이크 포인트 비활성화 / 활성화

⌘ + [ : 내어쓰기. 줄 맨 앞의 공백을 4개 줄임

⌘ + ] : 들여쓰기. 줄 맨 앞에 공백을 4개 추가

⌘ + ' : 이슈사항 순서대로 보이기

⌘ + . : 실행중인 앱 강제 종료

⌘ + , : XCode 프로퍼티창 열기

⌘ + \ : 브레이크 포인트 걸기

⌘ + / : 해당라인 주석 걸기 ( 다중 라인도 가능 )

⌘ + ⌥ + [ : 커서가 위치한 라인을 통채로 위로 이동

⌘ + ⌥ + ] : 커서가 위치한 라인을 통채로 아래로 이동

⌘ + ⌥ + Left : 코드 접기

⌘ + ⌥ + Right : 코드 열기

⌘ + Enter : 현재창을 단일창으로 변경

⌘ + 숫자 : Navigators 창 변경

⌘ + ⌥ + 숫자 : Utilities 창 변경

⌘ + ⌥ + ⌃ + 숫자 : Library 창 변경

⌘ + ⌥ + Enter : Assistant Editor 보이기

⌘ + ⌥ + Shift + Enter : Version Editor 보이기

⌘ + 0 : Navigator 보이기/감추기

⌘ + 1 : 프로젝트 파인더 열기

⌘ + 2 : 프로젝트 하이라키 창 열기

⌘ + 3 : 프로젝트 검색 창 열기

⌘ + 4 : 프로젝트 워닝 및 에러 창 열기

⌘ + 5 : 테스트 타겟창 열기

⌘ + 6 : 디버그 세션 창 열기

⌘ + 7 : 프로젝트에 걸려있는 모든 브레이크 포인트를 보여주는 창 열기

⌘ + 8 : 빌드 관련 히스토리

⌘ + Shift + C : 커밋창 열기

⌘ + Shift + F : 파인드 창으로 캐럿 강제 이동

⌘ + Shift + G : 현재 페이지에 텍스트에디트에 적힌 문구 역순차 검색

⌘ + Shift + K : 프로젝트 클린

⌘ + Shift + O : 프로젝트 내 파일 / 클래스 / 함수 검색

⌘ + Shift + X : 소스 업데이트 하기

⌘ + Shift + Y : Debug Area 보이기/감추기

⌘ + ⌥ + 0 : Utilities 보이기/감추기

⌘ + Alt + Enter : 현재창 이중 분할

⌘ + ⌃ + Up/Down/Left/Right : 헤더/소스 변경해서 보이기. Assistant 상에선 양쪽 다 적용

⌘ + ⌃ + J : 현재 캐럿이 위치한 곳에 있는 것이 정의된 곳으로 이동

⌘ + Left : 줄의 맨 앞으로 이동

⌘ + Right : 줄의 맨 뒤로 이동

⌥ + 파일명 클릭 : 새탭으로 열기

⌥ + Left : 단어 단위로 앞으로 이동. Windows 의 ⌃ + Left 와 유사

⌥ + Right : 단어 단위로 뒤로 이동. Windows 의 ⌃ + Right 와 유사

⌥ + Drag : 사각영역 선택

 

우측창(navigator area) : ⌘ + 1~7

좌측창(utility area) : ⌘ + + ⌥ + 1~6

 

 

1. 편집 시 자주 사용하는 단축키

 

⌘ + /: 한 줄 주석 달기/풀기

 

⌘ + ⇠ : 선택 줄 맨 처음으로 이동

⌘ + ⇢ : 선택 줄 맨 끝으로 이동

⌥ + ⇠ : 선택 줄 한 단락씩 앞으로 이동

⌥ + ⇢ : 선택 줄 한 단락씩 뒤로 이동

⌥ + ⌘ + ⇠ : 커서가 위치한 편집영역 숨기기

⌥ + ⌘ + ⇢ : 커서가 위치한 편집영역 보이기

⌃ + ⌘ + ⇠ : 이전 편집 위치로 이동

⌃ + ⌘ + ⇢ : 다음 편집 위치로 이동

 

 

2. 편집 창 이동

 

⌃ + ⌘ + ⇡ OR ⇣ : 현재 클래스의 .m / .h 파일 간 이동

⌘ + 변수/형타입 : 해당 변수의 선언, 형타입의 선언으로 이동

⌘ + T : 새로운 탭 열기

⌘ + W : 현재 탭 닫기

⇧ + ⌘ + [ : 이전 탭으로 이동

⇧ + ⌘ + ] : 다음 탭으로 이동

 

 

3. 빌드 시 주로 사용하는 단축키

 

⌘ + R: 프로젝트 실행

⌘ + B: 프로젝트 빌드

⌘ + I: 프로파일

⇧ + ⌘ + B: 정적분석

⇧ + ⌘ + K: 프로젝트 클린

⇧ + ⌘ + <: 스킴 편집

 

 

4. 디버깅

 

F6 : 스텝 오버

F7 : 스텝 인

⌘ + \ : 브레이크 포인트 설정/취소 

⌘ + Y : 브레이크 포인트 활성/비활성

⌃ + ⌘ + Y : 디버거 실행/일시정지

PlayGround

shift return : 현재 커서 줄 까지 실행

 

스토리보드

⌥ ⌘ + : 새로고침

⌘ ⇧ L : 라이브러리 

시뮬레이터

⌘ ⇧  A : 라이트/다크 모드 전환

 

 

+ Recent posts