iOS客户端在内网联调时的解决方案

Posted by PaysonChen on August 3, 2023

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 验证