一、处理流程
1、按照下述 “二、U素材修改 三、工程修改” 说明修改工程,打包游戏ipa

2、提交处理

3、用bundle id对应的证书,对【framework、entitlements】重签名,测试;

重签名时注意对项目内引用过的全部framework、entitlements进行签名,签名方法为:

codesign -f -s "IOS修改游戏文件 ios怎么修改游戏文件_ios{ipaName}.app/Frameworks/xxx.framework/xxx

其中certfierName为签名证书,替换成签名时使用的证书即可;xxx为framework名称,解开ipa可以查看到,如果有多个framework,则需要分别签名;

或者直接使用shell脚本签名工具:./resign.sh xxx.ipa,修改版本号并签名:./resign.sh xxx.ipa 1.2.3

4、按照下述 “四、提审注意事项”提测

二、UI素材修改
1、至少修改以下几个游戏界面【游戏登录界面、游戏进度条加载等待界面,游戏商品购买界面】,如替换资源图片或者修改界面布局、配色等,其他界面如能修改能提高过审率;

2、app icon要换全新的发行商马甲包的icon,素材不能跟其他马甲包有类似;

3、移除多余没用的图片资源文件

4、修改AppStore截图,五张图,要做个全新的,图片素材不能跟其他马甲包一样。

5、AppStore的那个内购选项列表,商品名、图片,图片需要换新的不同的游戏购买界面截图

三、工程代码修改
1、移除代码中所有第三方支付SDK,如weixin支付,alipay等支付sdk,包括资源文件、plist里面的配置等;

全局搜索,游戏自定义的类、方法、变量、注释等命名中的pay、order、alipay、阿里、wechat、weixin、微信、zhifu、支付、chongzhi、充值、buy 等;

2、加密或修改敏感字符串,如H5支付的url;

第三方支付全部走H5支付方式,H5调起app第三方支付;

3、修改Xcode工程app名称(同一游戏的不同渠道包之间,app名称不要有任何相同字词,一个字相同都不行;

修改bundle id,用全新的苹果开发者证书的bundle id;

移除plist里面的充值白名单;

移除多余无用的资源文件;

4、使用脚本,对工程,全部类名添加"Tuling_"类名前缀

5、使用脚本,对工程,全部的方法名前缀,改成“Tuling_”,部分方法,需要手动去改,除了改前缀,方法名都要适当改30-40%

6、【必须、重要】处理项目中的图片(.xcassets 、图片资源)资源,更改hash值、换图片名

(1)更改图片hash值【必须重要】

使用 ImageMagick 对 png 图片做轻量压缩,及不损失图片质量,又可改变图片文件 hash 值。方法:

安装 ImageMagick,brew install imagemagick
压缩工程目录下所有 png 文件,find . -iname “*.png” -exec echo {} ; -exec convert {} {} ;
(2)手动对图片名字进行改名操作,80%的图片要换名字【必须重要】

7、使用脚本,增加混淆无用代码,并且无用代码需要在真实代码中调用(1-99的混淆力度,一般设置60-70);

8、打包ipa时要断开网络,防止被apple标记;

9、使用正式的bundle id打包;

10、SDK的域名需要1-2个月换一次,SDK服务器也是需要定期更换

11、脚本参考(批量话改类名、方法前缀、项目名,或者自己用python脚本进行对xcode代码批量化处理)

https://github.com/klaus01/KLGenerateSpamCode

https://github.com/JourneyYoung/iOSMixProject

四、提审注意事项
1、同一个游戏的不同渠道包不要使用相同的帐号和电脑提审,一个渠道包只对应一个苹果账号;

提包设备和ID,不能重复太多次

2、马甲包主标题不能有重复字眼,主副标题全部用全新的

例如:

主包的主标题叫【阴阳师周年庆-正当少年时】,马甲包的主标题,“阴阳师周年庆-正当少年时”这几个字眼都不能出现,一个字都不能重复

副标题【白藏主、少羽大天狗降临】,马甲包的副标题,“白藏主、少羽大天狗降临”这几个字眼都不能出现,一个字都不能重复

3、马甲包首次提审,尽量不要设置副标题,关键词少一些,先过审,过深厚可以再走更新包重新配置详细的副标题、关键词

4、马甲包描述、功能介绍等尽量不要有重复,要用一套全新的描述,不能被检测到有50%的字样相同

5、修改https://appstoreconnect.apple.com中的苹果内购,IAP中的产品id、名称、描述等;马甲包这结果选项,要跟主包完全不一样,最好是有一套自己的马甲包的说辞手法,跟其他的马甲包能尽量区分开,让AppStore机审过程检测不到相同。IAP的商品图片要全新的不一样的

例如:

商品id:com.tulinggame.fylj.pay6

名称:60元宝

描述:你将会花费6元人民币获得60元宝

6、尽量在凌晨1点后提审(即apple审核中心上班时间),能加快提神速度;

7、错开同一个主包游戏,本公司马甲包跟其他公司马甲包的提审时间

8、尽量使用不同的ip申请帐号、提审;

9、修改https://appstoreconnect.apple.com中,新的游戏icon,新的五张游戏截图;

10、AppStroe提审时,一定要采用苹果内购支付,需要在账号栏提供沙盒测试账号。SDK后台要控制,提审版本的游戏version是一定要走苹果内购支付

11、马甲包提审,要采用【手动发布】的方式,过审后,一般马甲包是需要等CP开服成功之后,发行商才能自己手动放出来给人下载的,不然会出问题

12、提交处理的bundle id必须是正式的bundle id,处理后不可修改;

13、提交马甲包审核前,先wifi路由器,再做提审提包操作

14、升级xcode至9.0以上(苹果提审要求)