JavaScriptを有効にしてください

project.pbxproj の構造

 ·  ☕ 2 min read

#Computer

1
2
3
4
5
6
7
8
9
 {
   archiveVersion = 1;
   classes = {};
   objectVersion = 46;
   objects = {
     .... hoge_hoge ....
   }
   rootObject = 9D6B60051BC4FC8A0034855E /* Project object */;
}
  • objects
1
2
3
4
5
6
<id> = {
    <key> = <value>;
    <key> = <value>;
     ....
 };
...

の形でファイルやフォルダ構造等が記述.

の中でも特に, isa=オブジェクトのタイプ,**Refにファイルに対応するユニークID(A 96 bits identifier)**が記述される.

例えばPBXBuildFileだと…

1
9D6B60131BC4FC8A0034855E /* ViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D6B60121BC4FC8A0034855E /* ViewController.swift */; };
  • オブジェクトのタイプ

PBXProject
→ プロジェクト

PBXBuildFile
→ ビルド対象

PBXFileReference
→ファイルに対応する unique ID

PBXGroup
→ グループ(フォルダ)

PBXVariantGroup
→ Localizationされているファイル

objects内では原則,
PBXBuildFile→PBXFileReference→PBXGroup→PBXProject→PBXVariantGroupの順に記述される(要出典)

  • PBXBuildFile
1
8D06A44026C13BE9000590B6 /* SearchTextField.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8D06A43F26C13BE8000590B6 /* SearchTextField.swift */; };
  • PBXFileReference
1
8D06A43F26C13BE8000590B6 /* SearchTextField.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SearchTextField.swift; sourceTree = "<group>"; };

→ UUIDは96bit (参考)

  • PBXGroup
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
	8D66A6CA26C3D00900DE04D2 /* protocol */ = {
		isa = PBXGroup;
		children = (
			8D266196270C6EE400A9F393 /* AuthRepository.swift */,
			8D66A6E426C5297500DE04D2 /* BrickRepository.swift */,
			8D66A6BE26C3CA3D00DE04D2 /* FeedRepository.swift */,
			8D66A6DB26C426AB00DE04D2 /* UserRepository.swift */,
			8D98B31F26C8AC0500765365 /* PostRepository.swift */,
			8DDD830B26F48EDA00E77296 /* ReportRepository.swift */,
			8D2661A3270DE2ED00A9F393 /* ConfigRepository.swift */,
		);
		path = protocol;
		sourceTree = "<group>";
	};
  • MVPのtemplateを自動生成する
1
uuidgen | sed s/-//g | cut -c 9-32
共有

YuWd (Yuiga Wada)
著者
YuWd (Yuiga Wada)
機械学習・競プロ・iOS・Web