2016-10-01 66 views
6

我很难在此找到任何信息。在提交到商店之前,Android自己会提到代码混淆的问题。但是我从Apple或任何“第三方”提交清单之前都看不到这一点。我能找到的唯一类似问题是5年前关于Objective-C的一个类似问题,我只能找到1个关于iOS混淆的github库。向Apple App Store提交时混淆Swift代码是否是一种常见做法?特别是要隐藏任何私人API URL或API密钥?苹果公司有没有Pro-Guard等同物?在提交给Apple App Store之前模糊Swift代码

+1

什么是混淆?您的Swift代码在构建的应用程序的任何位置都不可见。 – matt

回答

7

Java被转换为可以反编译的字节码。

Swift是一种编译语言,Clang编译器经过高度优化。在发布模式下,它会去除符号并进行大量优化,从而自行完成大量混淆处理。有编译语言的反编译器,但结果非常糟糕,难以阅读。

+1

实际上,Xcode也将Swift代码转换为Apple的一种称为bitcode的中间表示字节码。但是,IIRC在将应用程序发送给客户之前会被Apple剥离,并且该应用程序的编译代码也会被Apple加密。 Swift编译器在发布版本(包括代码重新排序等)上执行的优化会执行一些混淆处理。 – hotpaw2

+0

@ hotpaw2,我不认为应用程序的编译代码是加密的。它是代码签名的,目标设备的操作系统拒绝启动应用程序,除非签名(包括用户的AppleID)签出。 –

+0

从iOS App Store下载应用程序,并查看是否可以在zip文件中找到任何可见的ARM机器代码。 – hotpaw2

相关问题