为Charles设置自动代理

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
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Charles简介 Charles 是在 Mac 下常用的网络封包截取工具,在做移动开发时,我们为了调试与服务器端...
    Chris_js阅读 3,533评论 0 3
  • 简书上的文章已经不再维护,有兴趣阅读其他文章,或一起交流的朋友,请移步 我的博客:punmy.cn 原文 本篇博客...
    胖绵羊阅读 10,287评论 7 35
  • O:到今天写了100天的讲师感悟,在此要感谢李老师的监督,或者说因为李老师太优秀,影响了我, 让我自觉会去写感悟,...
    云飞扬8866阅读 772评论 4 0
  • 本次最后一个重头戏,环法最后一段,依然回到凯旋门,最后一段将绕行凯旋门多圈,让环法之骑者多次接受终点观众的欢呼,也...
    肖庆in上海阅读 231评论 0 1