为Charles设置自动代理

2017-08-11  本文已影响1335人  anddygon

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配置

偏好设置->网络->高级->代理->自动代理

image.png
iPhone配置

设置->无线局域网->HTTP代理->自动
URL填入 http://你的mac局域网ip/proxy.pac

OK 设置完毕,现在可以享受了,打开模拟器 然后打开charles 发现不用打开macOS proxy也可以抓包了,手机调试app也没问题,而且就算charles关了也能正常上网,是不是很爽。😄

像我这种公司家不分的人,还固定了局域网ip,这样就不用在家里和公司修改pac文件了,公司ip固定找运维,家里的自己搞下就行。方法网上很多。

image.png
上一篇下一篇

猜你喜欢

热点阅读