[Xcode] Xcode가 뭘까

Picnic·2025년 3월 19일

Xcode

목록 보기
1/3
post-thumbnail

안녕하세요 Picnic🧃입니다.

오늘은 Xcode에 대해서 공식 문서의 내용들을 가볍게 살펴보려고 합니다.
Xcode에 대한 내용도 많아서 주로 사용했던 것부터 작성하며, 후에 더욱 깊게 사용하게 된다면 또 글을 써보겠습니다.

그럼 시작! 🏁


Xcode란?

Xcode는 개발자가 Apple 플랫폼용 앱을 구축하는 데 사용하는 도구 모음입니다.
Xcode를 사용하여 앱 생성부터 테스트, 최적화 및 App Store 제출에 이르기까지 전체 개발 워크플로우를 관리할 수 있습니다.

Xcode를 이용하면 실제 기기가 없어도 Xcode의 시뮬레이터를 통해 앱을 빠르게 테스트할 수 있습니다.
또한 Instruments를 사용하여 앱을 프로파일링(성능 분석) 및 분석하고, 성능을 개선하고, 시스템 리소스 사용량을 조사합니다.

그 외에도 Reality Composer로 3D 콘텐츠를 구성하고, Create ML으로 사용자 지정 머신 러닝 모델을 훈련하고, Accessibility Inspector로 액세스할 수 없는 앱의 영역을 식별할 수 있습니다.

이렇게 Xcode로 할 수 있는 일이 많은데요, 오늘은 가장 많이 보게 될 Xcode의 영역들과 프로퍼티 리스트, 패키지 종속성 추가 정도 보도록 하겠습니다.


Xcode Project Window

Xcode 프로젝트 창은 프로젝트의 모든 부분을 보고, 편집하고, 관리하기 위한 기본 인터페이스입니다.
작업 스타일에 맞게 구성하고 다양한 작업을 할 때 조정할 수 있습니다.

위 그림을 보면 각 영역에 대한 이름이 나와 있는데요, 하나씩 보겠습니다.

  • Toolbar: 앱 빌드 및 실행, 작업 진행 상황 보기 및 기본 창 구성을 위한 도구 모음입니다. 상단의 탭을 사용하여 열려 있는 파일을 정리합니다. 탭을 재정렬하거나, 개별적으로 닫거나, 탭 막대에서 드래그하여 새 창을 생성할 수 있습니다.
  • Editor area: Code, User Interface 파일, property lists, 프로젝트 설정 등을 포함한 프로젝트의 내용을 보고 편집하기 위한 편집기 영역입니다.
  • Navigatior area: files, symbols, breakpoints 및 빌드 정보를 포함한 프로젝트의 일부를 보기 위한 탐색기 영역입니다.
  • Debug area: 디버깅하는 동안 앱 실행을 제어하고 변수, 레지스터 및 상태 정보를 표시하기 위한 디버그 영역입니다.
  • Inspector area: navigator 또는 editor 영역에서 프로젝트 또는 선택한 개체에 대한 정보를 보고 편집하기 위한 속성 영역입니다.

프로젝트 네비게이터에서 선택한 파일이 편집기 영역에서 열립니다.
나타나는 편집기는 선택한 파일 유형에 따라 다릅니다.

예를 들어 소스 파일을 선택하면 소스 편집기가 editor 영역에 나타나고, property list를 선택하면 property list에 맞는 형식으로 Xcode가 알아서 보여줍니다.

Editor 구성

편집기를 추가, 제거 및 구성하려면 편집기 영역 상단에 있는 Jump bar 및 Tab bar의 제어기를 사용하면 됩니다.

Jump bar는 ProjectName > FolderName > FolderName > fileName 과 같이 경로가 나타나는 부분입니다.

편집기 영역에 표시되는 정보를 변경하려면 tab bar에서 Adjust Editor Options 버튼(아래 그림에서 가운데)을 클릭하고 다음 중 하나를 선택합니다.

