ios - 发布 iOS 应用程序时删除日志

标签 ios maven nslog

目前我正在为我的项目构建两个应用程序,一个在发布中,另一个在调试中(唯一改变的是用于签名的配置文件和端点)。由于某些政策,我不应该在本地创建 ipa 文件。所以我使用 maven 基于脚本构建这两个版本(发布和调试)。由于相同的策略,输出应该从应用程序中完全删除(NSLog、printf...)。 我知道预处理器宏,但我不想依赖它们,因为有人(在不知情的情况下)可能会更改它们并危及我想要实现的目标。所以我想要的是:

  1. 当我使用模拟器或直接在真实设备上运行时,能够注销任何我想要的东西
  2. 当我使用 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/

相关文章:

ios - -[UIView initWithFrame :] returning nil

ios - 命名空间中不存在类型或命名空间名称 "MyBindingLib"(您是否缺少程序集引用?)

java - 如何使用 Maven 运行单元测试,就好像它们在 JAR 中一样?

iphone - 定期从 iPhone stderr 读取

objective-c - 有没有办法记录 Objective-C 实例的所有属性值

cocoa - NSLog 10b 含义?

ios - 自定义UICollectionViewCell占用大量内存

ios - 试图将图像从从 Firebase 加载的 UICollectionView 传递给另一个 VC

java - mvn测试并编译

java - 关于运行时不是 'perfect match' 到 'RequiredExecutionEnvironment' 的警告是怎么回事?