Xcode8 添加PCH文件

作者: 深山问 | 来源:发表于2015-11-06 16:58 被阅读64458次

    How ?

    1.  打开你的Xcode工程. 在Supporting Files目录下,选择 File > New > File > iOS > Other > PCH File 然后点击下一步;

    2. 假设你的项目名称为TestDemo, 你的PCH 文件的名字为TestDemo-Prefix.pch, (项目名和文件名都是举例!!), 实际按照实际为准然后创建;

    3. 选择 PCH 文件(文章的示例文件为 TestDemo-Prefix.pch) ,可以看到里面的内容如下:

    4. 找到 Project > Build Settings > 搜索 “Prefix Header“;

    5. “Apple LLVM 8.0 -Language″ (配图是Xcode7, 7,89是一样的的, 只是LLVM的版本不一样)栏目中你将会看到 Prefix Header 关键字;

    6. 输入: TestDemo/TestDemo-Prefix.pch (如 TestDemo/TestDemo-Prefix.pch ) 或者 $(SRCROOT)/TestDemo-Prefix.pch;如果你的pch文件名为TestDemo.pch, 那么这里就应该为TestDemo/TestDemo.pch 或者 $(SRCROOT)/TestDemo.pch

    7. 将Precompile Prefix Header为YES,预编译后的pch文件会被缓存起来,可以提高编译速度。效果如下

    8. Clean 并且 build 你的项目

    就是这样!Done!现在你可以使用你的 PCH 文件就像你使用老版本的Xcode一样了

    Q & A

    Q:按照上述操作还是找不到路径?

    A:  Prefix Header中的路径就是你的pch文件在你项目中的路径, 你可以在文件右边的File Inspector中找到Full Path, 然后核查你的路径是否正确。 假如你的pch文件实际加载在一个新的文件夹中, 那么可能需要在以上的路径中添加这个路径。

    比如pch加载在Support Files文件夹下, 那么你的路径应该是TestDemo/Support Files/TestDemo-Prefix.pch .

    Q: 为什么在Project中添加? 可以在Target中添加么

    A: 首先你应该明白ProjectTarget的区别,一个Project可以有多个Target

    可以在Target中添加, 在第4步为  Target > Building Settings > 搜索 “Prefix Header“;

    Note

    2017.11.30更新

    1. 修改了一些产能产生歧义的语句

    2. 增加了Target的理解

    相关文章

      网友评论

      • hahand:xcode9测试下
        $(SRCROOT)/真实路径/真实pch名.pch
        如果用了博主的"项目名-pch名.pch",是找不到路径的
        hahand:@默默desire 第六步如果你的pch文件名为TestDemo.pch, 那么这里就应该为TestDemo/TestDemo.pch 或者 $(SRCROOT)/TestDemo.pch
        我的意思是pch为任何名字都不用改名,而不是和项目同名时才不改名
        深山问:"项目名-pch名.pch" 只是你PCH的文件名,请看第6步
      • 6768064f405f:第一次使用可以提高编译速度,并缓存起来..但是若将该文件改动后,重新打包编译..则这个文件将会重新被编译并缓存...这种情况下,在编译效率上没有起到提高速度的效果.同时pch 中存在多个引用文件,若多个地方引用这个pch文件,而 pch 中的<3个的文件是对本次引用有用.则会将多个没用的文件被 IO 到该文件中,反而会降低编译速度...其实就是让头文件归类展示,方便开发者看着舒服.
      • CoderChou:写的很好,但是对于$(SRCROOT)是否弃用,持保留意见,我试了一下,可以用,期待作者的回复:blush:
        后知后觉___:@NSLog_木木 在本地Finder找到PCH文件,然后拖拽就可以了
        156d72df55fc:为什么我的报这个错Lexical or Preprocessor Issue Group 找不到文件
      • 空转风:还是报错,说找不到这个路径
        空转风:@默默desire 抱歉,是我一开始没吧pch文件添加到工程,就是一开始创建的时候没打勾,现在可以了
        空转风:@默默desire 好的,我晚上回去发给你,麻烦你了
        深山问:@年光逝也被僵尸号占了 什么错误?或者你可以把你的问题写一个小demo, 发送到我的邮箱(见我主页)
      • 丁小时候:cocoa pods下 不生效 求解
        深山问:@丁小时候 CocoaPods是第三方库依赖,与这个没有关系的, 你再仔细看一下
      • Bison:在此纠正一下 $(SRCROOT)是错的,应该是工程文件夹中的相对路径,如 项目名/YourProject-Prefix.pch 😄
        Yaanco:@Bison 直接将pch文件拖进去就ok了, :smile:
        Bison:@东神笔记 不客气😜
        深山问:@Bison 你说的对,$(SRCROOT)现在无效了.文中已更改。谢谢你指出 :relaxed:

      本文标题:Xcode8 添加PCH文件

      本文链接:https://www.haomeiwen.com/subject/dfhfhttx.html