近期 Unity 提交苹果审核被拒的问题

简介: 游戏提交苹果审核,被打回。在 bugly 上没有查到崩溃信息,苹果给了 crash 日志也说明。   拒绝原因如下: Your app crashed on iPad or iPhone running iOS 11.2.5 connected to an IPv6 network during our review.   logs 日志也看不出什么,初看像是 IPv6的问题,实际上与IPV6无关。

游戏提交苹果审核,被打回。在 bugly 上没有查到崩溃信息,苹果给了 crash 日志也说明。

 

拒绝原因如下:

Your app crashed on iPad or iPhone running iOS 11.2.5 connected to an IPv6 network during our review.

 

logs 日志也看不出什么,初看像是 IPv6的问题,实际上与IPV6无关。

 

之后同事帮忙搜索文章,有一篇文章说是 AB 的加载方式,不要用 WWW。我们游戏里没有用过这个方法,先排除掉。后来在知乎上找到一篇文章:

最近好多朋友因为这个问题被IOS拒审>>

 

依据文章提供的线索,找到 DisplayManager.mm 文件 中的 – (id)init 方法,将监听 AirPlay 的事件注释掉即可。

 

苹果审核环境的模拟:

一台 iPhone 或 iPad + 一台 iMac。 Mac 上先安装 AirServer(选择试用版本 http://www.airserver.com/Download

image

 

然后移动设备的 wifi 连接 iMac 的共享网络。这样移动设备启用 屏幕镜像(AirPlay)就可以模拟进行测试了。

 

如果需要开启IPV6,只需要在 Mac 的设置 –> 共享,点击共享的时候,按住 Option 就会出现 IPv6的选项,移动设备连接成功后,可以从 DNS 上看出是否为 IPV6。

 

IPV6启用的具体步骤和方法,可参考这篇文章:Mac电脑搭建IPv6测试环境>>

 

移动设备镜像到 iMac 上,如果用数据线,不要求是同一网络,如果不使用数据线,则必须处于同一 Wifi 下。

 

 

如果后期预防此问题?

因为 DisplayManager.mm 是 Unity 打包的时候才会生成的,所以只需要替换模板即可。

我根据在 Windows 下的路径

image

在 Mac 的应用程序中,找到 Unity/PlaybvackEngines/iOSSupport/Trampoline/Classes/Unity/DisplayManager.mm 找到相应的位置,注释掉代码,保存。之后打出来的包就彻底解决掉这个问题了。

 

上面这个 bug 属性 Unity 官方的 bug,2018.1.0b1版本修复掉了,其它版本我不太确定,可以根据上面的路径自己去排查一下。

目录
相关文章
|
Web App开发 Rust 安全
GTA 6 源代码泄漏;因拦截广告被优酷起诉判赔 20 万;Win 11首个大更新 |思否周刊
GTA 6 源代码泄漏;因拦截广告被优酷起诉判赔 20 万;Win 11首个大更新 |思否周刊
316 0
|
Web App开发 JavaScript IDE
iPhone 14 Pro 渲染图曝光;​程序员编码抢挂疫苗号牟利 40 万;Chrome 102 发布 | 思否周刊
iPhone 14 Pro 渲染图曝光;​程序员编码抢挂疫苗号牟利 40 万;Chrome 102 发布 | 思否周刊
149 0
iPhone 14 Pro 渲染图曝光;​程序员编码抢挂疫苗号牟利 40 万;Chrome 102 发布 | 思否周刊
|
Web App开发 Rust 算法
苹果 iPhone 14 或将取消刘海;算法推荐管理规定已施行;GitLab 14.8 发布 | 思否周刊
苹果 iPhone 14 或将取消刘海;算法推荐管理规定已施行;GitLab 14.8 发布 | 思否周刊
131 0
|
新零售 安全 定位技术
【阿里聚安全·安全周刊】阿里安全潘多拉实验室完美越狱iOS11.2.1|Janus漏洞修改安卓app而不影响签名
关键词:阿里安全潘多拉实验室丨Janus漏洞丨御城河丨编程语言出现漏洞丨APP追踪定位丨银行APP存在漏洞丨安卓统一推送联盟|AhMyth RAT|HP笔记本
2538 0