0

为了能够再次提交到应用商店(对于已发布的游戏),我们必须让 IPv6 工作。所以我们将 Unity 更新到了 5.3.5p2 版本(可用的最新补丁版本)

我们重新设计了所有的网络接口(我们曾经使用经典的 http 请求来进行后端服务器 com 和套接字连接来下载资产)我们用 UnityEngine.Experimental.Networking 中的 UnityWebRequest、DownloadHandler 和 UploadHandler 交换了所有内容

在编辑器和 android 上一切正常,但对于 iOS,它只是......崩溃。

我们正在使用:Unity 5.3.5p2 xCode 7.2 和 iPad2 与 iOS 9.3.2 构建设置:IL2CPP 通用架构(最低 iOS 7.1)API 级别 .Net 2.0 剥离引擎代码设置为关闭 AOT 编译选项设置为:mint-trampoline 512 (我们将此用于单脚本后端)在 Xcode 上:Bitcode 已禁用优化级别设置为(用于发布和调试):无 [-O0] 这是我们在游戏运行时在控制台上遇到的错误:

在 [UnityEngine.dll]UnityEngine.Experimental.Networking.DownloadHandler 中找不到方法 GetProgress。. 在 [UnityEngine.dll]UnityEngine.Experimental.Networking.DownloadHandler 中找不到方法 ReceiveContentLength。. [项目名称] 是经过优化编译的 - 步进可能会表现得很奇怪;变量可能不可用。

(我们非常简单地使用托管静态缓冲区实现了 DownloadHandlerScript)

当我们使用 mono 作为脚本后端进行构建时,一切正常。但是 IL2CPP 对我们来说是强制性的。谢谢您的帮助。

4

2 回答 2

0

当我们使用 mono 作为脚本后端进行构建时,一切正常。但是 IL2CPP 对我们来说是强制性的。

您调用的函数很可能UnityWebRequest尚未在 IL2CPP 端实现,或者是一个普通的错误。

请注意,您正在使用UnityWebRequestfrom UnityEngine.Experimentalnamespace,这显然UnityWebRequest是尚未成熟的实验版本。您需要下载最新版本的 Unity,即 Unity 5.4。在 5.4 中,UnityWebRequest已移至UnityEngine.Networking命名空间,并在该新版本中修复了更多错误。在此处下载 Unity 的 5.4.0b21 。

如果这不起作用,请使用 Unity WWWAPI 而不是UnityWebRequest. 在 >= 5.3 版本中它是 IPv6安全的。UnityWebRequest如果在将 Unity 更新到 5.4 后仍无法正常工作,还需要提交错误报告。

于 2016-06-09T11:25:08.713 回答
0

This is likely an issue with managed code stripping. I've posted a possible work around on the Unity forums here:

http://forum.unity3d.com/threads/unity-ios-and-ipv6-support.404938/#post-2670944

于 2016-06-09T11:40:46.737 回答