如果我与客户共享一个未签名的XCARCHIVE文件,他们可以看到源代码吗?

时间:2011-12-18 23:17:53

标签: iphone objective-c ios

如果我与客户共享一个未签名的XCARCHIVE文件,他们能看到源代码吗?它是否比发送IPA文件更安全?

由于

2 个答案:

答案 0 :(得分:7)

如果你看一下.xcarchive,你会发现它包含一个“dSYM”目录(它包含应用程序的调试符号),一个Info.plist和一个包含应用程序二进制文件的目录。它应该比发送IPA更安全。

答案 1 :(得分:2)

如果您担心逆向工程,分发.xcarchive目录是一个坏主意。

特别是.ipa文件通常不包含C符号表。

任何objc链接的任何mach-o二进制文件都将包含描述所有objc类,选择器和imp地址的段。反转时很有用,但C符号表可以并且应该从分布式二进制文件中删除。

.dSYM目录(包含剥离的符号表)是专门保留的,因此可以对崩溃报告中的堆栈跟踪进行符号化。分发它没有理由。

实际上,对于逆向工程师来说,拥有符号表可能是无价的。

如果您担心有人对某些逻辑进行逆向工程,请使用私有C函数实现所有内容(就编译器而言,所有内容都在同一文件中)并仅分发剥离的二进制文件(.ipa而不是.xcarchive)。

不要使用objc而不是你被迫使用。

即便如此,一个善于使用反编译器的人最终仍会把它弄清楚,但这将会更加困难。