Adjust Editor Options 버튼을 누르면 아래와 같은 메뉴가 나타납니다.

  • Canvas: 캔버스는 SwiftUI 인터페이스의 미리보기를 표시합니다. 레이아웃 메뉴를 사용하여 캔버스의 위치를 구성합니다.
  • Assistant: 보조 편집기는 편집하는 내용에 대한 정보를 표시합니다.
    예를 들어 SwiftUI 뷰의 보조 편집기는 캔버스 뷰를 표시하고 Objective-C 소스 파일의 보조는 일치하는 헤더를 표시합니다.
  • Minimap: 미니맵 뷰는 파일을 탐색하는 데 사용하는 소스 파일 콘텐츠의 소형 버전을 제공합니다.
  • Authors: 작성자 뷰에는 소스 제어 관리하에 있는 파일의 커밋 기록이 표시됩니다.
  • Code coverage: 코드 적용 범위 뷰에는 테스트를 실행한 후 소스 코드에 대한 통계가 표시됩니다. 프로젝트의 테스트에서 도달하지 못한 코드의 일부를 감지하는 데 사용할 수 있습니다.


파일 탐색하기

프로젝트 네비게이터는 프로젝트의 파일을 표시하고 해당 파일을 열고, 추가하고, 삭제하고, 재정렬할 수 있습니다.
프로젝트 탐색기(네비게이터)를 열려면 프로젝트 윈도우의 탐색기 영역 상단에 있는 파일 폴더와 유사한 아이콘을 클릭합니다.

파일을 선택하면 inspector 패널에 파일에 대한 정보가 표시되고 editor 영역에는 파일의 내용이 표시됩니다.

키워드 또는 기타 기준에 따라 파일을 찾으려면 탐색기 영역 하단에 있는 필터 막대에 찾으려는 정보를 입력하면 됩니다.

  • 파일을 검색하려면 필터 막대의 텍스트 필드에 키워드를 입력합니다.
  • 최근에 수정한 파일만 표시하려면 최근 파일 아이콘을 클릭합니다.
  • 소스 컨트롤 상태가 변경된 파일만 표시하려면 소스 제어 아이콘을 클릭합니다.

더 자세하게 탐색하기

Xcode는 프로젝트의 네비게이터 영역에서 액세스할 수 있는 Find 네비게이터에서 정교한 검색 및 바꾸기 기능을 제공합니다.
Find Navigator를 사용하여 전체 프로젝트에서 텍스트와 기호를 검색합니다.
고급 검색을 수행하려면 정규식을 사용하거나 네비게이터의 컨트롤을 사용하여 검색 작업 범위를 좁힐 수도 있습니다.

Find Navigator를 표시하려면 프로젝트의 탐색기 영역에서 돋보기 아이콘을 클릭합니다.

이곳에서는 파일의 이름뿐만 아니라 다른 텍스트로도 검색을 할 수 있습니다.
예를 들어, 검색 창에 // 를 입력하게 되면 모든 파일에서 // 를 이용해 적은 주석이 있는 파일들을 탐색할 수 있습니다.


Property List

앱의 Info.plist 파일은 iOS/macOS 앱 번들에 포함되어, 앱의 주요 메타데이터(예: 앱의 번들 ID, 지원하는 iOS 버전, 권한 설정 등)를 정의합니다.

실행 파일을 나타내는 모든 번들에는 번들을 설명하는 Information Property List 파일이 포함되어야 합니다.
Property List에 포함할 세부 사항은 실행 유형과 플랫폼에 따라 다릅니다.
일반적으로 Xcode에 의존하여 주어진 번들에 대한 Information Property List 파일을 만드는 것이 가장 좋습니다.

Xcode는 템플릿에서 프로젝트를 생성할 때 Information Property List 파일을 제공합니다.
기본적으로 Xcode는 이 파일의 이름을 Info.plist로 지정하고 편집할 수 있는 소스 파일로 프로젝트에 추가합니다.

