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
中的任何内容在代码编译之前就被完全删除了。啊,这是有道理的。谢谢你澄清这一点!