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

5
如果我向客户分享未签名的XCARCHIVE文件,他们能看到源代码吗?与发送IPA文件相比,它在任何方面都不安全吗?
谢谢。
2个回答

7

如果你查看.xcarchive文件的内容,你会发现它包含一个"dSYM"目录(用于保存应用程序的调试符号)、一个Info.plist文件和一个包含应用程序二进制文件的目录。这种方式发送应用程序不会比使用IPA方式更不安全。


听起来还不错。我用十六进制编辑器查看了应用程序二进制文件 - 没有看到任何可读的代码,但我找到了一堆选择器名称 - 这些不能被反编译吗? - Chris
很抱歉,那超出了我的专业领域。如果可以问一下,客户使用您的方法名称可能会造成的最坏后果是什么? - Mark Adams
1
@MarkAdams:逆向工程该应用程序,使原帖作者的工作对他们来说变得毫无价值,从而失去他们的业务和知识产权? - user244343
3
仅凭方法名称就能逆向工程出应用程序所有功能的人完全值得获得它。 - Mark Adams
1
所以,根据wevah的说法,使用IPA而不是XCARCHIVE并没有增加额外的安全性,因为唯一的区别就是签名。这对我来说很有道理。 - Chris
显示剩余4条评论

2
分发.xcarchive目录如果你担心被反向工程是一个不好的主意。具体来说,.ipa文件通常不包含C符号表。任何与任何objc链接的mach-o二进制文件都将包括描述所有objc类、选择器和imp地址的段。这在反向工程时非常有用,但C符号表是可以丢弃的,也应该丢弃。.dSYM目录(包含剥离的符号表)是为了使崩溃报告中的堆栈跟踪能够进行符号化而保留的。没有技术上的理由去分发它。事实上,对于反向工程师来说,拥有符号表可能是无价之宝。如果你担心有人反向工程你的一些逻辑,请使用私有的C函数来实现所有内容(在编译器看来都在同一个文件中),并仅分发剥离的二进制文件(.ipa而不是.xcarchive)。除非被迫,不要使用objc。即使这样,一个擅长反编译的人最终也会找到所有答案,但这会更加困难。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接