Xcode : 일반 언어로 된 목표와 체계는 무엇입니까?


답변:


309

작업 공간과 프로젝트에도 추가했습니다!

  • 작업 공간 -하나 이상의 프로젝트를 포함 합니다 . 이 프로젝트는 보통 서로 관련이 있습니다
  • 프로젝트 -코드 및 리소스 등이 포함되어 있습니다.
  • 목표 -각 프로젝트에는 하나 이상의 목표가 있습니다.
    • 각 대상은 해당 프로젝트의 빌드 설정 목록을 정의합니다
    • 각 대상은 빌드 할 때 포함 / 사용할 클래스, 리소스, 사용자 지정 스크립트 등의 목록도 정의합니다.
    • 대상은 일반적으로 동일한 프로젝트의 다른 배포에 사용됩니다.
      • 예를 들어, 내 프로젝트에는 추가 테스트 기능이있는 "일반"빌드와 "사무실"빌드라는 두 가지 대상이 있으며 여러 가지 배경 음악 트랙과 트랙을 변경하는 단추 (현재와 같이)가있을 수 있습니다.
      • 클래스와 리소스를 추가 할 때 기본 대상에 추가하는 데 사용됩니다.
      • 어떤 클래스 / 리소스가 어떤 대상에 추가되는지 선택하고 선택할 수 있습니다.
        • 내 예에는 사무실 빌드에 추가 된 "DebugHandler"클래스가 있습니다.
      • 테스트를 추가하면 새 대상도 추가됩니다.
  • 구성표 -구성표는 "빌드", "테스트", "프로필"등을 누를 때 발생하는 상황을 정의합니다.
    • 일반적으로 각 대상에는 하나 이상의 구성표가 있습니다
    • 구성표> 구성표 관리로 이동하여 "지금 구성표 자동 작성"을 눌러 대상에 대한 구성표를 자동 작성할 수 있습니다.

내가 올바르게 이해하면 시도해 봅시다 ... 나는 응용 프로그램을 프로그래밍하고 두 가지 목표를 만듭니다. 하나는 앱 스토어에 업로드하고 다른 하나는 이미 동일한 앱의 다음 버전을 개발합니다. 그리고 스킴에서 예를 들어 실행할 대상과 디버그를위한 하나의 스킴을 하나 만들까요? 그러나 왜 다른 계획이 필요합니까? BJ 호머의 장점을 이해하지 못했습니다.
MichiZH

FWIW, 나는 대답에 설명 된 것처럼 추가 디버그 기능을 추가하지 않는 한 릴리스 및 디버그에 다른 체계를 사용하지 않습니다.
James Webster

2
훌륭한 설명 형제! ! !
Sagar Kalathil

6
사무실 건물의 하단에 음악 단추가 있다는 것은 무엇을 의미합니까? 실제 앱에는 사무실 빌드에서만 활성화되거나 음악이 Mac에서 실행되는 추가 코드가 있습니까? 혼란스러워 죄송합니다
3366784

이러한 종류는 각 개념이 무엇을 구성하는지 정의하지만 각 항목 의 목적 은 정의하지 않습니다 . 저에게 OP가 요구 한 바가 있습니다.
O'Rooney

66

대상은 엑스 코드에서 "빌드"를 실행하여 생성 된 최종 제품입니다. 앱, 프레임 워크, 정적 라이브러리 또는 단위 테스트 번들 일 수 있습니다. 그것이 무엇이든간에, 그것은 일반적으로 "빌드 된 제품"폴더의 단일 아이템에 해당합니다.

방식은 당신이 함께 작동하는지 목표의 컬렉션을 나타냅니다. Xcode에서 다양한 작업 (Run, Test, Profile 등)을 선택할 때 사용되는 대상을 정의합니다. 종종 Run, Archive 및 Profile 작업에 기본 앱 대상을 사용하는 구성표가 하나뿐입니다. 테스트 조치에 대한 단위 테스트 대상. 두 개의 관련 앱을 빌드하는 경우 동일한 단위 테스트 번들을 사용하지만 다른 앱 대상을 사용하는 두 가지 구성표가있을 수 있습니다.

