如何防止使用IL2CPP剥离代码?

问题描述 投票:0回答:1

我们正在制作第一个小型Unity Android游戏。应用程序连接到我们的Socket.IO服务器并发送/接收一些数据。在开发过程中一切正常。我们通过USB连接设备,在设备上使用Unity Remote 5,应用程序连接到服务器,一切都很棒。

然后我们从Unity构建签名的APK。我们将APK安装到同一设备上,应用程序启动没有问题,但是socket.io通信不起作用。在服务器端,我可以看到初始连接请求(成功),但是应用程序将不会连接到指定的名称空间,并且它不会发送请求以加载数据。

我们犯了一些明显的错误吗?我们需要指定其他内容来构建有效的APK吗?我们只是将密钥库添加到签名发布中。似乎在APK版本中启用了网络通信,因为我们看到了一些请求。我们是Unity的初学者,我们将为您提供帮助。

我们使用Unity 2019.1.11f1。我们使用以下socket.io客户端库:https://github.com/doghappy/socket.io-client-csharp

我们尝试了其他库:https://github.com/Quobject/SocketIoClientDotNet,但遇到相同的问题。在开发期间有效,在发行版APK中无效。我们还尝试了2种不同的Socket.IO服务器实现,两者(Flask和go-socket.io)的行为均相同。

编辑:我们进行了更多测试,发现使用Mono时,一切正常。但是,当我们切换到IL2CPP时,APK断开了。由于Play商店(必须为64位),我们必须使用IL2CPP。我们当前的理论是过于激进的代码剥离,它删除了代码的某些重要部分。

所以,问题应该是,如何防止使用IL2CPP剥离代码?

android unity3d socket.io apk
1个回答
0
投票

不确定它是否与您的问题有任何关系,但是代码剥离在引擎中具有正确的设置:

https://docs.unity3d.com/Manual/ManagedCodeStripping.html

© www.soinside.com 2019 - 2024. All rights reserved.