iOS小技能:因境外IP无法访问导致 App 被拒的解决方案

语言: CN / TW / HK

“我正在参加「掘金·启航计划」”

引言

问题:提交新版 iOS App,由于无法登录,导致被拒。

最终排查原因:服务器的网络策略限制境外IP访问

解决方案:提交xxxAPP到IOS市场审核,期间申请放开国外访问的限制。

I 由于服务器侧的网络安全策略,导致境外IP无法访问

1.1 网络安全策略的背景

目的是避免境外IP可以访问相关交易系统。

每次境外访问的策略开放都意味着可能存在境外交易、网络安全的风险。

1.2 解决方案

上架前,先和运维部门申请淘APP在IOS应用市场审核支持

xxx子公司将于5月13号下午提交APP到IOS市场审核,期间申请放开国外访问的限制(放开时计算,预计需要3个工作日),允许通过IPv6网络访问(不限于美国,其他国家也能访问),避免APP在IOS应用市场审核失败,望领导审批,谢谢!

上架备注:由于服务器侧的网络安全策略,推荐使用中国境内IP进行测试 登录失败,审核被拒绝回复:您好,亲爱的苹果审核团队,由于我们服务器的原因导致无法登录,现已修复请重新审核。非常感谢!

1.3 境外是否能访问的测试方法

自己开启V_P_N进行测试,是否开通成功。

通常网络层不针对某个单一域名进行限制的,如果机房部署的其他项目可以审核通过,可以采取其他维度的交叉验证。

比如: 1. 提交测试域名给苹果审核,判断是不是生产的网络策略导致的。 2. 搭建IPV6网络环境验证是否可以正常登录

苹果审核要求,iOS设备需在ipv6网络环境下正常运行。

II IPv6解决方案

2.1 方案一 :审核时临时添加一条4A记录

审核时临时添加一条4A记录

  • 价格参考:
  • 一次性299,审核时有效,包过。(下次申请需要重新交钱)大部分通过之后就没问题了,并非每次都会检查,少部分可能每次都有问题
  • 包月就是当月不限次数,V6地址一直有效;包月499。
  • 包年3999,包年85折;不限次数,不限制IP。

2.2 方案二:接入 IPv6隧道

在国内服务器上免费接入HE tunnel IPv6隧道

  • 注册 HE tunnel IPv6隧道

  • 创建 IPv6 通道

  • 配置 ECS 使其支持 IPv6

  • 在Example Configurations (https://tunnelbroker.net/tunnel_detail.php?tid=394665#tabs-2)在select your os的下拉菜单中选择你用的操作系统,生成对应的示例脚本

  • 重启后使用 ifup he-ipv6 确认隧道启动
  • 使用 ping6 来测试配置是否正确

  • 配置 Nginx 使其监听 IPv6 端口

  • 配置 DNS 使其支持 IPv6 解析

2.3 方案三: 服务器支持IPV6

2.4 验证(mac搭建IPV6网络环境)

  1. 确保mac是连网线
  2. 在系统设置中,找到“共享”,按住option键时点击共享按钮进入界面,会出现“创建NAT 64网络”的勾选框: 在这里插入图片描述

在这里插入图片描述

2.5 如果以上都无法解决,可以试试这个

跟运维安全部门进一步交流,看是不是没有放开国外访问这个域名的限制,看下是否允许通过IPv6网络访问这个域名。

```objectivec

x董、x总,您好:

x x x子公司将于8月11号早上提交xxxAPP到IOS市场审核,期间申请放开国外访问xxx的限制(放开时计算,预计需要3个工作日),允许通过IPv6网络访问xxx(不限于美国,其他国家也能访问),避免APP在IOS应用市场审核失败,望领导审批,谢谢!

```

III see also

nginx 初识

公众号:iOS逆向