iOS App包含开发者路径信息

bba*_*art 13 xcode ios

检查已存档的应用程序,我可以看到应用程序二进制文件中列出的一些源代码文件的完整路径.并非列出所有源代码文件.

strings - the_binary_app | grep "\.m"

揭示了

/Users/bbarnhart/myPath/myPath/App/path/path/SourceCodeFile.m

以及其他一些人.我无法确定如何将几个源代码文件的完整路径嵌入到app二进制文件中.我想删除它们.有任何想法吗?这是一个构建设置还是项目文件稍有损坏?

一些属于lib,另一些属于项目.

rob*_*off 9

__FILE__宏扩展到完整路径到当前文件.这可能是您获取可执行文件路径的一种方式.例如,assert宏的扩展包括__FILE__宏.

查看strings | grep管道的输出.对于每个文件,进入Xcode中的项目并打开该文件.然后转到相关文件doodad并选择"预处理":

相关文件doodad

然后在预处理器输出中搜索文件的路径.你会发现许多误报,因为会有很多#行号/路径指令.您可以忽略这些,因为它们只生成调试输出,这不会包含在您的可执行文件中(除非您对构建设置做了一些奇怪的事情).您可能会发现将预处理器输出保存到文件更快,然后打开该文件并通过它grep或使用正则表达式搜索/替换来删除所有以#开头的行#.

查找路径显示为字符串常量的其他实例.例如,如果你使用了assert宏,你会发现这样的东西:

(__builtin_expect(!(argc > 0), 0) ? __assert_rtn(__func__, "/Volumes/b/Users/mayoff/TestProjects/textViewChanged/textViewChanged/main.m", 16, "argc > 0") : (void)0);
Run Code Online (Sandbox Code Playgroud)

这种情况下路径最终会嵌入到您的可执行文件中.

如果找不到嵌入路径的所有位置,请尝试从Related Files doodad中选择"Assembly".大会将充满包含你的路径的评论; 之后的所有内容@都是汇编输出中的注释,因此请忽略它们.

您还将在.file指令中看到您的路径.我相信这些只产生调试符号输出,它不会进入你的可执行文件,所以你也可以忽略它们.

.asciz指令之后不久,您还将在指令中看到您的路径.section DWARF,....这是您可以忽略的更多调试符号.

查找路径出现在装配输出中的其余情况.您需要弄清楚如何消除这些情况.如何执行此操作取决于路径显示的上下文,因此如果您需要更多帮助,请使用您找到的内容更新您的问题.