指定pch文件所在的位置(既然我是新建的pch文件,Xcode为何不直接给我设置pch文件的路径,还要开发者做这件事,真是不人性化),在Build Settings中搜索Prefix Header, 然后在该项中输入“ (SRCROOT)/项目名称/pch文件名”,例如“ (SRCROOT)/iBlog/iBlog-Prefix.pch”
将Precompile Prefix Header 预编译头设置成YES,表示在编译时缓存缓存头文件,可以提供编译速度
从上图中可以看到系统将 (SRCROOT)转换成项目所在位置的绝对路径,我们可以称“ (XXX)”这个东西为Xcode的环境变量, src root ,即 源码的根路径,使用这个环境变量的好处是如果将.pch文件的路径写死成绝对路径,当这个项目发到其他电脑上允许,那么这个路径将不匹配,如果使用环境变量无论放在那个电脑上都可以允许,因为$(SRCROOT)会自动识别项目所在的路径
上面使用了$(SRCROOT)环境变量来配置.pch文件的绝对路径,也可以通过配置相对路径配置,默认Xcode是从项目所在的目录的父目录开始搜索的:在本示例中是”/Users/macmin/Documents/iBlog”, 所以配置.pch文件的相对路径要在前面的路径上再追加“iBlog/iBlog-Prefix.pch”即可
环境变量的目的就是为了一次定义多次使用,在其他某个地方修改了,其他所有引用的地方都会跟着改变。
PRODUCT_NAME就是可以看做是App的名字,App的名称可以在,也可以直接修改Info.plis中对应的键,还可以在Build Settings中修改Product Name来修改(默认是$(TARGET_NAME):即当前选中的target对应的值)
Bundle name 简单来说就是 App 安装到 iOS 机子里的 App 文件夹名。Executable name – 执行程序名,默认与 PRODUCT_NAME 一致。Bundle display name – 真正显示到用户屏幕上的 App 名称。可见在模拟器/真机上显示的名字是由Bundle Display Name决定的。默认情况下Bundle Display Name就等同于Product Name,所以大家通常认为Product Name=App的Name
就是App的唯一标识,同样可以在多个地方来修改
执行程序名,默认与 PRODUCT_NAME 一致。不能修改Info.plist中的该键,否则报错
头文件搜索的路径 Xcode在编译时, Header Search Paths、Library Search Paths是一定会去搜索的。而User Header Search 、只有在Always Search User Paths为Yes时才会被搜索。
Project的Building Settings中得设置默认并不被Targets继承,只有当Targets的设置加入了 (inherited)时才被继承,添加目录的时候写上“ (inherited)” 就表示从frameworks里面读取。