Charles是网络调试利器,但是使用的时候也带来一些麻烦,比如手机忘记设置手动代理了,或者调试完忘记关掉手动代理,打不开网页很是蛋疼,那么今天我们就来搞定它,我们来使用自动代理,一劳永逸的办法。一些基础东西就不说了,直接讲方法。
首先创建一个pac
文件,假设命名为proxy.pac
,里面内容可以网上搜索。
//一个很简单的调试app pac文件
function FindProxyForURL(url, host) {
//这里填写你们公司的host
if (dnsDomainIs(host, 'xxx.com')) {
//这里填你自己的局域网ip,端口号是你在Charles里设置的 默认8888
return "PROXY 192.168.2.200:8888; DIRECT;";
} else {
return "DIRECT";
}
}
简单解释下,这个pac文件会被macOS或者iOS(对应你的模拟器和真机)系统在发起网络请求时执行,它会告诉系统如果是xxx.com的请求那么去访问这个192.168.2.200:8888,如果访问不到那在直连。
现在需要把这个文件设置为自动代理配置 这里用到mac自带web server(还有其他的办法 比如使用macOS的smb,试了1个小时没成功,暂时放弃了🤣, 更简单的就是直接挂到网站上)
终端执行该命令
sudo apachectl start
输入密码,然后打开 http://localhost/如果显示It works就是正常。
然后打开Finder
, Shift+G
输入/Library/WebServer/Documents/
把你的pac文件扔进去,可能需要鉴定,输入密码就行。
然后就是配置mac和iphone
mac配置
偏好设置
->网络
->高级
->代理
->自动代理
iPhone配置
设置
->无线局域网
->HTTP代理
->自动
URL填入 http://你的mac局域网ip/proxy.pac
OK 设置完毕,现在可以享受了,打开模拟器 然后打开charles 发现不用打开macOS proxy也可以抓包了,手机调试app也没问题,而且就算charles关了也能正常上网,是不是很爽。😄
像我这种公司家不分的人,还固定了局域网ip,这样就不用在家里和公司修改pac文件了,公司ip固定找运维,家里的自己搞下就行。方法网上很多。
image.png
网友评论