一、环境隔离
- 发布账号不要添加任何测试设备,检查device列表【重灾区:设备device】
- 每次上传都使用修改序列号相关信息的虚拟机 (虚拟机可以使用VMWare Fusion, 配合修改虚拟机序列号脚本一起使用) ,在新建账户中上传【重灾区:上传电脑】
- 在虚拟机中和主机共享应用程序,使用低版本Xcode的appLoader上传,注:我的是Xcode10.1
- 测试应用功能必须使用单独的测试账号,这个账号不要做其他用,避免关联,【重灾区:device】
- 打包上传必须使用4G网,不能使用可能被标记的公司wifi和公共网,【重灾区:网络环境】
- 新建管理员账户并在此基础上进行代码修改打包【隐藏的重灾区:打的包中能看到文件路径】
- 发布账号不要在Xcode中登录,使用虚拟机创建证书并导出P12共享出来
- AppleID绑定的手机号使用单独的手机号,并且不能绑定其他AppleID
- ITC后台配置文案,所有网络链接地址替换,截屏修改;多次或者重新提交,内容也都要改
- ITC银行账户专号专用(特别是含内购类商品)
二、代码部分
-
SDK部分混淆 —— 权重低
-
图片资源改名,json,txt等文本类修改文本内容,图片修改md5并使用CarTool查看和对比前后md5是否修改完成,使用工具MD5Change和脚本添加tag值的更改会在打包后还原,压缩图片可行,但是压缩后md5可能会不变,多次压缩需要验证是否真正修改成功,使用脚本或者手动添加像素可行 —— 权重极高
-
类名修改替换,属性名修改替换,函数名修改替换,枚举类型名及枚举值名修改替换,通知名修改替换,常量字符串修改或者使用base64等加密解密的方式放入加密后的字符串,在代码中使用的时候再进行解密,仅添加前缀还不够,可以尝试在前中后都添加自定义字符串,也不影响阅读和后续维护 —— 权重高
-
本地化文案的key值修改,value使用base64等加密解密的方式放入加密后的字符串,在代码中使用的时候解密 —— 权重高
-
icon修改,启动图替换,项目改名并使用别的Xcode进行创建 —— 权重高
-
非Pod管理的第三方工具也要进行资源修改替换和以上各种修改 —— 权重高
-
Release环境下的log去除,建议把log只放在debug这种非上线环境下 —— 权重低
三、工具部分:
- 文本对比 BeyondCompare
- Asset打包后的文件Asset.car,提取资源的工具 CarTool
- 类名批量修改工具
- 函数名批量修改脚本
- 文本批量base64工具或者手动替换base64
- 资源图片添加像素的批量修改脚本
- 图片压缩 imageOptim
- 熊猫压缩网站 TinyPng
四、过包经验补充部分
- 包覆盖问题:如果账号被封或者改包失败被一直无限延审或者一直Other,需要在彻底封号前用空包提交覆盖提交1个小时后撤回,并改掉所有信息。
- 中英双语的iTC后台主语言设置为英文
- 第一个内购版本提交的时候,不要有多余的没在界面上能体现的内购项目。
网友评论