背景
问:我不要频繁安装+卸载来安装我想要的包。我能不能同时装一个测试环境和正式环境?
答:不行。安装两个包,严格上来讲,不用想了,不行。具体原因涉及应用id,及app根据该id配置了各种三方key环境(除非你连三方的也都额外提供一套),太详细的道理我就不讲了。”不行“就对了。但是,我能让你安装一个包,却使用不同环境的功能。或者额外安装一个除与应用id相关的功能外其他皆一样的安装包。
一、切换环境常见的场景为:
1、测试时候:换环境不用一直下载;
2、演示时候:某个环境使用不了,不用重新下载;
3、抓包时候:想切换代理,不用重新打包安装;
见下文:app环境与切换
二、额外安装一个除与应用id相关的功能外其他皆一样的安装包的使用场景:
1、app中不能接受切换环境,即严格限制一个包只能有一个环境
不允许切换环境的考虑原因:
测试包不允许切到生产:怕脏数据
生产包不允许切到测试:测试环境不是外界用户真正需要的
见我的另一篇文章:《iOS的重签名.md》
一、功能开关

二、app安装包与切换
1、app安装包信息
1.1、换包:app下载页
1.2、版本记录:历史版本记录页
2、各文件目录及大小
三、app环境与切换

流程图:《开发工具(含环境切换等).graffle》中的【一、切换环境】版面
1、切换环境
2、切换平台
3、添加代理
四、设备信息

1、设备网络类型
2、设备屏幕大小
2.1、设备适配验证
3、设备ip及代理
4、设备埋点参数
未截取到的其他埋点参数见我的另一篇文章:《埋点规范_结构.md》
5、是否模拟器

五、用户相关
六、调试页面
| 支付 | 支付宝 | ||
| 认证 | 实名认证、真人认证 | ||
| 选择器 | 生日选择、活动时间选择、项目多选 | ||
| 分享 | |||
| 关键页面入口 | 个人主页、发布页、引导页、完善性别/生日 | ||
| 位置相关 | 地图位置选择 |
快捷入口
1、检查更新

2、网页测试
2.1、网页快捷入口

2.2、白屏测试
2.3、JS测试
《h5js.md》
2.4、Route测试
七、开发工具安全性处理
见我在”安全”专题里的另一篇文章:《开发工具安全性处理》
八、脚本工具
目前的脚本操作如下:

其中自定义的脚本操作有如下:

附1:Charles
文档:《Charles.md》
附2:代理的实现(Flutter版)
dio添加代理
1 | (dio.httpClientAdapter as DefaultHttpClientAdapter).onHttpClientCreate = |