Xcode 4에 도입 된 구성표의 주요 이점은 선택한 대상을 전환하지 않고도 앱 실행과 단위 테스트 간을 전환 할 수 있다는 것입니다.


61

나는 시각적 인 사람이므로 다이어그램을 사용할 개념을 설명합니다.

대상 이 여러 개인 경우 Xcode의 Run, Test, Profile 작업과 일대일 일치 할 수 있습니다.이 개념은 체계를 정의합니다.

여기에 이미지 설명을 입력하십시오

대상이 당신의 버전 프로젝트 , 즉 대상은 건설 기간 동안 사용 클래스 및 자원에 약간 다릅니다. 프로젝트는 별도의 배포 요구 사항을 위해 여러 빌드 시간 설정을 가질 수 있습니다.


7
이 다이어그램은 잘못된 것 같습니다. 체계는 특정 목표에 묶여 있어야합니다. 체계 내에서 여러 목표를 가질 수있는 곳은 보이지 않습니다.
Boon

6
@Boon 아니오, 부주의하게 Choosy는 정확합니다. 구성표 편집기에서 왼쪽의 '빌드'항목을 클릭하십시오. 오른쪽 영역에서 '+'를 클릭하면이 체계에 더 많은 대상을 추가 할 수 있습니다. 원하는대로 박스를 체크하십시오. 이러한 대상의 실행 파일은 실행 드롭 다운의 다른 작업 (실행, 프로필 등)에서 사용할 수 있습니다.
occulus

이것은 좋지만 구성표의 빌드 구성 부분이 없습니다. 나는 계획 (작업, 실행, 테스트, 프로파일)이 대상과 빌드 구성 (디버그, 릴리스, qa, prod 등)의 조합과 일치하는 방식의 모음으로 생각합니다.
Steve Moser

3

Workspace( .xcworkspace)-여러 개의 컨테이너입니다 projects. [정보] 의 다음 단계로 생성되었습니다 cross-project references.

  • Workspace포함 된 모든 schemes것을 포함projects
  • Workspace모든 정보 처리implicit dependencies

관찰 :

  • 이 같은 내부의 다른 프로젝트와 작업에 대한 안전 workspace및 캐치하지 않습니다Couldn't load Project.xcodeproj because it is already opened from another project or workspace
  • Cocoapods[정보] 프로젝트workspace생성 위치 작업Pods

Project( .xcodeproj)- targets및 의 컨테이너입니다 scheme. 그것은 코드 파일, 리소스를 정의합니다 ...

Target- PBXNativeTarget섹션. 다음을 생성하는 특정 빌드 설정 세트를 정의합니다.

  • Application target
  • Library and framework targets
  • Test
  • Aggregate[소개] . 예 그것이를 만드는 데 사용됩니다Universal framework또는Umbrella framework

Scheme- Project's엑스 코드의 행동에 대한 구성 : 실행 , 테스트 , 프로파일 , 분석아카이브 . CI에서 당신을 돕고 공유Schema 할 수 있습니다 ...Carthage

<project_path>/<project_name>.xcodeproj/xcshareddata/xcschemes

Dependency- Targets가질 수 있습니다 dependencies. 종속성은에 대한 소스 링크입니다. 이러한 종속성은 정적으로 또는 동적으로 연결할 수 있습니다. [정보] 두 가지 유형이 있습니다.

  • Explicit Dependency[정보] - 동일한 프로젝트 또는 중첩 된 프로젝트 에있는 종속성의 소스 코드
  • Implicit Dependency[About] -동일한 작업 공간의 일부인 프로젝트에있는 종속성의 소스 / 닫힌 코드입니다.

[어휘]

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.