前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >iOS项目添加PCH文件、常用预处理指令(移除程序中的identifier、发布模式关闭NSLog)

iOS项目添加PCH文件、常用预处理指令(移除程序中的identifier、发布模式关闭NSLog)

作者头像
公众号iOS逆向
发布2021-03-08 11:01:48
1.4K0
发布2021-03-08 11:01:48
举报
文章被收录于专栏:iOS逆向与安全iOS逆向与安全

引言

原文:

https://blog.csdn.net/z929118967/article/details/113755392

pch头文件的内容能够被项目中的其他所有源文件共享和访问,通常我们可在pch文件定义一些全局的宏和导入一些基础类

例如:在pch文件中添加预处理指令,可以在发布应用的时候,一次性将NsLog语句移除;

I、Xcode 添加PCH文件步骤


  • 1.) 打开你的Xcode工程. 在Supporting Files目录下,选择 File > New > File > iOS > Other > PCH File 然后点击下一步;
  • 2.) 给你的PCH文件起名字TestDemo-Prefix.pch. 例如你的项目工程名为TestDemo然而你的PCH 文件的名字应该为 TestDemo-Prefix.pch,然后创建;
  • 3)pch示例:
代码语言:javascript
复制
#ifndef PrefixHeader_pch
#define PrefixHeader_pch

// Include any system framework and library headers here that should be included in all compilation units.
// You will also need to set the Prefix Header build setting of one or more of your targets to reference this file.
#import "QCTConsts.h"
#import "UIWindow+Extension.h"
#pragma clang poison NSLog //移除程序中的指定identifier(标识符)

#endif /* PrefixHeader_pch */

  • 4.) 找到 Project > Build Settings > 搜索 “GCC_PREFIX_HEADER“;
  • 5.) “Apple LLVM -Language″ 栏目中你将会看到 Prefix Header 关键字;
  • 6.) 输入: YourProjectName/YourProject-Prefix.pch

如 TestDemo/TestDemo-Prefix.pch

在这里插入图片描述

  • 7.),将Precompile Prefix Header为YES,预编译后的pch文件会被缓存起来,可以提高编译速度。GCC_PRECOMPILE_PREFIX_HEADER
  • 8.) Clean 并且 build 你的项目.

这里写图片描述

II、 常用预处理指令

2.1 移除程序中的指定identifier(标识符)

#pragma clang poison identifier

应用场景:禁止使用ObjC 的运行时API

  • 例子:
代码语言:javascript
复制
#pragma clang poison NSLog

在这里插入图片描述

2.2 DEBUG 宏的应用

1、原文:https://kunnan.blog.csdn.net/article/details/109624460 2、应用场景:区分调试模式和发布模式进行特殊处理 3、The DEBUG preprocessor macro setting in an Xcode project

4、发布模式关闭NSLog

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-03-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 iOS逆向 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 引言
  • I、Xcode 添加PCH文件步骤
  • II、 常用预处理指令
    • 2.1 移除程序中的指定identifier(标识符)
      • 2.2 DEBUG 宏的应用
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档