ios dev kangwook.

Xcode) project.pbxproj 본문

iOS

Xcode) project.pbxproj

kangwook 2022. 9. 11. 17:50

각각의 요소들은 24개의 16진수 표현을 사용하여 96비트 식별자를 표현

구성

  • Root Element
  • PBXBuildFile
  • PBXBuildPhase
    • PBXAppleScriptBuildPhase
    • PBXCopyFilesBuildPhase
    • PBXFrameworksBuildPhase
    • PBXHeadersBuildPhase
    • PBXResourcesBuildPhase
    • PBXShellScriptBuildPhase
    • PBXSourcesBuildPhase
  • PBXContainerItemProxy
  • PBXFileElement
    • PBXFileReference
    • PBXGroup
    • PBXVariantGroup
  • PBXTarget
    • PBXAggregateTarget
    • PBXLegacyTarget
    • PBXNativeTarget
  • PBXProject
  • PBXTargetDependency
  • XCBuildConfiguration
  • XCConfigurationList

Root Element

  • 가장 기본적인 정보를 담은 부분
Attribute Type Value Comment
achiveVersion Number 1 기본 값
classes List Empty  
objectVersion Number   XcodeCompatibilityVersion enumeration
objects Map A map of element The map is indexed by the elements identifier
rootObject Reference An element reference PBXProject의 reference

PBXBuildFile

  • PBXBuildPhase에서 사용된 file reference

AttributeTypeValueComment

Attribute Type Value Comment
reference UUID A 96 bits identifier  
isa PBXBuildFile Empty  
fileRef Reference An element reference PBXFileReference의 element에 대한 reference 
settings Map   추가적인 setting에 대한 map

PBXBuildPhase

  • PBXCopyFilesBuildPhase
    • build phase에서 복사할 파일들에 대한 정보
    Attribute Type Value Comment
    reference UUID A 96 bits identifier  
    isa PBXCopyFilesBuildPhase Empty  
    buildActionMask Number 2^32-1  
    dstPath String The destination path  
    dstSubfolderSpec Number   A unique reference ID
    files List A list of element reference PBXBuildFile의 element에 대한 Reference
    runOnlyForDeploymentPostprocessing Number 0  
  • PBXFrameworksBuildPhase
    • build phase에서 프레임워크들의 link에 대한 정보
    Attribute Type Value Comment
    reference UUID A 96 bits identifier  
    isa PBXFrameworksBuildPhase Empty  
    buildActionMask Number 2^32-1  
    files List A list of element reference PBXBuildFile의 element에 대한 Reference
    runOnlyForDeploymentPostprocessing Number 0  
  • PBXHeadersBuildPhase
    • build phase에서 header들에 대한 정보
    Attribute Type Value Comment
    reference UUID A 96 bits identifier  
    isa PBXHeadersBuildPhase Empty  
    buildActionMask Number 2^32-1  
    files List A list of element reference PBXBuildFile의 element에 대한 Reference
    runOnlyForDeploymentPostprocessing Number 0  
  • PBXResourcesBuildPhase
    • build phase에서 resource들에 대한 정보
    Attribute Type Value Comment
    reference UUID A 96 bits identifier  
    isa PBXResourcesBuildPhase Empty  
    buildActionMask Number 2^32-1  
    files List A list of element reference PBXBuildFile의 element에 대한 Reference
    runOnlyForDeploymentPostprocessing Number 0  
  • PBXSourcesBuildPhase
    • build phase에서 source들에 대한 정보
    Attribute Type Value Comment
    reference UUID A 96 bits identifier  
    isa PBXSourcesBuildPhase Empty  
    buildActionMask Number 2^32-1  
    files List A list of element reference PBXBuildFile의 element에 대한 Reference
    runOnlyForDeploymentPostprocessing Number 0  
  • PBXShellScriptBuildPhase
    • build phase에서 실행할 shell script에 대한 정보
    Attribute Type Value Comment
    reference UUID A 96 bits identifier  
    isa PBXShellScriptBuildPhase Empty  
    buildActionMask Number 2^32-1  
    files List A list of element reference PBXBuildFile의 element에 대한 Reference
    inputPaths List A list of string input paths
    outputPaths List A list of string output paths
    runOnlyForDeploymentPostprocessing Number 0  
    shellPath String The path to the shell interpreter  
    shellScript String The content of the script shell  

PBXContainerItemProxy

  • 타겟 아이템을 decorate 하기 위한 용도
Attribute Type Value Comment
reference UUID A 96 bits identifier  
isa PBXContainerItemProxy Empty  
containerPortal Reference An element reference PBXProject의 element에 대한 Reference
proxyType Number 1  
remoteGlobalIDString Reference An element reference 특정한 reference ID
remoteInfo String    

