我遇到了个棘手的问题,希望能通过安卓手机,实机去调试页面。但情况比较复杂,能搜到的方法都试过了,请各位指点一下。
我们有一个电商页面放微信上用的,新版本里需要加一个活动游戏。在测试环境里完全是没问题的,一上线就出现了游戏时身份验证失效的问题,经过多番排查,发现情况是这样的:
使用预装了国产 ROM 的安卓手机,在微信上玩这个游戏时,程序通过正式服务器的域名访问身份验证接口,必然会触发这个 BUG。
所以这意味着,我所了解的手机调试办法,都不行:
1、在电脑浏览器里打开页面是无法重现的,包括微信自家的 web 开发者工具。
2、iOS 是不会遇到这个问题的,所以 macOS 连接 Safari 那一套也可以放弃。那我为什么强调国产 ROM 的安卓手机才会有问题呢,因为我司所有的安卓手机都会遇到这个 BUG,唯独我手上刷了 LineageOS15.1 的可以运行,这是重点。
3、根据第 2 点,基本就可以放弃用 Chrome DevTools 的 Remote devices 来调试了,全公司只有我这台刷了原生 ROM 的 Android 手机能让 Windows 的 Chrome DevTools 成功 inspect 到页面,而偏偏就我这台机是遇不到问题的。真不知道腾讯对非 Google Play 渠道发布的微信的 Webview 魔改了什么东西,全公司的安卓手机微信都连不上 Chrome DevTools (其他手机在浏览器里连接电脑是可以的,就偏偏微信不行),苦逼啊。
4、第 3 点比较复杂,很难解释清楚,估计只有遇到过的前端才明白我在说什么,除了前面三个办法,我最后一个杀手锏就是 weinre 了,因为测试环境是没问题的所以我只好部署在正式环境,用一个测试页面来调试,问题是绕了一大圈之后,console 延迟非常严重,无法重现玩游戏时的身份验证丢失问题。
以上四招都失败之后,我就没办法了,我的期望是能让国产 ROM 的安卓手机也能在 Chrome DevTools 的 Remote devices 里 inspect 到手机里的微信页面,毕竟这种调试方式最接近普通用户在玩游戏的真实情况,不知道有没有老哥有 hack 方法?
听说过 X5 内核能用 TbsSuiteNew.apk 那一套来调试,但是搜到的教程都比较老旧了,可能微信已经做了处理吧,我总是无法安装本地 tbs 内核。或者有没有 v 友有其他调试思路的,请支招,谢谢。
1
whileFalse 2018-07-11 18:33:50 +08:00
你们生产环境部署了 https 吗?是不是 https 的问题?
还有就是用代理抓过包了吗 |
2
jmyz0455 OP @whileFalse 用了 https,但是后端说觉得不是这个原因,因为其他接口都能通,其他设备调用这个身份验证。
代理抓包这个我漏了讲,试过过了,但是用代理抓包就只能用 ip 地址去访问(而不是用正式服务器的域名去访问),不用域名的话,一样没问题的。所以这个方法也没用。 这个问题超诡异的,安卓微信客户端用代理去访问,不用代理直接访问 ip 都是没问题的。直接访问正式域名才不行。 |
3
jmyz0455 OP 最后发现原因是 http 请求头的数据丢失,不过关于调试手机这个问题,我还是希望有人来指教指教。
|
4
jmyz0455 OP 求指教。
|