场景
- 连接Charles后,企业包,个人证书 Debug 包首次安装无法打开,每次切换到非 Charles 代理网络才能解决?
- 如何抓 App Store、Testflight 上的相关请求?
- 连接Charles后,无法打开 App Store?无法打开 Testflight?
分析
上述场景的主要原因是,苹果的部分请求开启了HTTPS的双向验证,或者Pin证书到了本地,SSL握手时会验证本地证书。
开启HTTPS抓包后,如果在Charles -> Proxy -> SSL Proxying Settings 中开启SSL代理,且指定*来匹配所有的域名,就会导致HTTPS双向验证失败,出现上述场景。
解决
解决方式一:
Charles正好提供了,指定一些请求不开启HTTPS代理
可以再Charles中找到抓包异常的请求后,过滤掉即可,就可以正常来使用了
解决方式二:
当然另外一种解决方式是,指定host开启HTTPS代理
示例
目前我收集到过滤掉的请求
Host | 状态 |
---|---|
play.itunes.apple.com:* | true |
api-edge.apps.apple.com | true |
amp-api-search-edge.apps.apple.com:* | true |
xp.apple.com:* | true |
gateway.icloud.com.cn:* | true |
bag.itunes.apple.com:* | true |
init.itunes.apple.com:* | true |
ppq.apple.com:* | true |
apps.mzstatic.com:* | true |
pd.itunes.apple.com:* | true |
.mzstatic.com: | true |
gsa.apple.com:* | true |
p25-buy.itunes.apple.com:* | true |
amp-api.apps.apple.com:* | true |
ssl.mzstatic.com: | true |