Xcode는 프로젝트 폴더의 각 타겟에 대해 하나의 정보 속성 목록을 만듭니다.
예를 들어 iOS 앱에 의존하는 watchOS 앱은 각 watchOS 및 iOS 대상에 대해 별도의 Information Property List가 필요합니다.

Xcode는 파일을 만들 때 일부 프로퍼티 리스트 키를 자동으로 설정합니다.
예를 들어 Xcode는 UIMainStoryboardFile 키를 설정하여 스토리보드를 사용하는 iOS 앱의 메인 스토리보드 파일을 지정합니다. Xcode는 $(PRODUCT_BUNDLE_IDENTIFIER) 값을 가진 CFBundleIdentifier와 같이 빌드 설정을 사용하여 빌드 시 교체할 변숫값을 가진 특정 다른 키를 설정합니다.

즉 $()로 둘러싸인 값은 Build Setting에 있는 정보를 가지고 빌드 시에 정해지는 것 같네요!


Xcode에서 프로젝트 또는 target을 구성하여 일부 기본 설정을 변경하고 다른 설정을 추가할 수 있습니다.
예를 들어 target의 General 패널에서 Bundle Identifier 필드를 변경하면 PRODUCT_BUNDLE_IDENTIFIER 빌드 설정값에 영향을 미칩니다.

조금 전 위에서 나왔던 것처럼 Build Setting에서 설정한 값이 Info.plist의 값으로 사용되는 것을 볼 수 있습니다.

이 외에도 프로퍼티 리스트에 사용되는 많은 String 값 사용자에게 표시되는 문자열입니다. 따라서 현지화를 해줘야 하는데요.
예를 들어 카메라 권한을 획득할 때 이에 대한 설명을 Info.plist에 적는데 여러 국가에 출시하는 앱이라면 이를 현지화해줘야 한다는 것입니다.

또한 [key name]-[platform]~[device] 형식을 통해 플랫폼 또는 장치별로 키를 추가할 수도 있습니다.

빌드

Xcode는 앱을 빌드 할 때 코드 서명에 앞서 Info.plist 파일을 프로젝트에서 앱 번들로 복사합니다.
이를 통해 최종 파일이 올바른 이름을 가지고 있고 주어진 번들 유형에 대해 올바른 위치에 있는지 확인합니다.

복사를 하는 중에는 Xcode의 Build Setting을 사용하여 Info.plist에 있는 변수를 값으로 대체합니다.
그리고 Build Setting에서 설정한 값들을 Info.plist에 새로운 키-값으로 생성합니다.

예를 들어 iOS Deployment Target을 Build Setting에서 설정했다면 Info.plist에 MinimumOSVserion 키로 변환됩니다.

따라서 프로젝트에 있는 Info.plist와 빌드 후에 앱의 번들에 있는 Info.plist의 내용은 다릅니다.

코드 서명?

여기서 코드 서명이라는 단어가 나오는데요, 여기서는 무엇인지만 보고 넘어가겠습니다.

코드 서명은 앱이 신뢰할 수 있는 개발자가 작성했으며, 설치 이후 변경되지 않았음을 보장하기 위해 사용하는 보안 메커니즘입니다. Xcode는 코드 서명을 통해 앱의 신뢰성을 보장하고, 무결성을 유지합니다.



패키지 추가하기

Xcode는 소스 컨트롤 계정에 대한 지원이 내장되어 있으며 사용 가능한 Swift 패키지를 쉽게 활용할 수 있습니다.

Xcode 프로젝트에 패키지 종속성을 추가하려면 File > Add Package Dependencies를 선택하고 소스 컨트롤 저장소 URL을 입력합니다. 또는 타겟의 General 패널로 이동하여 "Frameworks and Libraries" 섹션에서 + 버튼을 클릭하고 Add Other...를 선택한 다음 Add Package Dependency를 선택할 수도 있습니다.



참고

0개의 댓글