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
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