[iOS] AppProject 속성

nini·2022년 7월 28일
0

UMC

목록 보기
12/13

AppProject

: PROJECT, TARGETS


1. PROJECT

: 모든 파일, 리소스, 소프트웨어 빌드에 필요한 모든 정보의 저장소

1-1. Info

  • Info
    • Deployment Target
      • 지원하는 최소 OS 버전
    • Configurations
      • 기본적으로 Debug, Release를 지원
      • 개발 버전, 릴리즈버전, 무료버전, 유료버전, 베타 등 다양한 환경에서 테스트를 하기 위해 Configuration을 추가할 수 있음
    • Localizations
      • 지원하는 언어(지역)
      • Base : 영어
      • 로컬라이징 해주고 싶은 언어를 설정해주는 곳
        - 로컬라이징: 나라별로 언어를 설정하는 것

1-2. Build Settings

  • Build Settings
    • 아주 중요하고 민감한 값, Build Setting을 저장하고 있는 파일이 project.pbxproj 파일
    • 기본값이 아닌 Build Setting은 Customized 필터 옵션에서 확인
    • 현재 적용되어 있는 Build Setting이 기본값을 쓰고 있는지, 프로젝트에 적용된 값을 쓰고 있는지, Target별로 override를 한 것인지 등을 확인 가능
    • 불필요한 Build Setting 변경은 최소화 하기 !

1-3. Package Dependencies

  • Package Dependencies
    • Swift Packages(SwiftPM)
    • Swift Package Manager
      : 애플에서 제공하는 dependency manager (줄여서 SPM)
      - Swift Package Manager로 패키지 설치
      - 이 과정을 Xcode > 프로젝트 Target > Package Dependencies 를 통해 진행
    • 프로젝트 내 swift 라이브러리를 관리하는 매니저
    • Swift 코드의 배포를 관리하기 위한 도구
    • Swift 빌드 시스템과 통합되어 종속성을 다운로드, 컴파일 및 연결하는 프로세스를 자동화함

2. TARGETS

  • Target은 빌드할 product를 지정하여 프로젝트 또는 workspace의 파일 집합에서 product의 빌드 방법(by Build Settings / Phases)을 지정
  • 프로젝트에는 하나 이상의 Target이 포함될 수 있으며, 각 Target은 하나의 product를 생성함
  • Target별로 빌드 설정을 달리할 수 있음
  • Targets에서는 project 내에서 여러개의 target을 만들어서, 하나는 ios 용, 하나는 mac 용으로 제작하거나, 모듈을 하나하나 따로 뺄 수 있게 해줌
  • Target은 Target 내에서 지정한 build Setting에 의해 override 되지 않는 이상 기본적으로 Project Build Setting을 상속받음
    • Configuration은 하나의 target에 대해 다른 버전의 앱을 만드는 것 !
    • Target은 같은 파일로 만들어도 (일부 or 전부 상관없이) 결론적으로는 다른 Product를 만드는 것 !!

2-1. General

  • General
    • Identify
      • Display Name : 프로젝트 이름 설정
      • Bundle Identifier : App Store에 앱 배포시 앱 이름
      • Version : (사용자가 보게 될) 나의 앱 버전
      • Build : (동일한 버전 내에서) 업데이트를 할 때 설정 → 빌드 횟수 관리
    • Deployment Info : 앱을 배포할 때 필요한 항목 설정
      • iOS 15.2 (iPhone & iPad & Mac) : os 버전이 쭉 나오고, 설정하는 버전 이후의 유저만 사용 가능
      • Main Interface : 앱 기본 인터페이스 설정
      • Device Orientation : 기기 방향 설정
        - 앱 실행 화면을 가로방향, 세로방향, 두가지 모두 중에 설정 가능
        (Portrait : 세로 | Landscape : 가로)
      • Status Bar style : 상태바 스타일
        - Default를 추천 (Hide status bar 체크 → 앱 실행 시 화면 상단의 상태바가 사라짐)
    • App Icons and Launch Images  : 앱 아이콘 및 런치 스크린 설정
      • App Icons Source : Assets.xcassets 파일로 이동하며, 상황별 아이콘이 있음 (하나라도 비어 있으면 검수 시 reject 당할 수 있다 !)
      • Launch Screen File : 앱 실행 시 나오는 splash 화면
    • Frameworks, Libraries, and Embedded Content
      : 앱에서 쓰이는 라이브러리를 embeded 시킬지 or 안 시킬지에 대한 설정
      • embeded 시킬 시 → 앱에 library가 포함된 채 배포
      • embeded 안 시킬 시 → 앱 실행 시에 library 참조

2-2. Sigining & Capabilities

  • Sigining & Capabilities
    • Signing : Automatically manage signing을 체크 → 내 인증과 관련된 자료를 Xcode가 알아서 서버에서 가져옴

2-3. Resource Tags

: 태그를 사용하여 주문형 배포를 위해 자산을 그룹화할 수 있음

⇒ 앱의 일부로 모든 이미지를 배송하는 것과 달리 필요할 때 앱에서 다운로드할 수 있는 이미지 그룹을 정의할 수 있다 !

2-4. Info

  • Info : 파일 유형 및 서비스 정보 추가
    • Custom iOS Target Properties : 사용자 지정 대상 속성
    • Document Types
      • 문서 유형 설정은 앱에서 만들고 편집 할 수있는 문서 유형을 지정하고 iOS 또는 Mac OS에서 해당 문서 유형에 대해 표시되는 사용자 정의 아이콘을 제공
    • Exported Type Identifiers & Imported Type Identifiers
      • 앱에서 내보내거나 가져올 수있는 모든 파일 유형에 대해 내보내고 가져온 UTI를 추가
      • 일반적으로 앱에 고유 한 문서 유형과 달리 UTI는 일반 텍스트 또는 .png. 예를 들어 UTI는 앱간에 클립 보드에 복사 및 붙여 넣기를 지원
    • URL Types
      • URL 유형 설정을 사용하면 사용자 지정 프로토콜을 사용하여 다른 앱과 데이터를 교환하기 위한 사용자 지정 스키마 지정 가능
      • 파일의 유형 및 서비스 정보 추가, 앱과 관련된 속성 앱이 만들거나 열 수 있는 파일의 유형

2-5. Build Settings

  • Build Settings: product 빌드 수행에 대한 정보가 들어있는 변수
    • 이 값들을 어떻게 설정하느냐에 따라 생산성에 큰 차이가 생길 수도, 알 수 없는 런타임 오류가 발생 할 수도 있음
    • 따라서 프로젝트에서 Build Setting을 변경 할 때에는, 그럴만한 충분한 이유가 있어야 하고, 그 이유와 맥락이 팀 전체에 공유가 잘 되어야 함 !

2-6. Build Phases

: Dependency와 유저의 컴파일 코드를 포함하는 정보

2-7. Build Rules

  • ‘Build Rules’에 따라 컴파일러에서 파일을 컴파일할 때 수행 할 동작을 자동화할 수 있음
profile
도전하는 iOS 개발자

0개의 댓글