参考文章: Xcode Project File Format
打开project.pbxproj,基本结构如下
// !$*UTF8*$!
{
archiveVersion = 1;
classes = {
};
objectVersion = 45;
objects = {
...
};
rootObject = 0867D690FE84028FC02AAC07 /* Project object */;
}
Attribute|Type|Value|Comment
-|
archiveVersion|Number|1|Default value.
classes|List|Empty|
objectVersion|Number||See XcodeCompatibilityVersion enumeration.
objects|Map|A map of element|The map is indexed by the elements identifier.
rootObject|Reference|An element reference|The object is a reference to a PBXProject element.
唯一标识符
rootObject = 0867D690FE84028FC02AAC07 /* Project object */;
0867D690FE84028FC02AAC07是什么玩意?在文档中搜索0867D690FE84028FC02AAC07,一共会有两处,一处是上面的,另外一处在
// !$*UTF8*$!
{
archiveVersion = 1;
classes = {
};
objectVersion = 45;
objects = {
...
/* Begin PBXProject section */
0867D690FE84028FC02AAC07 /* Project object */ = {
isa = PBXProject;
attributes = {
...
};
rootObject = 0867D690FE84028FC02AAC07 /* Project object */;
}
一个唯一标识符对应一个对象,通过唯一标识符可以找到对象定义的地方,相当于通过唯一标识符将声明和实现放在了不同的位置。在project.pbxproj里主要就是()和{},如果需要对象嵌套,就会使用唯一标识符来代替,主要的内容都在objects里面。
一般都是通过xcode来操作project.pbxproj,但是在需要的时候,也可以直接编辑project.pbxproj来达到目的。