运行调试/分发构建检测是否有可能在运行时检测是否正在运行的应用程序与调试或分发编译。如果iPhone在运行时
5
A
回答
13
在项目信息,用于调试配置,添加“调试”的预处理宏(在GCC 4.2 - 预处理部分)。
在你的代码可以使用#ifdef来看看是否DEBUG是,如果你想包括或不包括一些代码的调试版本定义。或者你甚至可以设置一个变量(我不能想象你为什么会想这样):
#ifdef DEBUG
BOOL isBuiltDebug = YES;
#else
BOOL isBuiltDebug = NO;
#endif
编辑:那么,另一种方法是在预处理宏,即定义一个布尔值:“DEBUG_BUILD = 1“表示调试配置,”DEBUG_BUILD = 0“表示发布配置。然后你就可以在你的代码中使用该值:
if (DEBUG_BUILD) {
....
}
只是要小心,不要使用宏的名字,可能的名称匹配的是已经在你的代码或以任何.h文件中,你可能包括两种,因为预处理器将取代它,并且发现这些类型的错误真的很痛苦。
5
而不必考虑如何定义自定义预处理宏,你可以写这样一个自定义的方法:
+ (BOOL) isInDebugMode
{
#ifndef __OPTIMIZE__ // Debug Mode
return YES;
#else
return NO;
#endif
}
或者只是那些语句中编写代码内联:
#ifndef __OPTIMIZE__ // Debug Mode
// Your debug mode code
#else
// Your release mode code
#endif
__OPTIMIZE__
预处理器设置由编译器自动设置,关于您的项目设置,因此您不必担心它。
相关问题
- 1. 我可以在iPhone上运行JavaScript运行时(如v8)吗?
- 2. 如果程序在特定时间运行,运行命令?
- 3. 运行时的iPhone视图?
- 4. 在运行时确定iPhone设备
- 5. iPhone:下载的zip并在运行时
- 6. 如果Chrome扩展在Opera上运行,它如何在运行时检查?
- 7. 我如何在运行时更换键盘在iphone中
- 8. 如何在iPhone运行时在bundle中创建sqlite数据库?
- 9. PHP Laravel如果(!空())运行时,空
- 10. 粒子效果在运行时
- 11. 在运行时过滤NSFetchedResultsController结果
- 12. 如果AsyncTaskLoader运行
- 13. 如何在运行pdfjs时运行javascript?
- 14. 如何在iphone移动项目运行
- 15. 如何在iphone中运行python?
- 16. 如何在iPhone的后台运行sqlite?
- 17. 在iPhone上运行djvulibre?
- 18. 完成在iPhone上运行
- 19. 在iPad上运行iPhone SDK
- 20. 在iphone上运行fb:swf吗?
- 21. Iphone Settings.Bundle-如何在运行时更新Type字段
- 22. 如何在iPhone运行时删除图像的背景sdk
- 23. 如何在运行时过滤颜色? - iphone
- 24. 如何在非越狱休息时运行IPA文件iphone
- 25. 如何在iPhone上的指定时间运行应用程序?
- 26. iPhone - 如何在运行时处理错误
- 27. 如何知道运行时在iphone中的视图名称
- 28. 如何在运行时更改Dashcode(iPhone)中的xml绑定
- 29. 如何在运行时更改NIB的视图Outlet? iPhone
- 30. #如果在iPhone SDK
你为什么要这么做? – progrmr 2010-04-03 00:04:51