Target在build中的控制
在Xcode
的Project editor
中的Build Setting
、Build Phases
和Build Rules
用来控制整个编译过程
Build Phases
构建可执行文件规则。
Target Dependencies
指定target的依赖项目,在targrt build之前需要先build的依赖
Compile Source
指定所有必须编译的文件,这些文件会根据build Setting
和Builsd Rules
里的设置来处理
Link Binary With Libraries
列出所有的静态库和动态库,和编译生成文件进行链接
Copy Bundle Resources
指定要copy的资源文件
Build Rules
指定不同文件类型如何编译。每条build rule 指定了该类型怎么处理立即输出在哪。可以增加一条新规则对特定类型文件类型添加处理方法
Build Setting
在build
的过程中各个阶段的选项的设置
pbxproj工程文件
.xcodeproj
包中的工程文件project.pbxproj
里包含了build过程中的设置.
- 在这个文件中,首先找到rootObject的值
rootObject = CFE011DA22409055007FEEDD /* Project object */;
- 根据CFE011DA22409055007FEEDD代表的proect找到这个工程,这里面包括了部分这个工程的信息
/* Begin PBXProject section */
CFE011DA22409055007FEEDD /* Project object */ = {
isa = PBXProject;
attributes = {
LastUpgradeCheck = 1010;
ORGANIZATIONNAME = universalCertification;
TargetAttributes = {
CFE011E122409055007FEEDD = {
CreatedOnToolsVersion = 10.1;
};
};
};
buildConfigurationList = CFE011DD22409055007FEEDD /* Build configuration list for PBXProject "RSSReader" */;
compatibilityVersion = "Xcode 9.3";
developmentRegion = en;
hasScannedForEncodings = 0;
knownRegions = (
en,
Base,
);
mainGroup = CFE011D922409055007FEEDD;
productRefGroup = CFE011E322409055007FEEDD /* Products */;
projectDirPath = "";
projectRoot = "";
targets = (
CFE011E122409055007FEEDD /* RSSReader */,
);
};
/* End PBXProject section */ - 然后根据工程中的
targets
可以找到对应target/* Begin PBXNativeTarget section */
CFE011E122409055007FEEDD /* RSSReader */ = {
isa = PBXNativeTarget;
buildConfigurationList = CFE011F822409056007FEEDD /* Build configuration list for PBXNativeTarget "RSSReader" */;
buildPhases = (
47F7B3ABDF3263B6EDCA68AD /* [CP] Check Pods Manifest.lock */,
CFE011DE22409055007FEEDD /* Sources */,
CFE011DF22409055007FEEDD /* Frameworks */,
CFE011E022409055007FEEDD /* Resources */,
);
buildRules = (
);
dependencies = (
);
name = RSSReader;
productName = RSSReader;
productReference = CFE011E222409055007FEEDD /* RSSReader.app */;
productType = "com.apple.product-type.application";
};
/* End PBXNativeTarget section */ - 可以根据这些信息查看更详细的编译信息
比如:buildConfigurationList
指向了debug和release的详细配置信息