PBXFileElemnt

  • PBXFileReference
    • 프로젝트에서 참조하는 모든 외부 파일(소스, 리소스, 라이브러리, 생성된 application 파일 등)을 추적하는데 사용
    Attribute Type Value Comment
    reference UUID A 96 bits identifier  
    isa PBXFileReference Empty  
    fileEncoding Number   PBXFileEncoding enumeration
    explicitFileType String   PBXFileType enumeration
    lastKnownFileType String   PBXFileType enumeration
    name String The filename  
    path String The path to the file  
    sourceTree String   PBXSourceTree enumeration
  • PBXGroup
    • 그룹 파일 또는 그룹들에 대한 정보
    Attribute Type Value Comment
    reference UUID A 96 bits identifier  
    isa PBXFileReference Empty  
    children List A list of element reference PBXFileElement의 element에 대한 reference
    name String The filename  
    sourceTree String   See the PBXSourceTree enumeration
  • PBXVariantGroup
    • 지역화된 리소스를 참조하기 위한 정보
    Attribute Type Value Comment
    reference UUID A 96 bits identifier  
    isa PBXVariantGroup Empty  
    children List A list of element reference PBXFileElement의 element에 대한 reference
    name String filename  
    sourceTree String   PBXSourceTree enumeration

PBXTarget

  • PBXAggregateTarget
    • 여러 다른 대상을 aggregate하는 빌드 타겟에 대한 정보
    Attirbute Type Value Comment
    reference UUID A 96 bits identifier  
    isa PBXAggregateTarget Empty  
    buildConfigurationList Reference An element reference XCConfigurationList에 있는 element의 reference
    buildPhase List A list of element reference PBXBuildPhase에 있는 element의 reference
    dependencies List A list of element reference PBXTargetDependency에 있는 element의 reference
    name String The name of target  
    productName String The name of product  
  • PBXNativeTarget
    • binary content(application / library)를 생성하는 빌드 타겟에 대한 정보
    Attribute Type Value Comment
    reference UUID A 96 bits identifier  
    isa PBXNativeTarget Empty  
    buildConfigurationList Reference An element reference XCConfigurationList에 있는 element의 reference
    buildPhase List A list of element reference PBXBuildPhase에 있는 element의 reference
    dependencies List A list of element reference PBXTargetDependency에 있는 element의 reference
    name String The name of the target  
    productInstallPath String The product install path  
    productName String The name of product  
    productReference Reference An element reference PBXFileReference에 있는 element의 reference
    productType String   See the PBXProductType enumeration

PBXProject

Attribute Type Value Comment
reference UUID A 96 bits identifier  
isa PBXProject Empty  
buildConfigurationList Reference An element reference XCConfigurationList에 있는 element의 reference
compatibilityVersion String string으로 표현한 XcodeCompatibilityVersion PBXBuildPhase에 있는 element의 reference
developmentRegion String   개발 지역
hasScannedForEncodings Number 0 or 1 파일 인코딩의 스캔 여부
knownRegions List A list of string 지역화된 파일들에 대해 알려진 지역
mainGroup Reference An element reference PBXGroup에 있는 element의 reference
productRefGroup Reference An element reference PBXGroup에 있는 element의 reference
projectDirPath String   project의 상대경로(relative path)
projectReferences Array of map Each map in the array contains two keys : ProductGroup and ProjectRef  
projectRoot String   proejct의 상대 루트 경로(relative root path)
targets List list of element reference PBXTarget에 있는 element의 reference

PBXTargetDependency

  • content proxy를 통해 다른 대상을 참조하기 위한 요소
Attribute Type Value Comment
reference UUID A 96 bits identifier   
isa PBXTargetDependency Empty  
target Reference An element reference PBXNativeTarget의 element에 대한 reference
targetProxy Reference An element reference PBXContainerItemProxy의 element에 대한 reference

XCBuildConfiguration

  • build 설정을 정의하기 위한 정보
Attribute Type Value Comment
reference UUID A 96 bits identifier   
isa XCBuildConfiguration Empty  
baseConfigurationReference String The path to xcconfig file  
buildSettings Map A map of build settings  
name String The configuration name  

XCConfigurationList

  • build configuration 를 list형식으로 구성
Attribute Type Value Comment
reference UUID A 96bits identifier  
isa XCConfiguraitonList Empty  
buildConfigurations List An list of element reference XCBuildConfiguration의 element에 대한 reference
defaultConfigurationIsVisible Number 0  
defaultConfigurationName String The default configuration name  

 

참조 : http://www.monobjc.net/xcode-project-file-format.html

'iOS' 카테고리의 다른 글

iOS) Scene  (0) 2022.09.18
iOS) Split View  (0) 2022.09.17
iOS) Memory Management - ARC  (0) 2022.08.27
iOS) App Life Cycle, View LIfe Cycle  (0) 2022.08.27
iOS) WKWebView vs. SFSafariViewController  (0) 2022.08.22
Comments