Swift 代码是否包装在一个";“调试”;发布版本的预处理器?

Swift 代码是否包装在一个";“调试”;发布版本的预处理器?,swift,xcode,Swift,Xcode,我所指的代码与此类似: #if DEBUG // Some code with sensitive account information used for debugging #endif 在本例中,我使用precompiler标志轻松加载调试帐户信息,而不必每次都键入它 我关心的是敏感帐户信息是否会以任何形式包含在“发布”版本中 我的理解是,在这种情况下,代码块将在编译之前被剥离(当然,假设没有为发布配置设置调试标志) 您可以通过查看构建输出来验证这一点。查看用于源文件的详细命令行

我所指的代码与此类似:

#if DEBUG
    // Some code with sensitive account information used for debugging
#endif
在本例中,我使用precompiler标志轻松加载调试帐户信息,而不必每次都键入它

我关心的是敏感帐户信息是否会以任何形式包含在“发布”版本中


我的理解是,在这种情况下,代码块将在编译之前被剥离(当然,假设没有为发布配置设置调试标志)


您可以通过查看构建输出来验证这一点。查看用于源文件的详细命令行。如果您在命令中找不到
-DDEBUG
,那么您就知道
DEBUG
不存在,并且不会包含该代码。

我明白了,谢谢,那么我想可以安全地假设我构建的IPA不能进行反向工程或任何显示调试帐户信息的操作?顺便问一下,我应该找的是带双D的“-DDEBUG”吗?或者那是一个打字错误。不,两个
D
。它是
-D
命令行,后跟
DEBUG
。所以不是打字错误。是的,
#如果DEBUG
中的任何内容在代码编译之前就被完全删除了。啊,这是有道理的。谢谢你澄清这一点!