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