目前我正在为我的项目构建两个应用程序,一个在发布中,另一个在调试中(唯一改变的是用于签名的配置文件和端点)。由于某些政策,我不应该在本地创建 ipa 文件。所以我使用 maven 基于脚本构建这两个版本(发布和调试)。由于相同的策略,输出应该从应用程序中完全删除(NSLog
、printf...)。 我知道预处理器宏,但我不想依赖它们,因为有人(在不知情的情况下)可能会更改它们并危及我想要实现的目标。所以我想要的是:
- 当我使用模拟器或直接在真实设备上运行时,能够注销任何我想要的东西
- 当我使用 maven 构建我的应用程序时,它会确保
NSLogs
被剥离或禁用。
Maven 依赖于远程存储库中的内容来实际进行构建,因此如果有一种方法可以在远程存储库提交期间禁用此日志,这也是一种解决方案..
最佳答案
使用这个宏会自动退出登录 Release模式。
只需将所有 NSLog
替换为 DLog
并在将来使用 DLog
进行日志记录。
示例:DLog(@"Text : %@",sometext);
#ifdef DEBUG
# define DLog(fmt, ...) NSLog((@"%s [Line %d] " fmt), __PRETTY_FUNCTION__, __LINE__, ##__VA_ARGS__);
#else
# define DLog(...)
#endif
关于ios - 发布 iOS 应用程序时删除日志,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18232226/