我们正在制作我们的第一款小型Unity Android游戏。App连接到我们的Socket.IO服务器并发送/接收一些数据。在开发过程中,一切工作正常。我们通过USB连接设备,在设备上使用Unity Remote 5,应用程序连接到服务器,一切都很好。
然后我们从Unity构建签名的APK。我们在同一设备上安装了应用程序,应用程序启动时没有问题,但socket.io通信不起作用。在服务器端,我可以看到初始的连接请求(这是成功的),但随后应用程序不会连接到指定的命名空间,也不会发送加载数据的请求。
我们是不是犯了什么明显的错误?我们是否必须指定其他东西来构建有效的APK?我们只是添加keystore来表示发布。似乎在APK版本中启用了网络通信,因为我们看到了一些请求。我们是Unity初学者,任何帮助我们都将不胜感激。
我们使用Unity 2019.1.11f1。我们使用这个socket.io客户端库:https://github.com/doghappy/socket.io-client-csharp
我们尝试了其他库:https://github.com/Quobject/SocketIoClientDotNet,但遇到了同样的问题。在开发过程中工作,在版本APK中不工作。我们还尝试了两种不同的Socket.IO服务器实现,两者(Flask和go-socket.io)的行为是相同的。
编辑:我们已经做了更多的测试,发现当使用Mono时,一切都很好。但是当我们切换到IL2CPP时,APK就失效了。由于Play store (需要64位),我们必须使用IL2CPP。我们目前的理论是过于激进的代码剥离,移除了一些重要的代码部分。
因此,问题应该是,如何使用IL2CPP防止代码剥离?
发布于 2019-11-26 12:04:59
不确定它是否真的与您的问题有关,但是代码剥离在引擎中有一个适当的设置:
https://stackoverflow.com/questions/59029987
复制相似问题