在这一篇文章中,我主要说一下我对Xcode工程文件(即project.pbxproj)的结构的理解。Xcodeproj框架中提供的类与工程文件结构会有着一一对应的关系。所以只有了解了工程文件,才能更好地使用Xcodeproj。
如下,有着一个简略的工程文件project.pbxproj结构
{
archiveVersion = 1;
classes = {};
objectVersion = 46;
objects = {
/* Begin PBXBuildFile section */
工程构建所需要的源文件,依赖库,资源文件
/* End PBXBuildFile section */
/* Begin PBXContainerItemProxy section */
/* End PBXContainerItemProxy section */
/* Begin PBXFileReference section */
工程创建和导入的所有的文件
/* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */
工程构建所需的framework
/* End PBXFrameworksBuildPhase section */
/* Begin PBXResourcesBuildPhase section */
工程构建所需的资源文件
/* End PBXResourcesBuildPhase section */
/* Begin PBXSourcesBuildPhase section */
工程构建所需的源文件
/* End PBXSourcesBuildPhase section */
/* Begin PBXGroup section */
工程中的Group
/* End PBXGroup section */
/* Begin PBXNativeTarget section */
运行的真正目标,一个工程对应着多个target
/* End PBXNativeTarget section */
/* Begin PBXProject section */
代表整个工程
/* End PBXProject section */
/* Begin PBXReferenceProxy section */
/* End PBXReferenceProxy section */
/* Begin XCBuildConfiguration section */
build setting中的配置项
/* End XCBuildConfiguration section */
/* Begin XCConfigurationList section */
配置项列表
/* End XCConfigurationList section */
};
rootObject = C49C934915F59F86001CC04F /* Project object */;
}
可以看到project.pbxproj文件是类似于json的结构,主要的配置都在objects 属性中。
PBXBuildFile : 在这个section中配置的是工程构建所需的源文件,依赖库,资源文件,头文件;这些配置可以在工程配置中build phase配置
以下分别是源文件,资源文件和依赖库的记录
072DC2091AAECD1F00E7056A /* SetFriendRemarkView.m in Sources */ = {isa = PBXBuildFile; fileRef = 072DC2081AAECD1F00E7056A /* SetFriendRemarkView.m */; };