一个包任意切换不同测试环境是一直想做的。
以前开发任务少,打包少,就感觉和自己离的远。
这几天重新提起,于是用了三天时间,分析思路与实现。
记录一下这份喜悦。
首先mpaas客户端切换环境需要更改6个位置的配置代码文件:无线保镖图片,info.pllist,配置文件(纯文本),还有3个代码文件。
1.info.pllist 通过重写系统的NSBundle类的infoDictionary属性的set方法实现。这个在之前的博客中已经写过不再复述。链接:更改bundleid后蚂蚁金服MPSafeKeyboard的安全键盘不显示的解决办法
2.配置文件(纯文本)通过
方法一:fishhook系统open方法(实践表明只有第一次安装客户端才会走open)
方法二:hook系统NSBundle的- [pathForResource:ofType:],然后替换为相应文件
3.代码文件通过全局变量或沙盒标记,直接判断
4.无线保镖图片通过
方法一:对系统NSData由file创建方法
方法二:UIimage由file创建方法,
方法三:NSBundle路径获取方法,