Xcode中常见的环境变量

    xiaoxiao2021-12-14  22

    为当前项目添加.pch文件

    新建.pch文件,pch文件的命名规则:“工程名字-Prefix.pch”,当然也可以不遵守这个规则随意命名

    指定pch文件所在的位置(既然我是新建的pch文件,Xcode为何不直接给我设置pch文件的路径,还要开发者做这件事,真是不人性化),在Build Settings中搜索Prefix Header, 然后在该项中输入“ (SRCROOT)//pch (SRCROOT)/iBlog/iBlog-Prefix.pch”

    将Precompile Prefix Header 预编译头设置成YES,表示在编译时缓存缓存头文件,可以提供编译速度


    $(SRCROOT) 是什么鬼

    从上图中可以看到系统将 (SRCROOT) (XXX)”这个东西为Xcode的环境变量, src root ,即 源码的根路径,使用这个环境变量的好处是如果将.pch文件的路径写死成绝对路径,当这个项目发到其他电脑上允许,那么这个路径将不匹配,如果使用环境变量无论放在那个电脑上都可以允许,因为$(SRCROOT)会自动识别项目所在的路径

    Prefix Header相对路径配置

    上面使用了$(SRCROOT)环境变量来配置.pch文件的绝对路径,也可以通过配置相对路径配置,默认Xcode是从项目所在的目录的父目录开始搜索的:在本示例中是”/Users/macmin/Documents/iBlog”, 所以配置.pch文件的相对路径要在前面的路径上再追加“iBlog/iBlog-Prefix.pch”即可


    Info.plist 中的$()

    $(PRODUCT_NAME) : product name :产品名字

    环境变量的目的就是为了一次定义多次使用,在其他某个地方修改了,其他所有引用的地方都会跟着改变。

    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

    $(PRODUCT_BUNDLE_IDENTIFIER) product bundle identifier

    就是App的唯一标识,同样可以在多个地方来修改


    $(EXECUTABLE_NAME)

    执行程序名,默认与 PRODUCT_NAME 一致。不能修改Info.plist中的该键,否则报错

    $(inherited):继承

    头文件搜索的路径 Xcode在编译时, Header Search Paths、Library Search Paths是一定会去搜索的。而User Header Search 、只有在Always Search User Paths为Yes时才会被搜索。

    Project的Building Settings中得设置默认并不被Targets继承,只有当Targets的设置加入了 (inherited) (inherited)” 就表示从frameworks里面读取。

    转载请注明原文地址: https://ju.6miu.com/read-963869.html

    最新回复(0)