Debugging 调试/发布配置中的不同iOS应用程序设置?
我正在为iPad开发一个应用程序,最近我在settings.app的应用程序页面中添加了一些设置(如调试模式开关和FPS计数器开关),以简化应用程序测试人员的工作。当然,我不想在最终版本中保留这些设置。有没有办法在发布的版本中隐藏settings.bundle中的一些设置,但在调试版本中显示它们?或者,是否有一种方法可以有条件地在我的应用程序目标中使用不同的Settings.bundle,具体取决于我是使用发行版还是调试配置来编译应用程序?您可以在项目生成设置中定义特定于每个配置的C预处理器宏。例如,我在调试配置中有Debugging 调试/发布配置中的不同iOS应用程序设置?,debugging,ios,settings,release,Debugging,Ios,Settings,Release,我正在为iPad开发一个应用程序,最近我在settings.app的应用程序页面中添加了一些设置(如调试模式开关和FPS计数器开关),以简化应用程序测试人员的工作。当然,我不想在最终版本中保留这些设置。有没有办法在发布的版本中隐藏settings.bundle中的一些设置,但在调试版本中显示它们?或者,是否有一种方法可以有条件地在我的应用程序目标中使用不同的Settings.bundle,具体取决于我是使用发行版还是调试配置来编译应用程序?您可以在项目生成设置中定义特定于每个配置的C预处理器宏。
-DDEBUG
,它定义了debug
宏。然后,可以使用#ifdef DEBUG#endif
此外,Info.plist文件可以预处理。我知道这很晚了,但这可能会帮助其他人 这就是我解决同样问题的方法
- 创建2个Root.plist文件,一个用于调试,另一个用于发布
- 在生成过程中添加此运行脚本
最后,我决定向预处理Info.plist文件的目标添加一个运行脚本构建阶段。我可以从环境变量中获取配置的名称,并使用该名称决定必须包括/排除Info.plist文件的哪些部分。一旦我把它整理好,我会在这里发布一个完整的解决方案。Info.plist预处理是XCode官方功能的一部分(请参阅)
if [ "$CONFIGURATION" == "Debug" ];then
rm -f "$SRCROOT/Settings.bundle/Root.plist"
cp "$SRCROOT/Debug/Root.plist" "$SRCROOT/Settings.bundle"
else
rm -f "$SRCROOT/Settings.bundle/Root.plist"
cp "$SRCROOT/Release/Root.plist" "$SRCROOT/Settings.bundle"