iOS客户端在内网联调时的解决方案
1.背景
在做某个需求的时候,如果后台接口部署在研发内网,此时的联调可能存在以下问题:
2.问题描述:
内网调试证书校验失败:
需要测试设备连接WiFi:XXX_DEV,此WiFi不能访问外网,会存在证书校验失败的问题
因此需要每次编译都需要:
- 编译前切换外网环境
- 编译后切换内网环境
导致非常影响研发效率。
3.解决方案:
3.1 方案1:测试机
通过iPhone的快捷指令实现自动化:
- 通过一张sim卡
- 添加一条自动化:实现App关闭时关掉Wi-Fi打开蜂窝,编译时能访问到外网校验证书
- 再添加一条自动化:运行App时执行关闭蜂窝,打开Wi-Fi,Wi-Fi设置只自动加入WiFi:XXX_DEV
暂时解决上述问题,未来需要彻底解决时,如果安全管控无法绕开,则需要推动后端将dev环境部署到外网
3.2 方案2:模拟器调试
模拟器调试不需要通过联网校验证书,因此可以将Mac连接到WiFi:XXX_DEV,进行模拟器调试
3.3 方案3:部署研发外网
推动与后台开发同学协商,尽量开发期间,选择外网部署
3.4 方案4:内网对证书验证加白名单
据苹果官方文档,校验证书域名为:ppq.apple.com
主机 | 端口 | 协议 | OS | 描述 | 支持代理 |
---|---|---|---|---|---|
*.itunes.apple.com | 443、80 | TCP | iOS、iPadOS、Apple tvOS 和 macOS | 商店内容,如 App、图书和音乐 | 是 |
*.apps.apple.com | 443 | TCP | iOS、iPadOS、Apple tvOS 和 macOS | 商店内容,如 App、图书和音乐 | 是 |
*.mzstatic.com | 443 | TCP | iOS、iPadOS、Apple tvOS 和 macOS | 商店内容,如 App、图书和音乐 | — |
itunes.apple.com | 443、80 | TCP | iOS、iPadOS、Apple tvOS 和 macOS | 是 | |
ppq.apple.com | 443 | TCP | iOS、iPadOS、Apple tvOS 和 macOS | 企业 App 验证 | — |