我们在手游平台SDK的iOS版本中, 除了AppStore官方支付之外还集成了第三方支付(微信支付H5和支付宝支付H5版本)。 如果用于企业签,不需要做处理,直接使用即可。 但是如果需要上架AppStore,我们需要屏蔽第三方支付。 这个我们后台设置开关,直接后台切换支付方式即可。 上架审核的时候, 切换为Appstore支付;审核通过的时候,切换为第三方支付。因为第三方支付,是H5方式,不会被机审检测到。 同时,防止被抽查,后台也可以设置,将每次前多少次支付,设置为AppStore支付,之后用第三方支付,降低被抽查到的风险。
但是只是做到这个还不够, 如果需要用这套SDK上多个游戏,或者多个马甲包。 防止一样的代码被4.3的风险或者被代码标记的风险,我们需要对SDK的代码进行混淆, 每次出一个马甲SDK。
关于iOS代码的混淆, 查阅了网上很多文章,混淆的原理性文章都是多年之前的了纯字符随机替换,这种按照目前的机审政策,已经很难过审了。另外也有一些混淆工具,不过是按时间收费的。
所以,我们这里就U8SDK下面的XSDK(手游平台SDK)这个项目,来谈一谈iOS中的代码混淆。
如果在开发之初, 开发者经验丰富, 或者运营经验丰富, 提前将混淆这个事情重视起来, 那么混淆就会很简单。 可以事先指定代码编写规则,尽量保证类方法变量等的唯一性。 比如所有的类以X开头,所有的方法函数以F开头,所有的属性以P开头, 所有的内部变量以S开头等等这样的规则。 那么在后续写混淆的时候,几行代码就可以搞定了。
但是我相信多数项目和XSDK一样