Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/103.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Debugging 调试/发布配置中的不同iOS应用程序设置?_Debugging_Ios_Settings_Release - Fatal编程技术网

Debugging 调试/发布配置中的不同iOS应用程序设置?

Debugging 调试/发布配置中的不同iOS应用程序设置?,debugging,ios,settings,release,Debugging,Ios,Settings,Release,我正在为iPad开发一个应用程序,最近我在settings.app的应用程序页面中添加了一些设置(如调试模式开关和FPS计数器开关),以简化应用程序测试人员的工作。当然,我不想在最终版本中保留这些设置。有没有办法在发布的版本中隐藏settings.bundle中的一些设置,但在调试版本中显示它们?或者,是否有一种方法可以有条件地在我的应用程序目标中使用不同的Settings.bundle,具体取决于我是使用发行版还是调试配置来编译应用程序?您可以在项目生成设置中定义特定于每个配置的C预处理器宏。

我正在为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"